std::sinh,std::sinhf,std::sinhl(3)

NAME
std::sinh,std::sinhf,std::sinhl - std::sinh,std::sinhf,std::sinhl

Synopsis
   Defined in header <cmath>
   float sinh ( float arg );
   float sinhf( float arg ); (since C++11)
   double sinh ( double arg ); (1) (2)
   long double sinh ( long double arg );
   long double sinhl( long double arg ); (3) (since C++11)
   double sinh ( IntegralType arg ); (4) (since C++11)
   1-3) Computes the hyperbolic sine of arg
   4) A set of overloads or a function template accepting an argument of any integral
   type. Equivalent to 2) (the argument is cast to double).

Parameters
   arg - value of a floating-point or Integral type

Return value
   If no errors occur, the hyperbolic sine of arg (sinh(arg), or
   earg
   -e-arg
   2
   ) is returned.
   If a range error due to overflow occurs, ±HUGE_VAL, ±HUGE_VALF, or ±HUGE_VALL is
   returned.
   If a range error occurs due to underflow, the correct result (after rounding) is
   returned.

Error handling
   Errors are reported as specified in math_errhandling.
   If the implementation supports IEEE floating-point arithmetic (IEC 60559),
     * if the argument is ±0 or ±∞, it is returned unmodified
     * if the argument is NaN, NaN is returned

Notes
   POSIX specifies that in case of underflow, arg is returned unmodified, and if that
   is not supported, and implementation-defined value no greater than DBL_MIN, FLT_MIN,
   and LDBL_MIN is returned.

Example
// Run this code
 #include <iostream>
 #include <cmath>
 #include <cerrno>
 #include <cstring>
 #include <cfenv>
 #pragma STDC FENV_ACCESS ON
 int main()
 {
     std::cout << "sinh(1) = " << std::sinh(1) << '\n'
               << "sinh(-1) = " << std::sinh(-1) << '\n'
               << "log(sinh(1)+cosh(1)) = "
               << std::log(std::sinh(1)+std::cosh(1)) << '\n';
     // special values
     std::cout << "sinh(+0) = " << std::sinh(0.0) << '\n'
               << "sinh(-0) = " << std::sinh(-0.0) << '\n';
     // error handling
     errno = 0;
     std::feclearexcept(FE_ALL_EXCEPT);
     std::cout << "sinh(710.5) = " << std::sinh(710.5) << '\n';
     if (errno == ERANGE)
         std::cout << " errno == ERANGE: " << std::strerror(errno) << '\n';
     if (std::fetestexcept(FE_OVERFLOW))
         std::cout << " FE_OVERFLOW raised\n";
 }

Output:
 sinh(1) = 1.1752
 sinh(-1) = -1.1752
 log(sinh(1)+cosh(1)) = 1
 sinh(+0) = 0
 sinh(-0) = -0
 sinh(710.5) = inf
     errno == ERANGE: Numerical result out of range
     FE_OVERFLOW raised

See also
   cosh
   coshf computes hyperbolic cosine (\({\small\cosh{x} }\)cosh(x))
   coshl (function)
   (C++11)
   (C++11)
   tanh
   tanhf computes hyperbolic tangent (\({\small\tanh{x} }\)tanh(x))
   tanhl (function)
   (C++11)
   (C++11)
   asinh
   asinhf computes the inverse hyperbolic sine
   asinhl (\({\small\operatorname{arsinh}{x} }\)arsinh(x))
   (C++11) (function)
   (C++11)
   (C++11)
                       computes hyperbolic sine of a complex number (\({\small\sinh{z}
   sinh(std::complex) }\)sinh(z))
                       (function template)
   sinh(std::valarray) applies the function std::sinh to each element of valarray
                       (function template)