Intel® oneAPI DPC++/C++ Compiler Developer Guide and Reference

ID 767253
Date 6/24/2024
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

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 +∞
+/-∞ +∞
NOTE:
OVFL is overflow threshold, OVFL = log(MAX)+log(2), where MAX is maximum floating point normal number for given precision.

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 -∞
+/-∞ +/-∞
NOTE:
OVFL is overflow threshold, OVFL = log(MAX)+log(2), where MAX is maximum floating point normal number for given precision.

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 );