std:: cos, std:: cosf, std:: cosl
|
Definiert in Header
<cmath>
|
||
| (1) | ||
|
float
cos
(
float
num
)
;
double
cos
(
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
>
|
(S) | (seit C++26) |
|
Zusätzliche Überladungen
(seit C++11)
|
||
|
Definiert in Header
<cmath>
|
||
|
template
<
class
Integer
>
double cos ( Integer num ) ; |
(A) | (constexpr seit C++26) |
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.
|
(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) |
|
|
C-Dokumentation
für
cos
|
|