Namespaces
Variants

sin, sinf, sinl

From cppreference.net
< c ‎ | numeric ‎ | math
Common mathematical functions
Functions
Basic operations
(C99)
(C99)
(C99)
(C99) (C99) (C99) (C23)
Maximum/minimum operations
Exponential functions
Power functions
Trigonometric and hyperbolic functions
Nearest integer floating-point
(C99) (C99) (C99)
(C23) (C23) (C23) (C23)
Floating-point manipulation
Narrowing operations
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quantum and quantum exponent
Decimal re-encoding functions
Total order and payload functions
Classification
Error and gamma functions
(C99)
(C99)
(C99)
(C99)
Types
Macro constants
Special floating-point values
Arguments and return values
Error handling
Fast operation indicators
Definido en el encabezado <math.h>
float sinf ( float arg ) ;
(1) (desde C99)
double sin ( double arg ) ;
(2)
long double sinl ( long double arg ) ;
(3) (desde C99)
_Decimal32  sind32 ( _Decimal32 arg ) ;
(4) (desde C23)
_Decimal64  sind64 ( _Decimal64 arg ) ;
(5) (desde C23)
_Decimal128 sind128 ( _Decimal128 arg ) ;
(6) (desde C23)
Definido en el encabezado <tgmath.h>
#define sin( arg )
(7) (desde C99)
1-3) Calcula el seno de arg (medido en radianes).
7) Macro genérico de tipos: Si el argumento tiene tipo long double , (3) ( sinl ) es llamado. De lo contrario, si el argumento tiene tipo entero o el tipo double , (2) ( sin ) es llamado. De lo contrario, (1) ( sinf ) es llamado. Si el argumento es complejo, entonces el macro invoca la función compleja correspondiente ( csinl , csin , csinf ).

Las funciones (4-6) se declaran si y solo si la implementación predefine __STDC_IEC_60559_DFP__ (es decir, la implementación admite números de punto flotante decimales).

(desde C23)

Contenidos

Parámetros

arg - valor de punto flotante que representa un ángulo en radianes

Valor de retorno

Si no ocurren errores, el seno de arg ( sin(arg) ) en el rango [-1 ; +1] , es devuelto.

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 domain error en POSIX .

POSIX también especifica que en caso de subdesbordamiento, arg se devuelve sin modificar, y si esto no es compatible, se devuelve un valor definido por la implementación no mayor que DBL_MIN , FLT_MIN , y LDBL_MIN .

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("sin(pi/6) = %f\n", sin(pi / 6));
    printf("sin(pi/2) = %f\n", sin(pi / 2));
    printf("sin(-3*pi/4) = %f\n", sin(-3 * pi / 4));
    // valores especiales
    printf("sin(+0) = %f\n", sin(0.0));
    printf("sin(-0) = %f\n", sin(-0.0));
    // manejo de errores
    feclearexcept(FE_ALL_EXCEPT);
    printf("sin(INFINITY) = %f\n", sin(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

Salida posible:

sin(pi/6) = 0.500000
sin(pi/2) = 1.000000
sin(-3*pi/4) = -0.707107
sin(+0) = 0.000000
sin(-0) = -0.000000
sin(INFINITY) = -nan
    FE_INVALID raised

Referencias

  • Estándar C23 (ISO/IEC 9899:2024):
  • 7.12.4.6 Las funciones sin (p: TBD)
  • 7.27 Matemáticas genéricas de tipos <tgmath.h> (p: TBD)
  • F.10.1.6 Las funciones sin (p: TBD)
  • Estándar C17 (ISO/IEC 9899:2018):
  • 7.12.4.6 Las funciones sin (p: 175)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 272-273)
  • F.10.1.6 Las funciones sin (p: 378)
  • Estándar C11 (ISO/IEC 9899:2011):
  • 7.12.4.6 Las funciones sin (p: 239-240)
  • 7.25 Matemáticas genéricas de tipos <tgmath.h> (p: 373-375)
  • F.10.1.6 Las funciones sin (p: 519)
  • Estándar C99 (ISO/IEC 9899:1999):
  • 7.12.4.6 Las funciones sin (p: 220)
  • 7.22 Matemáticas genéricas de tipo <tgmath.h> (p: 335-337)
  • F.9.1.6 Las funciones sin (p: 456)
  • Estándar C89/C90 (ISO/IEC 9899:1990):
  • 4.5.2.6 La función sin

Véase también

(C99) (C99)
calcula el coseno ( cos(x) )
(función)
(C99) (C99)
calcula la tangente ( tan(x) )
(función)
(C99) (C99)
calcula el arco seno ( arcsin(x) )
(función)
(C99) (C99) (C99)
calcula el seno complejo
(función)