std:: acos, std:: acosf, std:: acosl
|
Défini dans l'en-tête
<cmath>
|
||
| (1) | ||
|
float
acos
(
float
num
)
;
double
acos
(
double
num
)
;
|
(jusqu'à C++23) | |
|
/*floating-point-type*/
acos ( /*floating-point-type*/ num ) ; |
(depuis C++23)
(constexpr depuis C++26) |
|
|
float
acosf
(
float
num
)
;
|
(2) |
(depuis C++11)
(constexpr depuis C++26) |
|
long
double
acosl
(
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 acos ( Integer num ) ; |
(A) | (constexpr depuis C++26) |
std::acos
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::acos
é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 |
Valeur de retour
Si aucune erreur ne se produit, l'arc cosinus de num ( arccos(num) ) dans l'intervalle [0, π] , est retourné.
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 .
Une erreur de domaine se produit si
num
est en dehors de l'intervalle
[
-
1.0
,
1.0
]
.
Si l'implémentation prend en charge l'arithmétique à virgule flottante IEEE (IEC 60559),
-
Si l'argument est
+1
, la valeur
+0est retournée. - Si |num| > 1 , une erreur de domaine se produit et NaN est retourné.
- Si l'argument est NaN, NaN est retourné.
Notes
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 :: acos ( num ) ait le même effet que std :: acos ( static_cast < double > ( num ) ) .
Exemple
#include <cerrno> #include <cfenv> #include <cmath> #include <cstring> #include <iostream> // #pragma STDC FENV_ACCESS ON int main() { std::cout << "acos(-1) = " << std::acos(-1) << '\n' << "acos(0.0) = " << std::acos(0.0) << '\n' << "2*acos(0.0) = " << 2 * std::acos(0) << '\n' << "acos(0.5) = " << std::acos(0.5) << '\n' << "3*acos(0.5) = " << 3 * std::acos(0.5) << '\n' << "acos(1) = " << std::acos(1) << '\n'; // gestion des erreurs errno = 0; std::feclearexcept(FE_ALL_EXCEPT); std::cout << "acos(1.1) = " << std::acos(1.1) << '\n'; if (errno == EDOM) std::cout << " errno == EDOM: " << std::strerror(errno) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID levée" << '\n'; }
Sortie :
acos(-1) = 3.14159
acos(0.0) = 1.5708
2*acos(0.0) = 3.14159
acos(0.5) = 1.0472
3*acos(0.5) = 3.14159
acos(1) = 0
acos(1.1) = nan
errno == EDOM: Numerical argument out of domain
FE_INVALID levée
Voir aussi
|
(C++11)
(C++11)
|
calcule l'arc sinus (
arcsin(x)
)
(fonction) |
|
(C++11)
(C++11)
|
calcule l'arc tangente (
arctan(x)
)
(fonction) |
|
(C++11)
(C++11)
|
arc tangente, utilisant les signes pour déterminer les quadrants
(fonction) |
|
(C++11)
(C++11)
|
calcule le cosinus (
cos(x)
)
(fonction) |
|
(C++11)
|
calcule l'arc cosinus d'un nombre complexe (
arccos(z)
)
(fonction template) |
|
applique la fonction
std::acos
à chaque élément du valarray
(fonction template) |
|
|
Documentation C
pour
acos
|
|