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
Definiert in Header <cmath>
(1)
float acos ( float num ) ;

double acos ( double num ) ;

long double acos ( long double num ) ;
(bis C++23)
/*floating-point-type*/
acos ( /*floating-point-type*/ num ) ;
(seit C++23)
(constexpr seit C++26)
float acosf ( float num ) ;
(2) (seit C++11)
(constexpr seit C++26)
long double acosl ( long double num ) ;
(3) (seit C++11)
(constexpr seit C++26)
SIMD-Überladung (seit C++26)
Definiert in Header <simd>
template < /*math-floating-point*/ V >

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

acos ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
double acos ( Integer num ) ;
(A) (constexpr seit C++26)
1-3) Berechnet den Hauptwert des Arkuskosinus von num . Die Bibliothek bietet Überladungen von std::acos für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters an. (since C++23)
S) Die SIMD-Überladung führt eine elementweise std::acos auf v_num aus.
(Siehe math-floating-point und deduced-simd-t für deren Definitionen.)
(since C++26)
A) Zusätzliche Überladungen werden für alle Ganzzahltypen bereitgestellt, die als double behandelt werden.
(since C++11)

Inhaltsverzeichnis

Parameter

num - Gleitkomma- oder Ganzzahlwert

Rückgabewert

Wenn keine Fehler auftreten, wird der Arkuskosinus von num ( arccos(num) ) im Bereich [0, π] zurückgegeben.

Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert zurückgegeben (NaN, sofern unterstützt).

Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

Fehlerbehandlung

Fehler werden gemeldet, wie in math_errhandling spezifiziert.

Ein Domänenfehler tritt auf, wenn num außerhalb des Bereichs [ - 1.0 , 1.0 ] liegt.

Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt,

  • Wenn das Argument +1 ist, wird der Wert +0 zurückgegeben.
  • Wenn |num| > 1 ist, tritt ein Domänenfehler auf und NaN wird zurückgegeben.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

Hinweise

Die zusätzlichen Überladungen müssen nicht exakt wie (A) bereitgestellt werden. Sie müssen lediglich sicherstellen, dass für ihr Argument num vom Ganzzahltyp std :: acos ( num ) die gleiche Wirkung hat wie std :: acos ( static_cast < double > ( num ) ) .

Beispiel

#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';
    // Fehlerbehandlung
    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 ausgelöst" << '\n';
}

Ausgabe:

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 ausgelöst

Siehe auch

(C++11) (C++11)
berechnet den Arkussinus ( arcsin(x) )
(Funktion)
(C++11) (C++11)
berechnet den Arkustangens ( arctan(x) )
(Funktion)
(C++11) (C++11)
Arkustangens unter Verwendung von Vorzeichen zur Bestimmung der Quadranten
(Funktion)
(C++11) (C++11)
berechnet den Kosinus ( cos(x) )
(Funktion)
berechnet den Arkuskosinus einer komplexen Zahl ( arccos(z) )
(Funktions-Template)
wendet die Funktion std::acos auf jedes Element des valarray an
(Funktions-Template)