Visible to Intel only — GUID: GUID-715E075F-0933-416B-9425-F91DF7706E23
Visible to Intel only — GUID: GUID-715E075F-0933-416B-9425-F91DF7706E23
IMF Device Library Exponential Functions
The IMF Device Library supports the following exponential functions:
exp
Description: The exp(x) function returns e (Euler's number ~2.7182818) raised to the x power: e^x
Special Values:
Argument x | Result exp(x) |
---|---|
-∞ | +0 |
x < -OVFL | +0 |
+/-0 | +1 |
x > +OVFL | +∞ |
+∞ | +∞ |
Useful Identities:
exp(x) = 2 · tanh( x/2 )/(1 - tanh( x/2 )) + 1 exp(x) = cosh(x) + sinh(x) exp(x) = exp2( log2(e)·x )> exp(x) = exp10( log10(e)·x )>
Calling Interfaces:
- Default accuracy:
sycl::half sycl::ext::intel::math::exp ( sycl::half x ); float sycl::ext::intel::math::exp ( float x ); double sycl::ext::intel::math::exp ( double x );
- High accuracy (HA):
sycl::half sycl::ext::intel::math::ha::exp ( sycl::half x ); float sycl::ext::intel::math::ha::exp ( float x ); double sycl::ext::intel::math::ha::exp ( double x );
- Low accuracy (LA):
sycl::half sycl::ext::intel::math::la::exp ( sycl::half x ); double sycl::ext::intel::math::la::exp ( double x );
- Enhanced performance:
sycl::half sycl::ext::intel::math::ep::exp ( sycl::half x ); double sycl::ext::intel::math::ep::exp ( double x );
exp10
Description: The exp10(x) function returns 10 raised to the x power: 10^x.
Special Values:
Argument x | Result exp10(x) |
---|---|
-∞ | +0 |
x < -OVFL | +0 |
+/-0 | +1 |
x > +OVFL | +∞ |
+∞ | +∞ |
Useful Identities:
exp10(x) = exp( log(10)·x ) exp10(x) = exp2( log2(10)·x )
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::exp10 ( float x ); double sycl::ext::intel::math::exp10 ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::exp10 ( float x ); double sycl::ext::intel::math::ha::exp10 ( double x );
- Low accuracy (LA):
double sycl::ext::intel::math::la::exp10 ( double x );
- Enhanced performance:
double sycl::ext::intel::math::ep::exp10 ( double x );
exp2
Description: The exp2(x) function returns 2 raised to the x power: 2^x.
Special Values:
Argument x | Result exp2(x) |
---|---|
-∞ | +0 |
x < -OVFL | +0 |
+/-0 | +1 |
x > +OVFL | +∞ |
+∞ | +∞ |
Useful Identities:
exp2(x) = exp( log(2)·x ) exp2(x) = exp10( log10(2)·x )
Calling Interfaces:
- Default accuracy:
sycl::half sycl::ext::intel::math::exp2 ( sycl::half x ); float sycl::ext::intel::math::exp2 ( float x ); double sycl::ext::intel::math::exp2 ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::exp2 ( float x ); double sycl::ext::intel::math::ha::exp2 ( double x );
- Low accuracy (LA):
double sycl::ext::intel::math::la::exp2 ( double x );
- Enhanced performance:
double sycl::ext::intel::math::ep::exp2 ( double x );
expm1
Description: The expm1(x) function returns e (Euler's number ~2.7182818) raised to the x power minus 1: e^x-1.
The value expm1(x) is more accurate than exp(x)-1.0 for small x and does not produce underflows.
This function is particularly useful for financial calculations, such as small daily interest rates, where (1+x)^n-1 is computed as expm1( n·log1p(x) ).
Special Values:
Argument x | Result expm1(x) |
---|---|
-∞ | -1 |
+/-0 | +0 |
x > +OVFL | +∞ |
+∞ | +∞ |
Useful Identities:
expm1(x) = exp(x) - 1 expm1(x) = 2 · tanh( x/2 )/(1 - tanh( x/2 ))
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::expm1 ( float x ); double sycl::ext::intel::math::expm1 ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::expm1 ( float x ); double sycl::ext::intel::math::ha::expm1 ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::expm1 ( float x ); double sycl::ext::intel::math::la::expm1 ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::expm1 ( float x ); double sycl::ext::intel::math::ep::expm1 ( double x );