std::cosh(std::complex)(3)

πŸ“¦ version 2024.07.05, in nixpkgs unstable, opensuse-leap 16.0

πŸ’– std::cosh(std::complex) β€” C++ Standard Libary (std::cosh(std::complex)(3)) πŸ’–

okay bestie, welcome to the complex hyperbolic cosine page ✨ This is std::cosh(std::complex) from the C++ Standard Libary manual, and yes we are gonna get through every single little special-value bullet together. no cap. 🫢


🌸 NAME 🌸

std::cosh(std::complex) β€” std::cosh(std::complex), literally the icon itself πŸ’…


✨ Synopsis ✨

Defined in header <complex>, and it’s giving template realness:

Defined in header <complex>
template< class T >                      (since C++11)
complex<T> cosh( const complex<T>& z );

So it computes the complex hyperbolic cosine of a complex value z. periodt. πŸ’–


πŸ“ Parameters πŸ“

  • z β€” complex value

πŸ’– Return value πŸ’–

If no errors occur, you get the complex hyperbolic cosine of z returned. slay. ✨

😭 Error handling and special values 😭

Errors are reported consistent with math_errhandling.

If the implementation supports IEEE floating-point arithmetic, then bestie, here is the whole special-values saga:

  • std::cosh(std::conj(z)) == std::conj(std::cosh(z))
  • std::cosh(z) == std::cosh(-z)
  • If z is (+0,+0), the result is (1,+0)
  • If z is (+0,+∞), the result is (NaN,Β±0) (the sign of the imaginary part is unspecified) and FE_INVALID is raised
  • If z is (+0,NaN), the result is (NaN,Β±0) (the sign of the imaginary part is unspecified)
  • If z is (x,+∞) (for any finite non-zero x), the result is (NaN,NaN) and FE_INVALID is raised
  • If z is (x,NaN) (for any finite non-zero x), the result is (NaN,NaN) and FE_INVALID may be raised
  • If z is (+∞,+0), the result is (+∞,+0)
  • If z is (+∞,y) (for any finite non-zero y), the result is +∞cis(y)
  • If z is (+∞,+∞), the result is (±∞,NaN) (the sign of the real part is unspecified) and FE_INVALID is raised
  • If z is (+∞,NaN), the result is (+∞,NaN)
  • If z is (NaN,+0), the result is (NaN,Β±0) (the sign of the imaginary part is unspecified)
  • If z is (NaN,+y) (for any finite non-zero y), the result is (NaN,NaN) and FE_INVALID may be raised
  • If z is (NaN,NaN), the result is (NaN,NaN)

where cis(y) is cos(y) + i sin(y). πŸŒ€


🧚 Notes 🧚

Mathematical definition of hyperbolic cosine is:

cosh z = (e^z + e^(-z)) / 2

Hyperbolic cosine is an entire function in the complex plane and has no branch cuts. It is periodic with respect to the imaginary component, with period 2Ο€i. lowkey beautiful?? πŸ˜­πŸ’œ


🌈 Examples 🌈

// Run this code

#include <cmath>
#include <complex>
#include <iostream>

int main()
{
    std::cout << std::fixed;
    std::complex<double> z(1.0, 0.0); // behaves like real cosh along the real line
    std::cout << "cosh" << z << " = " << std::cosh(z)
              << " (cosh(1) = " << std::cosh(1) << ")\n";

    std::complex<double> z2(0.0, 1.0); // behaves like real cosine along the imaginary line
    std::cout << "cosh" << z2 << " = " << std::cosh(z2)
              << " ( cos(1) = " << std::cos(1) << ")\n";
}

🌟 Output 🌟

cosh(1.000000,0.000000) = (1.543081,0.000000) (cosh(1) = 1.543081)
cosh(0.000000,1.000000) = (0.540302,0.000000) ( cos(1) = 0.540302)

ate. no notes. πŸ”₯


πŸ‘‘ See also πŸ‘‘

  • sinh(std::complex) β€” computes hyperbolic sine of a complex number (\({\small\sinh{z}}\)sinh(z)) (function template)
  • tanh(std::complex) β€” computes hyperbolic tangent of a complex number (\({\small\tanh{z}}\)tanh(z)) (function template)
  • acosh(std::complex) β€” computes area hyperbolic cosine of a complex number (\({\small\operatorname{arcosh}{z}}\)arcosh(z)) (function template) (C++11)
  • cosh, coshf, coshl β€” computes hyperbolic cosine (\({\small\cosh{x}}\)cosh(x)) (function) (C++11) (C++11)
  • cosh(std::valarray) β€” applies the function std::cosh to each element of valarray (function template)
  • C documentation for ccosh

okay love u, bye! πŸ’‹ This one came from http://cppreference.com β€” page date 2024.06.10, and it’s std::cosh(std::complex)(3). periodt ✨🫢

πŸ“¦ where this page comes from