tan, tanf, tanl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
Definido en el encabezado
<math.h>
|
||
|
float
tanf
(
float
arg
)
;
|
(1) | (desde C99) |
|
double
tan
(
double
arg
)
;
|
(2) | |
|
long
double
tanl
(
long
double
arg
)
;
|
(3) | (desde C99) |
|
_Decimal32 tand32
(
_Decimal32 arg
)
;
|
(4) | (desde C23) |
|
_Decimal64 tand64
(
_Decimal64 arg
)
;
|
(5) | (desde C23) |
|
_Decimal128 tand128
(
_Decimal128 arg
)
;
|
(6) | (desde C23) |
|
Definido en el encabezado
<tgmath.h>
|
||
|
#define tan( arg )
|
(7) | (desde C99) |
tanl
) es llamado. De lo contrario, si el argumento tiene tipo entero o el tipo
double
,
(2)
(
tan
) es llamado. De lo contrario,
(1)
(
tanf
) es llamado. Si el argumento es complejo, entonces el macro invoca la función compleja correspondiente (
ctanf
,
ctan
,
ctanl
).
|
Las funciones
(4-6)
se declaran si y solo si la implementación predefine
|
(desde C23) |
Contenidos |
Parámetros
| arg | - | valor de punto flotante que representa el ángulo en radianes |
Valor de retorno
Si no ocurren errores, se devuelve la tangente de arg ( tan(arg) ).
|
El resultado puede tener poca o ninguna significancia si la magnitud de arg es grande. |
(until C99) |
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, 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.
Ejemplo
#include <errno.h> #include <fenv.h> #include <math.h> #include <stdio.h> #ifndef __GNUC__ #pragma STDC FENV_ACCESS ON #endif int main(void) { const double pi = acos(-1); // uso típico printf("tan(pi*1/4) = %+f\n", tan(pi * 1 / 4)); // 45 deg printf("tan(pi*3/4) = %+f\n", tan(pi * 3 / 4)); // 135 deg printf("tan(pi*5/4) = %+f\n", tan(pi * 5 / 4)); // -135 deg printf("tan(pi*7/4) = %+f\n", tan(pi * 7 / 4)); // -45 deg // valores especiales printf("tan(+0) = %f\n", tan(0.0)); printf("tan(-0) = %f\n", tan(-0.0)); // manejo de errores feclearexcept(FE_ALL_EXCEPT); printf("tan(INFINITY) = %f\n", tan(INFINITY)); if (fetestexcept(FE_INVALID)) puts(" FE_INVALID raised"); }
Salida posible:
tan(pi*1/4) = +1.000000
tan(pi*3/4) = -1.000000
tan(pi*5/4) = +1.000000
tan(pi*7/4) = -1.000000
tan(+0) = 0.000000
tan(-0) = -0.000000
tan(INFINITY) = -nan
FE_INVALID raised
Referencias
- Estándar C23 (ISO/IEC 9899:2024):
-
- 7.12.4.7 Las funciones tan (p: TBD)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
-
- F.10.1.7 Las funciones tan (p: TBD)
- Estándar C17 (ISO/IEC 9899:2018):
-
- 7.12.4.7 Las funciones tan (p: 175)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 272-273)
-
- F.10.1.7 Las funciones tan (p: 378)
- Estándar C11 (ISO/IEC 9899:2011):
-
- 7.12.4.7 Las funciones tan (p: 240)
-
- 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
-
- F.10.1.7 Las funciones tan (p: 519)
- Estándar C99 (ISO/IEC 9899:1999):
-
- 7.12.4.7 Las funciones tan (p: 220)
-
- 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
-
- F.9.1.7 Las funciones tan (p: 457)
- Estándar C89/C90 (ISO/IEC 9899:1990):
-
- 4.5.2.7 La función tan
Véase también
|
(C99)
(C99)
|
calcula el seno (
\({\small\sin{x} }\)
sin(x)
)
(función) |
|
(C99)
(C99)
|
calcula el coseno (
\({\small\cos{x} }\)
cos(x)
)
(función) |
|
(C99)
(C99)
|
calcula el arcotangente (
\({\small\arctan{x} }\)
arctan(x)
)
(función) |
|
(C99)
(C99)
(C99)
|
calcula la tangente compleja
(función) |
|
Documentación de C++
para
tan
|
|