std:: tan, std:: tanf, std:: tanl
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
tan
(
float
num
)
;
double
tan
(
double
num
)
;
|
(jusqu'à C++23) | |
|
/*floating-point-type*/
tan ( /*floating-point-type*/ num ) ; |
(depuis C++23)
(constexpr depuis C++26) |
|
|
float
tanf
(
float
num
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++26) |
|
long
double
tanl
(
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
>
|
(S) | (depuis C++26) |
|
Surcharges supplémentaires
(depuis C++11)
|
||
|
Défini dans l'en-tête
<cmath>
|
||
|
template
<
class
Integer
>
double tan ( Integer num ) ; |
(A) | (constexpr depuis C++26) |
std::tan
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::tan
élément par élément sur
v_num
.
|
(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 représentant l'angle en radians |
Valeur de retour
Si aucune erreur ne se produit, la tangente de num ( tan(num) ) est retournée.
|
Le résultat peut avoir peu ou pas de signification si l'amplitude de num est grande. |
(until C++11) |
Si une erreur de domaine se produit, une valeur définie par l'implémentation est retournée (NaN là où supporté).
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, il est retourné inchangé.
- si l'argument est ±∞, NaN est retourné et FE_INVALID est déclenché.
- si l'argument est NaN, NaN est retourné.
Notes
Le cas où l'argument est infini n'est pas spécifié comme étant une erreur de domaine en C (à laquelle C++ se réfère), mais il est défini comme une erreur de domaine dans POSIX .
La fonction présente des pôles mathématiques à π(1/2 + n) ; cependant, aucune représentation en virgule flottante courante ne peut représenter π/2 exactement, donc il n'existe aucune valeur de l'argument pour laquelle une erreur de pôle se produit.
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 :: tan ( num ) ait le même effet que std :: tan ( static_cast < double > ( num ) ) .
Exemple
#include <cerrno> #include <cfenv> #include <cmath> #include <iostream> // #pragma STDC FENV_ACCESS ON const double pi = std::acos(-1); // ou std::numbers::pi de C++20 int main() { // utilisation typique std::cout << "tan(1*pi/4) = " << std::tan(1*pi/4) << '\n' // 45° << "tan(3*pi/4) = " << std::tan(3*pi/4) << '\n' // 135° << "tan(5*pi/4) = " << std::tan(5*pi/4) << '\n' // -135° << "tan(7*pi/4) = " << std::tan(7*pi/4) << '\n'; // -45° // valeurs spéciales std::cout << "tan(+0) = " << std::tan(0.0) << '\n' << "tan(-0) = " << std::tan(-0.0) << '\n'; // gestion des erreurs std::feclearexcept(FE_ALL_EXCEPT); std::cout << "tan(INFINITY) = " << std::tan(INFINITY) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID levée\n"; }
Sortie possible :
tan(1*pi/4) = 1
tan(3*pi/4) = -1
tan(5*pi/4) = 1
tan(7*pi/4) = -1
tan(+0) = 0
tan(-0) = -0
tan(INFINITY) = -nan
FE_INVALID levée
Voir aussi
|
(C++11)
(C++11)
|
calcule le sinus (
sin(x)
)
(fonction) |
|
(C++11)
(C++11)
|
calcule le cosinus (
cos(x)
)
(fonction) |
|
(C++11)
(C++11)
|
calcule l'arc tangente (
arctan(x)
)
(fonction) |
|
calcule la tangente d'un nombre complexe (
tan(z)
)
(modèle de fonction) |
|
|
applique la fonction
std::tan
à chaque élément du valarray
(modèle de fonction) |
|
|
Documentation C
pour
tan
|
|