Developer Reference for Intel® oneAPI Math Kernel Library for Fortran
v?Exp
vsExp vmsExp vdExp vmdExp vcExp vmcExp vzExp vmzExp Computes an exponential of vector elements.
Syntax
call vsexp ( n , a , y )
call vsexpi(n, a, inca, y, incy)
call vmsexp ( n , a , y , mode )
call vmsexpi(n, a, inca, y, incy, mode)
call vdexp ( n , a , y )
call vdexpi(n, a, inca, y, incy)
call vmdexp ( n , a , y , mode )
call vmdexpi(n, a, inca, y, incy, mode)
call vcexp ( n , a , y )
call vcexpi(n, a, inca, y, incy)
call vmcexp ( n , a , y , mode )
call vmcexpi(n, a, inca, y, incy, mode)
call vzexp ( n , a , y )
call vzexpi(n, a, inca, y, incy)
call vmzexp ( n , a , y , mode )
call vmzexpi(n, a, inca, y, incy, mode)
Include Files
mkl_vml.f90
Input Parameters
Name |
Type |
Description |
|---|---|---|
n |
INTEGER , INTENT(IN) |
Specifies the number of elements to be calculated. |
a |
Fortran 77: DOUBLE PRECISION for vdexp , vmdexpFortran 77: COMPLEX for vcexp , vmcexpFortran 77: DOUBLE COMPLEX for vzexp , vmzexpFortran 90: REAL , INTENT(IN) for vsexp , vmsexpFortran 90: DOUBLE PRECISION , INTENT(IN) for vdexp , vmdexpFortran 90: COMPLEX , INTENT(IN) for vcexp , vmcexpFortran 90: DOUBLE COMPLEX , INTENT(IN) for vzexp , vmzexp |
Array, specifies the input vector a . |
inca , incy |
INTEGER, INTENT(IN) |
Specifies increments for the elements of a and y . |
mode |
INTEGER(KIND=8), INTENT(IN) |
Overrides global VM mode setting for this function call. See vmlSetMode (Sets a new mode for VM functions according to the mode parameter and stores the previous VM mode to oldmode.) for possible values and their description. |
Precision Overflow Thresholds for Real v?Exp Function
Data Type |
Threshold Limitations on Input Parameters |
|---|---|
single precision |
a[i] < Ln( FLT_MAX ) |
double precision |
a[i] < Ln( DBL_MAX ) |
Precision overflow thresholds for the complex v?Exp function are beyond the scope of this document.
Output Parameters
Name |
Type |
Description |
|---|---|---|
y |
Fortran 77: DOUBLE PRECISION for vdexp , vmdexpFortran 77: COMPLEX for vcexp , vmcexpFortran 77: DOUBLE COMPLEX for vzexp , vmzexpFortran 90: REAL , INTENT(OUT) for vsexp , vmsexpFortran 90: DOUBLE PRECISION , INTENT(OUT) for vdexp , vmdexpFortran 90: COMPLEX , INTENT(OUT) for vcexp , vmcexpFortran 90: DOUBLE COMPLEX , INTENT(OUT) for vzexp , vmzexp |
Array, specifies the output vector y . |
Description
The v?Exp function computes an exponential of vector elements.
Special Values for Real Function v?Exp(x)
Argument |
Result |
VM Error Status |
Exception |
|---|---|---|---|
+0 |
+1 |
||
-0 |
+1 |
||
X > overflow |
|
VML_STATUS_OVERFLOW |
OVERFLOW |
X < underflow |
+0 |
VML_STATUS_UNDERFLOW |
UNDERFLOW |
|
|
||
|
+0 |
||
QNAN |
QNAN |
||
SNAN |
QNAN |
INVALID |
See Special Value Notations for the conventions used in the table below.
Special Values for Complex Function v?Exp(z)
RE(z) i · IM(z) |
|
-X |
-0 |
+0 |
+X |
|
NAN |
|---|---|---|---|---|---|---|---|
+i · ∞ |
+0+i · 0 |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
INVALID |
QNAN+i · QNAN INVALID |
+i · Y |
+0 · CIS(Y) |
|
QNAN+i · QNAN |
||||
+i · 0 |
+0 · CIS(0) |
+1+i · 0 |
+1+i · 0 |
|
QNAN+i · 0 |
||
-i · 0 |
+0 · CIS(0) |
+1-i · 0 |
+1-i · 0 |
|
QNAN-i · 0 |
||
-i · Y |
+0 · CIS(Y) |
|
QNAN+i · QNAN |
||||
-i · ∞ |
+0-i · 0 |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
INVALID |
QNAN+i · QNAN INVALID |
+i · NAN |
+0+i · 0 |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
QNAN+i · QNAN INVALID |
|
QNAN+i · QNAN |
Notes:
raises the INVALID exception when real or imaginary part of the argument is SNAN
raises the INVALID exception on argument z=-∞+i·QNAN
raises the OVERFLOW exception and sets the VM Error Status to VML_STATUS_OVERFLOW in the case of overflow, that is, when both \(RE(z)\) and \(IM(z)\) are finite non-zero numbers, but the real or imaginary part of the exact result is so large that it does not meet the target precision.