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
Definido en el encabezado <cmath>
(1)
float cos ( float num ) ;

double cos ( double num ) ;

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

cos ( const V & v_num ) ;
(S) (desde C++26)
Definido en el encabezado <cmath>
template < class Integer >
double cos ( Integer num ) ;
(A) (constexpr desde C++26)
1-3) Calcula el coseno de num (medido en radianes). La biblioteca proporciona sobrecargas de 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 .
(Ver math-floating-point y deduced-simd-t para sus definiciones.)
(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)