std::cosh(std::valarray) - cppreference.com (original) (raw)

| | | | | ---------------------------------------------------------------- | | | | template< class T >valarray<T> cosh( const valarray<T>& va ); | | |

For each element in va computes hyperbolic cosine of the value of the element.

Contents

[edit] Parameters

va - value array to apply the operation to

[edit] Return value

Value array containing hyperbolic cosine of the values in va.

[edit] Notes

Unqualified function (cosh) is used to perform the computation. If such function is not available, std::cosh is used due to argument-dependent lookup.

The function can be implemented with the return type different from std::valarray. In this case, the replacement type has the following properties:

[edit] Possible implementation

template valarray cosh(const valarray& va) { valarray other = va; for (T& i : other) i = cosh(i);   return other; // proxy object may be returned }

[edit] Example

#include #include #include #include   void show(const char* title, const std::valarray& data) { const int w{9}; std::cout << std::setw(w) << title << " | "; for (float x : data) std::cout << std::setw(w) << x << " | "; std::cout << '\n'; }   int main() { const std::valarray x{.1, .2, .3, .4}; const auto sinh = std::sinh(x); const auto cosh = std::cosh(x); const auto z = (cosh * cosh) - (sinh * sinh);   show("x", x); show("sinh(x)", sinh); show("cosh(x)", cosh); show("z", z); }

Output:

    x |       0.1 |       0.2 |       0.3 |       0.4 | 

sinh(x) | 0.100167 | 0.201336 | 0.30452 | 0.410752 | cosh(x) | 1.005 | 1.02007 | 1.04534 | 1.08107 | z | 1 | 1 | 1 | 1 |

[edit] See also