std:: cos, std:: cosf, std:: cosl
|
Definido en el encabezado
<cmath>
|
||
| (1) | ||
|
float
cos
(
float
num
)
;
double
cos
(
double
num
)
;
|
(hasta C++23) | |
|
/*floating-point-type*/
cos ( /*floating-point-type*/ num ) ; |
(desde C++23)
(constexpr desde C++26) |
|
|
float
cosf
(
float
num
)
;
|
(2) |
(desde C++11)
(constexpr desde C++26) |
|
long
double
cosl
(
long
double
num
)
;
|
(3) |
(desde C++11)
(constexpr desde C++26) |
|
Sobrecarga SIMD
(desde C++26)
|
||
|
Definido en el encabezado
<simd>
|
||
|
template
<
/*math-floating-point*/
V
>
constexpr
/*deduced-simd-t*/
<
V
>
|
(S) | (desde C++26) |
|
Sobrecargas adicionales
(desde C++11)
|
||
|
Definido en el encabezado
<cmath>
|
||
|
template
<
class
Integer
>
double cos ( Integer num ) ; |
(A) | (constexpr desde C++26) |
std::cos
para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro.
(since C++23)
|
S)
La sobrecarga SIMD realiza un
std::cos
elemento por elemento en
v_num
.
|
(desde C++26) |
|
A)
Se proporcionan sobrecargas adicionales para todos los tipos enteros, los cuales son tratados como
double
.
|
(since C++11) |
Contenidos |
Parámetros
| num | - | valor de punto flotante o entero que representa el ángulo en radianes |
Valor de retorno
Si no ocurren errores, el coseno de
num
(
cos(num)
) en el rango
[
-
1.0
,
+
1.0
]
, es devuelto.
|
El resultado puede tener poca o ninguna significancia si la magnitud de num es grande. |
(until C++11) |
Si ocurre un error de dominio, se devuelve un valor definido por la implementación (NaN donde esté soportado).
Si se produce un error de rango debido a desbordamiento inferior, se devuelve el resultado correcto (después del redondeo).
Manejo de errores
Los errores se reportan como se especifica en math_errhandling .
Si la implementación soporta aritmética de punto flotante IEEE (IEC 60559),
- si el argumento es ±0, el resultado es 1.0 .
- si el argumento es ±∞, se retorna NaN y FE_INVALID se activa.
- si el argumento es NaN, se retorna NaN.
Notas
El caso donde el argumento es infinito no está especificado como un error de dominio en C, pero está definido como un error de dominio en POSIX .
Las sobrecargas adicionales no requieren ser proporcionadas exactamente como (A) . Solo necesitan ser suficientes para garantizar que para su argumento num de tipo entero, std :: cos ( num ) tenga el mismo efecto que std :: cos ( static_cast < double > ( num ) ) .
Ejemplo
#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 << "Uso típico:\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' << "Valores especiales:\n" << "std::cos(+0) = " << std::cos(0.0) << '\n' << "std::cos(-0) = " << std::cos(-0.0) << '\n'; // manejo de errores std::feclearexcept(FE_ALL_EXCEPT); std::cout << "cos(INFINITY) = " << std::cos(INFINITY) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID activado\n"; }
Salida posible:
Uso típico:
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
Valores especiales:
std::cos(+0) = +1
std::cos(-0) = +1
cos(INFINITY) = -nan
FE_INVALID activado
Véase también
|
(C++11)
(C++11)
|
calcula el seno (
sin(x)
)
(función) |
|
(C++11)
(C++11)
|
calcula la tangente (
tan(x)
)
(función) |
|
(C++11)
(C++11)
|
calcula el arco coseno (
arccos(x)
)
(función) |
|
calcula el coseno de un número complejo (
cos(z)
)
(plantilla de función) |
|
|
aplica la función
std::cos
a cada elemento del valarray
(plantilla de función) |
|
|
Documentación C
para
cos
|
|