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
Definiert in Header <math.h>
float sinf ( float arg ) ;
(1) (seit C99)
double sin ( double arg ) ;
(2)
long double sinl ( long double arg ) ;
(3) (seit C99)
_Decimal32  sind32 ( _Decimal32 arg ) ;
(4) (seit C23)
_Decimal64  sind64 ( _Decimal64 arg ) ;
(5) (seit C23)
_Decimal128 sind128 ( _Decimal128 arg ) ;
(6) (seit C23)
Definiert in Header <tgmath.h>
#define sin( arg )
(7) (seit C99)
1-3) Berechnet den Sinus von arg (gemessen in Radiant).
7) Typgenerisches Makro: Wenn das Argument den Typ long double hat, (3) ( sinl ) wird aufgerufen. Andernfalls, wenn das Argument einen ganzzahligen Typ oder den Typ double hat, (2) ( sin ) wird aufgerufen. Andernfalls wird (1) ( sinf ) aufgerufen. Wenn das Argument komplex ist, ruft das Makro die entsprechende komplexe Funktion auf ( csinl , csin , csinf ).

Die Funktionen (4-6) werden genau dann deklariert, wenn die Implementierung __STDC_IEC_60559_DFP__ vordefiniert (d.h. die Implementierung unterstützt Dezimal-Gleitkommazahlen).

(seit C23)

Inhaltsverzeichnis

Parameter

arg - Fließkommawert, der einen Winkel im Bogenmaß darstellt

Rückgabewert

Wenn keine Fehler auftreten, wird der Sinus von arg ( sin(arg) ) im Bereich [-1 ; +1] zurückgegeben.

Das Ergebnis kann wenig oder keine Bedeutung haben, wenn die Größenordnung von arg groß ist.

(bis C99)

Wenn ein Domänenfehler auftritt, wird ein implementierungsdefinierter Wert zurückgegeben (NaN, sofern unterstützt).

Wenn ein Bereichsfehler aufgrund von Unterlauf auftritt, wird das korrekte Ergebnis (nach Rundung) zurückgegeben.

Fehlerbehandlung

Fehler werden gemeldet, wie in math_errhandling festgelegt.

Wenn die Implementierung IEEE-Gleitkommaarithmetik (IEC 60559) unterstützt:

  • wenn das Argument ±0 ist, wird es unverändert zurückgegeben;
  • wenn das Argument ±∞ ist, wird NaN zurückgegeben und FE_INVALID ausgelöst;
  • wenn das Argument NaN ist, wird NaN zurückgegeben.

Hinweise

Der Fall, in dem das Argument unendlich ist, ist in C nicht als Domänenfehler spezifiziert, aber es ist definiert als ein Domänenfehler in POSIX .

POSIX legt ebenfalls fest, dass im Fall eines Unterlaufs arg unverändert zurückgegeben wird, und falls dies nicht unterstützt wird, ein implementierungsdefinierter Wert zurückgegeben wird, der nicht größer als DBL_MIN , FLT_MIN , und LDBL_MIN ist.

Beispiel

#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);
    // typische Verwendung
    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));
    // spezielle Werte
    printf("sin(+0) = %f\n", sin(0.0));
    printf("sin(-0) = %f\n", sin(-0.0));
    // Fehlerbehandlung
    feclearexcept(FE_ALL_EXCEPT);
    printf("sin(INFINITY) = %f\n", sin(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

Mögliche Ausgabe:

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

Referenzen

  • C23-Standard (ISO/IEC 9899:2024):
  • 7.12.4.6 Die sin-Funktionen (S: TBD)
  • 7.27 Typgenerische Mathematik <tgmath.h> (S: TBD)
  • F.10.1.6 Die sin-Funktionen (S: TBD)
  • C17-Standard (ISO/IEC 9899:2018):
  • 7.12.4.6 Die sin-Funktionen (S. 175)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S. 272-273)
  • F.10.1.6 Die sin-Funktionen (S. 378)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.12.4.6 Die sin-Funktionen (S. 239-240)
  • 7.25 Typgenerische Mathematik <tgmath.h> (S. 373-375)
  • F.10.1.6 Die sin-Funktionen (S. 519)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.12.4.6 Die sin-Funktionen (S. 220)
  • 7.22 Typgenerische Mathematik <tgmath.h> (S. 335-337)
  • F.9.1.6 Die sin-Funktionen (S. 456)
  • C89/C90 Standard (ISO/IEC 9899:1990):
  • 4.5.2.6 Die sin-Funktion

Siehe auch

(C99) (C99)
berechnet den Kosinus ( cos(x) )
(Funktion)
(C99) (C99)
berechnet den Tangens ( tan(x) )
(Funktion)
(C99) (C99)
berechnet den Arkussinus ( arcsin(x) )
(Funktion)
(C99) (C99) (C99)
berechnet den komplexen Sinus
(Funktion)