Common mathematical functions | |||||||||||||||||||||||||||||||
Mathematical special functions(C++17) | |||||||||||||||||||||||||||||||
Mathematical constants(C++20) | |||||||||||||||||||||||||||||||
Basic linear algebra algorithms(C++26) | |||||||||||||||||||||||||||||||
Data-parallel types (SIMD)(C++26) | |||||||||||||||||||||||||||||||
Floating-point environment(C++11) | |||||||||||||||||||||||||||||||
Complex numbers | |||||||||||||||||||||||||||||||
Numeric array (valarray ) | |||||||||||||||||||||||||||||||
Pseudo-random number generation | |||||||||||||||||||||||||||||||
Bit manipulation(C++20) | |||||||||||||||||||||||||||||||
Saturation arithmetic(C++26) | |||||||||||||||||||||||||||||||
Factor operations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Interpolations | |||||||||||||||||||||||||||||||
|
| ||||||||||||||||||||||||||||||
Generic numeric operations | |||||||||||||||||||||||||||||||
| |||||||||||||||||||||||||||||||
C-style checked integer arithmetic | |||||||||||||||||||||||||||||||
|
Defined in header <valarray> | ||
template<class T> valarray<T> sinh(const valarray<T>& va); | ||
For each element inva computes hyperbolic sine of the value of the element.
Contents |
va | - | value array to apply the operation to |
Value array containing hyperbolic sine of the values inva.
Unqualified function (sinh) is used to perform the computation. If such function is not available,std::sinh is used due toargument-dependent lookup.
The function can be implemented with the return type different fromstd::valarray. In this case, the replacement type has the following properties:
template<class T>valarray<T> sinh(const valarray<T>& va){ valarray<T> other= va;for(T& i: other) i= sinh(i); return other;// proxy object may be returned} |
#include <cmath>#include <complex>#include <iomanip>#include <iostream>#include <valarray> template<typename T>void show(charconst* title,conststd::valarray<T>& va){std::cout<< title<<" : "<<std::right;for(T x: va)std::cout<<std::fixed<< x<<' ';std::cout<<'\n';} template<typename T>void sinh_for(std::valarray<T>const& z){// Hyperbolic sine is sinh(z) = (eᶻ - e⁻ᶻ) / 2. conststd::valarray<T> sinh_z{std::sinh(z)};conststd::valarray<T> e_z{std::exp(z)};conststd::valarray<T> e_neg_z{std::exp(-z)};conststd::valarray<T> sinh_def{(e_z- e_neg_z)/2.0f}; show("n ", z); show("sinh(n) ", sinh_z); show("(eⁿ-e⁻ⁿ)/2", sinh_def); std::cout.put('\n');} int main(){ sinh_for(std::valarray<float>{-.2f,-.1f,0.f,.1f,.2f,INFINITY}); sinh_for(std::valarray<std::complex<double>>{{-.2,-.1},{.2,.1}});}
Output:
n : -0.200000 -0.100000 0.000000 0.100000 0.200000 inf sinh(n) : -0.201336 -0.100167 0.000000 0.100167 0.201336 inf (eⁿ-e⁻ⁿ)/2 : -0.201336 -0.100167 0.000000 0.100167 0.201336 inf n : (-0.200000,-0.100000) (0.200000,0.100000) sinh(n) : (-0.200330,-0.101837) (0.200330,0.101837) (eⁿ-e⁻ⁿ)/2 : (-0.200330,-0.101837) (0.200330,0.101837)
applies the functionstd::cosh to each element of valarray (function template)[edit] | |
applies the functionstd::tanh to each element of valarray (function template)[edit] | |
(C++11)(C++11) | computes hyperbolic sine (\({\small\sinh{x}}\)sinh(x)) (function)[edit] |
computes hyperbolic sine of a complex number (\({\small\sinh{z}}\)sinh(z)) (function template)[edit] |