std:: tan, std:: tanf, std:: tanl
|
Definido en el encabezado
<cmath>
|
||
| (1) | ||
|
float
tan
(
float
num
)
;
double
tan
(
double
num
)
;
|
(hasta C++23) | |
|
/*floating-point-type*/
tan ( /*floating-point-type*/ num ) ; |
(desde C++23)
(constexpr desde C++26) |
|
|
float
tanf
(
float
num
)
;
|
(2) |
(desde C++11)
(constexpr desde C++26) |
|
long
double
tanl
(
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 tan ( Integer num ) ; |
(A) | (constexpr desde C++26) |
std::tan
para todos los tipos de punto flotante sin calificación cv como el tipo del parámetro.
(desde C++23)
|
S)
La sobrecarga SIMD realiza un
std::tan
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, se devuelve la tangente de num ( tan(num) ).
|
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 ocurre 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, se devuelve sin modificación.
- si el argumento es ±∞, se devuelve NaN y FE_INVALID se activa.
- si el argumento es NaN, se devuelve NaN.
Notas
El caso donde el argumento es infinito no está especificado como un error de dominio en C (a lo cual C++ se remite), pero está definido como un error de dominio en POSIX .
La función tiene polos matemáticos en π(1/2 + n) ; sin embargo, ninguna representación de punto flotante común puede representar π/2 exactamente, por lo tanto no existe ningún valor del argumento para el cual ocurra un error de polo.
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 :: tan ( num ) tenga el mismo efecto que std :: tan ( static_cast < double > ( num ) ) .
Ejemplo
#include <cerrno> #include <cfenv> #include <cmath> #include <iostream> // #pragma STDC FENV_ACCESS ON const double pi = std::acos(-1); // o std::numbers::pi de C++20 int main() { // uso típico std::cout << "tan(1*pi/4) = " << std::tan(1*pi/4) << '\n' // 45° << "tan(3*pi/4) = " << std::tan(3*pi/4) << '\n' // 135° << "tan(5*pi/4) = " << std::tan(5*pi/4) << '\n' // -135° << "tan(7*pi/4) = " << std::tan(7*pi/4) << '\n'; // -45° // valores especiales std::cout << "tan(+0) = " << std::tan(0.0) << '\n' << "tan(-0) = " << std::tan(-0.0) << '\n'; // manejo de errores std::feclearexcept(FE_ALL_EXCEPT); std::cout << "tan(INFINITY) = " << std::tan(INFINITY) << '\n'; if (std::fetestexcept(FE_INVALID)) std::cout << " FE_INVALID raised\n"; }
Salida posible:
tan(1*pi/4) = 1
tan(3*pi/4) = -1
tan(5*pi/4) = 1
tan(7*pi/4) = -1
tan(+0) = 0
tan(-0) = -0
tan(INFINITY) = -nan
FE_INVALID raised
Véase también
|
(C++11)
(C++11)
|
calcula el seno (
sin(x)
)
(función) |
|
(C++11)
(C++11)
|
calcula el coseno (
cos(x)
)
(función) |
|
(C++11)
(C++11)
|
calcula la arcotangente (
arctan(x)
)
(función) |
|
calcula la tangente de un número complejo (
tan(z)
)
(plantilla de función) |
|
|
aplica la función
std::tan
a cada elemento del valarray
(plantilla de función) |
|
|
Documentación C
para
tan
|
|