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> tanh(const valarray<T>& va); | ||
For each element inva computes hyperbolic tangent of the value of the element.
Contents |
va | - | value array to apply the operation to |
Value array containing hyperbolic tangent of the values inva.
Unqualified function (tanh) is used to perform the computation. If such function is not available,std::tanh 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> tanh(const valarray<T>& va){ valarray<T> other= va;for(T& i: other) i= tanh(i); return other;// proxy object may be returned} |
#include <cmath>#include <iostream>#include <valarray> auto show=[](charconst* title,conststd::valarray<double>& va){std::cout<< title<<" :";for(auto x: va)std::cout<<" "<<std::fixed<< x;std::cout<<'\n';}; int main(){conststd::valarray<double> x={.0,.1,.2,.3};conststd::valarray<double> sinh=std::sinh(x);conststd::valarray<double> cosh=std::cosh(x);conststd::valarray<double> tanh=std::tanh(x);conststd::valarray<double> tanh_by_def= sinh/ cosh;conststd::valarray<double> tanh_2x=std::tanh(2.0* x);conststd::valarray<double> tanh_2x_by_def=(2.0* tanh)/(1.0+std::pow(tanh,2.0)); show("x ", x); show("tanh(x) ", tanh); show("tanh(x) (def) ", tanh_by_def); show("tanh(2*x) ", tanh_2x); show("tanh(2*x) (def)", tanh_2x_by_def);}
Output:
x : 0.000000 0.100000 0.200000 0.300000tanh(x) : 0.000000 0.099668 0.197375 0.291313tanh(x) (def) : 0.000000 0.099668 0.197375 0.291313tanh(2*x) : 0.000000 0.197375 0.379949 0.537050tanh(2*x) (def) : 0.000000 0.197375 0.379949 0.537050
applies the functionstd::sinh to each element of valarray (function template)[edit] | |
applies the functionstd::cosh to each element of valarray (function template)[edit] | |
(C++11)(C++11) | computes hyperbolic tangent (\({\small\tanh{x}}\)tanh(x)) (function)[edit] |
computes hyperbolic tangent of a complex number (\({\small\tanh{z}}\)tanh(z)) (function template)[edit] |