Developer Reference

Contents

v?Div

Performs element by element division of vector
a
by vector
b

Syntax

vsDiv
(
n
,
a
,
b
,
y
)
;
vsDivI(n, a, inca, b, incb, y, incy);
vmsDiv
(
n
,
a
,
b
,
y
,
mode
)
;
vmsDivI(n, a, inca, b, incb, y, incy, mode);
vdDiv
(
n
,
a
,
b
,
y
)
;
vdDivI(n, a, inca, b, incb, y, incy);
vmdDiv
(
n
,
a
,
b
,
y
,
mode
)
;
vmdDivI(n, a, inca, b, incb, y, incy, mode);
vcDiv
(
n
,
a
,
b
,
y
)
;
vcDivI(n, a, inca, b, incb, y, incy);
vmcDiv
(
n
,
a
,
b
,
y
,
mode
)
;
vmcDivI(n, a, inca, b, incb, y, incy, mode);
vzDiv
(
n
,
a
,
b
,
y
)
;
vzDivI(n, a, inca, b, incb, y, incy);
vmzDiv
(
n
,
a
,
b
,
y
,
mode
)
;
vmzDivI(n, a, inca, b, incb, y, incy, mode);
Include Files
  • mkl.h
Input Parameters
Name
Type
Description
n
const MKL_INT
Specifies the number of elements to be calculated.
a
,
b
const float*
for
vsDiv
,
vmsDiv
const double*
for
vdDiv
,
vmdDiv
const MKL_Complex8*
for
vcDiv
,
vmcDiv
const MKL_Complex16*
for
vzDiv
,
vmzDiv
Pointers to arrays that contain the input vectors
a
and
b
.
inca
,
incb
,
incy
const MKL_INT
Specifies increments for the elements of
a
,
b
, and
y
.
mode
const MKL_INT64
Overrides global VM mode setting for this function call. See
vmlSetMode
for possible values and their description.
Precision Overflow Thresholds for Real
v?Div
Function
Data Type
Threshold Limitations on Input Parameters
single precision
abs(
a
[i]) < abs(
b
[i]) * FLT_MAX
double precision
abs(
a
[i]) < abs(
b
[i]) * DBL_MAX
Precision overflow thresholds for the complex
v?Div
function are beyond the scope of this document.
Output Parameters
Name
Type
Description
y
float*
for
vsDiv
,
vmsDiv
double*
for
vdDiv
,
vmdDiv
MKL_Complex8*
for
vcDiv
,
vmcDiv
MKL_Complex16*
for
vzDiv
,
vmzDiv
Pointer to an array that contains the output vector
y
.
Description
The
v?Div
function performs element by element division of vector
a
by vector
b
.
Special values for Real Function
v?Div(x)
Argument 1
Argument 2
Result
VM Error Status
Exception
X > +0
+0
+
VML_STATUS_SING
ZERODIVIDE
X > +0
-0
-
VML_STATUS_SING
ZERODIVIDE
X < +0
+0
-
VML_STATUS_SING
ZERODIVIDE
X < +0
-0
+
VML_STATUS_SING
ZERODIVIDE
+0
+0
QNAN
VML_STATUS_SING
 
-0
-0
QNAN
VML_STATUS_SING
 
X > +0
+
+0
 
X > +0
-
-0
 
+
+
QNAN
 
-
-
QNAN
 
QNAN
QNAN
QNAN
 
SNAN
SNAN
QNAN
INVALID
Specifications for special values of the complex functions are defined according to the following formula
Div(x1+i*y1,x2+i*y2) = (x1+i*y1)*(x2-i*y2)/(x2*x2+y2*y2)
.
Overflow in a complex function occurs when
x2+i*y2
is not zero,
x1
,
x2
,
y1
,
y2
are finite numbers, but the real or imaginary part of the exact result is so large that it does not fit the target precision. In that case, the function returns
in that part of the result, raises the
OVERFLOW
exception, and sets the VM Error Status to
VML_STATUS_OVERFLOW
.

Product and Performance Information

1

Intel's compilers may or may not optimize to the same degree for non-Intel microprocessors for optimizations that are not unique to Intel microprocessors. These optimizations include SSE2, SSE3, and SSSE3 instruction sets and other optimizations. Intel does not guarantee the availability, functionality, or effectiveness of any optimization on microprocessors not manufactured by Intel. Microprocessor-dependent optimizations in this product are intended for use with Intel microprocessors. Certain optimizations not specific to Intel microarchitecture are reserved for Intel microprocessors. Please refer to the applicable product User and Reference Guides for more information regarding the specific instruction sets covered by this notice.

Notice revision #20110804