Namespaces
Variants

std:: acos, std:: acosf, std:: acosl

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 acos ( float num ) ;

double acos ( double num ) ;

long double acos ( long 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 >

acos ( const V & v_num ) ;
(S) (depuis C++26)
Défini dans l'en-tête <cmath>
template < class Integer >
double acos ( Integer num ) ;
(A) (constexpr depuis C++26)
1-3) Calcule la valeur principale de l'arc cosinus de num . La bibliothèque fournit des surcharges de 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 .
(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

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 +0 est 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)
calcule l'arc cosinus d'un nombre complexe ( arccos(z) )
(fonction template)
applique la fonction std::acos à chaque élément du valarray
(fonction template)