Namespaces
Variants

std:: cos, std:: cosf, std:: cosl

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

double cos ( double num ) ;

long double cos ( long double num ) ;
(bis C++23)
/*floating-point-type*/
cos ( /*floating-point-type*/ num ) ;
(seit C++23)
(constexpr seit C++26)
float cosf ( float num ) ;
(2) (seit C++11)
(constexpr seit C++26)
long double cosl ( 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 >

cos ( const V & v_num ) ;
(S) (seit C++26)
Definiert in Header <cmath>
template < class Integer >
double cos ( Integer num ) ;
(A) (constexpr seit C++26)
1-3) Berechnet den Kosinus von num (gemessen in Radiant). Die Bibliothek bietet Überladungen von std::cos für alle cv-unqualifizierten Gleitkommatypen als Typ des Parameters an. (since C++23)
S) Die SIMD-Überladung führt eine elementweise std::cos -Operation 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 - Fließkomma- oder Ganzzahlwert, der den Winkel im Bogenmaß darstellt

Rückgabewert

Wenn keine Fehler auftreten, wird der Kosinus von num ( cos(num) ) im Bereich [ - 1.0 , + 1.0 ] zurückgegeben.

Das Ergebnis kann wenig oder keine Bedeutung haben, wenn die Größenordnung von num groß ist.

(until C++11)

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.

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

  • Wenn das Argument ±0 ist, ist das Ergebnis 1.0 .
  • Wenn das Argument ±∞ ist, wird NaN zurückgegeben und FE_INVALID ausgelöst.
  • Wenn das Argument NaN ist, wird NaN zurückgegeben.

Hinweise

Der Fall, in dem das Argument unendlich ist, ist in C nicht als Domänenfehler spezifiziert, aber es ist definiert als ein Domänenfehler in POSIX .

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 :: cos ( num ) die gleiche Wirkung hat wie std :: cos ( static_cast < double > ( num ) ) .

Beispiel

#include <cerrno>
#include <cfenv>
#include <cmath>
#include <iomanip>
#include <iostream>
#include <numbers>
// #pragma STDC FENV_ACCESS ON
constexpr double pi = std::numbers::pi; // or std::acos(-1) before C++20
constexpr double your_cos(double x)
{
    double cos{1}, pow{x};
    for (auto fac{1ull}, n{1ull}; n != 19; fac *= ++n, pow *= x)
        if ((n & 1) == 0)
            cos += (n & 2 ? -pow : pow) / fac;
    return cos;
}
int main()
{
    std::cout << std::setprecision(10) << std::showpos
              << "Typische Verwendung:\n"
              << "std::cos(pi/3) = " << std::cos(pi / 3) << '\n'
              << "your cos(pi/3) = " << your_cos(pi / 3) << '\n'
              << "std::cos(pi/2) = " << std::cos(pi / 2) << '\n'
              << "your cos(pi/2) = " << your_cos(pi / 2) << '\n'
              << "std::cos(-3*pi/4) = " << std::cos(-3 * pi / 4) << '\n'
              << "your cos(-3*pi/4) = " << your_cos(-3 * pi / 4) << '\n'
              << "Spezielle Werte:\n"
              << "std::cos(+0) = " << std::cos(0.0) << '\n'
              << "std::cos(-0) = " << std::cos(-0.0) << '\n';
    // Fehlerbehandlung
    std::feclearexcept(FE_ALL_EXCEPT);
    std::cout << "cos(INFINITY) = " << std::cos(INFINITY) << '\n';
    if (std::fetestexcept(FE_INVALID))
        std::cout << "    FE_INVALID ausgelöst\n";
}

Mögliche Ausgabe:

Typische Verwendung:
std::cos(pi/3) = +0.5
your cos(pi/3) = +0.5
std::cos(pi/2) = +6.123233996e-17
your cos(pi/2) = -3.373452105e-15
std::cos(-3*pi/4) = -0.7071067812
your cos(-3*pi/4) = -0.7071067812
Spezielle Werte:
std::cos(+0) = +1
std::cos(-0) = +1
cos(INFINITY) = -nan
    FE_INVALID ausgelöst

Siehe auch

(C++11) (C++11)
berechnet Sinus ( sin(x) )
(Funktion)
(C++11) (C++11)
berechnet Tangens ( tan(x) )
(Funktion)
(C++11) (C++11)
berechnet Arkuskosinus ( arccos(x) )
(Funktion)
berechnet Kosinus einer komplexen Zahl ( cos(z) )
(Funktions-Template)
wendet die Funktion std::cos auf jedes Element des Valarray an
(Funktions-Template)