Namespaces
Variants

std:: tanh, std:: tanhf, std:: tanhl

From cppreference.net
Common mathematical functions
Nearest integer floating point operations
(C++11)
(C++11)
(C++11) (C++11) (C++11)
Floating point manipulation functions
(C++11) (C++11)
(C++11)
(C++11)
Classification and comparison
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
(C++11)
Types
(C++11)
(C++11)
(C++11)
Macro constants
Défini dans l'en-tête <cmath>
(1)
float tanh ( float num ) ;

double tanh ( double num ) ;

long double tanh ( long double num ) ;
(jusqu'à C++23)
/*floating-point-type*/
tanh ( /*floating-point-type*/ num ) ;
(depuis C++23)
(constexpr depuis C++26)
float tanhf ( float num ) ;
(2) (depuis C++11)
(constexpr depuis C++26)
long double tanhl ( long double num ) ;
(3) (depuis C++11)
(constexpr depuis C++26)
Surcharge SIMD (depuis C++26)
Défini dans l'en-tête <simd>
template < /*math-floating-point*/ V >

constexpr /*deduced-simd-t*/ < V >

tanh ( const V & v_num ) ;
(S) (depuis C++26)
Défini dans l'en-tête <cmath>
template < class Integer >
double tanh ( Integer num ) ;
(A) (constexpr depuis C++26)
1-3) Calcule la tangente hyperbolique de num . La bibliothèque fournit des surcharges de std::tanh pour tous les types à virgule flottante non qualifiés cv comme type du paramètre. (depuis C++23)
S) La surcharge SIMD effectue un calcul std::tanh élément par élément sur v_num .
(Voir math-floating-point et deduced-simd-t pour leurs définitions.)
(depuis C++26)
A) Des surcharges supplémentaires sont fournies pour tous les types entiers, qui sont traités comme double .
(depuis C++11)

Table des matières

Paramètres

num - valeur à virgule flottante ou entière

Valeur de retour

If no errors occur, the hyperbolic tangent of num ( tanh(num) , or
e num
-e -num
e num
+e -num
) is returned.

Si une erreur de plage se produit en raison d'un dépassement inférieur, le résultat correct (après arrondi) est retourné.

Gestion des erreurs

Les erreurs sont signalées comme spécifié dans math_errhandling .

Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),

  • si l'argument est ±0, ±0 est retourné.
  • si l'argument est ±∞, ±1 est retourné.
  • si l'argument est NaN, NaN est retourné.

Notes

POSIX spécifie qu'en cas de dépassement inférieur, num est retourné inchangé, et si cela n'est pas pris en charge, une valeur définie par l'implémentation non supérieure à DBL_MIN, FLT_MIN et LDBL_MIN est retournée.

Les surcharges supplémentaires ne sont pas requises d'être fournies exactement comme (A) . Elles doivent seulement être suffisantes pour garantir que pour leur argument num de type entier, std :: tanh ( num ) ait le même effet que std :: tanh ( static_cast < double > ( num ) ) .

Exemple

#include <cmath>
#include <iostream>
#include <random>
double get_random_between(double min, double max)
{
    std::random_device rd;
    std::mt19937 gen(rd());
    return std::uniform_real_distribution<>(min, max)(gen);
}
int main()
{
    const double x = get_random_between(-1.0, 1.0);
    std::cout << std::showpos
              << "tanh(+1) = " << std::tanh(+1) << '\n'
              << "tanh(-1) = " << std::tanh(-1) << '\n'
              << "tanh(x)*sinh(2*x)-cosh(2*x) = "
              << std::tanh(x) * std::sinh(2 * x) - std::cosh(2 * x) << '\n'
              // special values:
              << "tanh(+0) = " << std::tanh(+0.0) << '\n'
              << "tanh(-0) = " << std::tanh(-0.0) << '\n';
}

Sortie :

tanh(+1) = +0.761594
tanh(-1) = -0.761594
tanh(x)*sinh(2*x)-cosh(2*x) = -1
tanh(+0) = +0
tanh(-0) = -0

Voir aussi

(C++11) (C++11)
calcule le sinus hyperbolique ( sinh(x) )
(fonction)
(C++11) (C++11)
calcule le cosinus hyperbolique ( cosh(x) )
(fonction)
(C++11) (C++11) (C++11)
calcule la tangente hyperbolique inverse ( artanh(x) )
(fonction)
calcule la tangente hyperbolique d'un nombre complexe ( tanh(z) )
(modèle de fonction)
applique la fonction std::tanh à chaque élément du valarray
(modèle de fonction)