v?Div
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. |
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
.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
.