Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference
A newer version of this document is available. Customers should click here to go to the newest version.
IMF Device Library Hyperbolic Functions
The IMF Device Library supports the following hyperbolic and inverse hyperbolic functions:
acosh
Description: The acosh(x) function returns the inverse hyperbolic cosine of x.
Special Values:
Argument x | Result acosh(x) |
---|---|
+1 | +0 |
x < +1 | QNAN |
-∞ | QNAN |
+∞ | +∞ |
Useful Identities:
acosh(x) = log( x + sqrt(x^2 - 1) )
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::acosh ( float x ); double sycl::ext::intel::math::acosh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::acosh ( float x ); double sycl::ext::intel::math::ha::acosh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::acosh ( float x ); double sycl::ext::intel::math::la::acosh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::acosh ( float x );
asinh
Description: The asinh(x) function returns the inverse hyperbolic sine of x.
Special Values:
Argument x | Result asinh(x) |
---|---|
+/-0 | +/-0 |
+/-∞ | +/-∞ |
Useful Identities:
asinh(x) = log( x + sqrt(x^2 + 1) )
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::asinh ( float x ); double sycl::ext::intel::math::asinh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::asinh ( float x ); double sycl::ext::intel::math::ha::asinh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::asinh ( float x ); double sycl::ext::intel::math::la::asinh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::asinh ( float x );
atanh
Description: The atanh(x) function returns the inverse hyperbolic tangent of x.
Special Values:
Argument x | Result atanh(x) |
---|---|
+/-1 | +/-∞ |
|x| > 1 | QNAN |
+/-∞ | QNAN |
Useful Identities:
atanh(x) = 0.5 · log( (1 + x)/(1 - x) )
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::atanh ( float x ); double sycl::ext::intel::math::atanh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::atanh ( float x ); double sycl::ext::intel::math::ha::atanh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::atanh ( float x ); double sycl::ext::intel::math::la::atanh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::atanh ( float x );
cosh
Description: The cosh(x) function returns the hyperbolic cosine of x.
Special Values:
Argument x | Result cosh(x) |
---|---|
+/-0 | +1 |
x > +OVFL | +∞ |
x < -OVFL | +∞ |
+/-∞ | +∞ |
Useful Identities:
cosh(x) = ( exp(x) + exp(-x) ) / 2
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::cosh ( float x ); double sycl::ext::intel::math::cosh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::cosh ( float x ); double sycl::ext::intel::math::ha::cosh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::cosh ( float x ); double sycl::ext::intel::math::la::cosh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::cosh ( float x );
sinh
Description: The sinh(x) function returns the hyperbolic sine of x.
Special Values:
Argument x | Result sinh(x) |
---|---|
+/-0 | +/-0 |
x > +OVFL | +∞ |
x < -OVFL | -∞ |
+/-∞ | +/-∞ |
Useful Identities:
sinh(x) = ( exp(x) - exp(-x) ) / 2
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::sinh ( float x ); double sycl::ext::intel::math::sinh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::sinh ( float x ); double sycl::ext::intel::math::ha::sinh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::sinh ( float x ); double sycl::ext::intel::math::la::sinh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::sinh ( float x );
tanh
Description: The tanh(x) function returns the hyperbolic tangent of x.
Special Values:
Argument x | Result tanh(x) |
---|---|
+/-0 | +/-0 |
+/-∞ | +/-1 |
Useful Identities:
tanh(x) = ( exp(x) - exp(-x) ) / ( exp(x) + exp(-x) )
Calling Interfaces:
- Default accuracy:
float sycl::ext::intel::math::tanh ( float x ); double sycl::ext::intel::math::tanh ( double x );
- High accuracy (HA):
float sycl::ext::intel::math::ha::tanh ( float x ); double sycl::ext::intel::math::ha::tanh ( double x );
- Low accuracy (LA):
float sycl::ext::intel::math::la::tanh ( float x ); double sycl::ext::intel::math::la::tanh ( double x );
- Enhanced performance:
float sycl::ext::intel::math::ep::tanh ( float x );