Namensräume
Varianten
Aktionen

sinpi, sinpif, sinpil, sinpid32, sinpid64, sinpid128

Von cppreference.com
< c‎ | numerik‎ | math
 
 
 
Allgemeine mathematische Funktionen
Funktionen
Grundlegende Operationen
(C99)
(C99)
(C99)
(C99)(C99)(C99)(C23)
Maximum/Minimum-Operationen
(C99)
(C99)
Exponentialfunktionen
(C23)
(C99)
(C99)
(C23)
(C23)

(C99)
(C99)(C23)
(C23)
(C23)
Potenzfunktionen
(C99)
(C23)
(C23)

(C99)
(C23)
(C23)
Trigonometrische und hyperbolische Funktionen
sinpi
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
(C99)
(C99)
(C99)
Nächste ganze Gleitkommazahlen
(C99)(C99)(C99)
(C99)

(C99)(C99)(C99)
(C23)(C23)(C23)(C23)
Gleitkomma-Manipulation
(C99)(C99)
(C99)(C23)
(C99)
Verengende Operationen
(C23)
(C23)
(C23)
(C23)
(C23)
(C23)
Quanten- und Quantenexponent-Funktionen
Dezimal-Neu-Kodierungsfunktionen
Gesamtordnung und Payload-Funktionen
Klassifizierung
(C99)
(C99)
(C99)
(C23)
Fehler- und Gammafunktionen
(C99)
(C99)
(C99)
(C99)
Typen
Makrokonstanten
Spezielle Gleitkommawerte
(C99)(C23)
Argumente und Rückgabewerte
Fehlerbehandlung
Schnelle Operationsanzeigen
 
Definiert in Header <math.h>
float       sinpif( float arg );
(1) (seit C23)
double      sinpi( double arg );
(2) (seit C23)
long double sinpil( long double arg );
(3) (seit C23)
_Decimal32  sinpid32( _Decimal32 arg );
(4) (seit C23)
_Decimal64  sinpid64( _Decimal64 arg );
(5) (seit C23)
_Decimal128 sinpid128( _Decimal128 arg );
(6) (seit C23)
Definiert in Header <tgmath.h>
#define sinpi( arg )
(7) (seit C23)
1-6) Berechnet den Sinus von π·arg in Radiant, wobei arg als Messung in halben Umdrehungen betrachtet wird.
7) Typ-generische Makro: Ruft die korrekte Funktion basierend auf dem Typ von arg auf. Wenn das Argument einen ganzzahligen Typ hat, wird (2) aufgerufen.

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

(seit C23)

Inhalt

[bearbeiten] Parameter

arg - Gleitkommazahl, deren Produkt mit π einen Winkel in Radiant darstellt.

[bearbeiten] Rückgabewert

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

[bearbeiten] Fehlerbehandlung

Fehler werden wie in math_errhandling angegeben gemeldet.

Wenn die Implementierung IEEE-Gleitkomma-Arithmetik (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.

[bearbeiten] Beispiel

#include <errno.h>
#include <fenv.h>
#include <math.h>
#include <stdio.h>
 
#ifndef __GNUC__
#pragma STDC FENV_ACCESS ON
#endif
 
#if __STDC_VERSION__ < 202311L
// A naive implementation of a subset of sinpi family
double sinpi(double arg)
{
    return sin(arg * (double)3.1415926535897932384626433);
}
#endif
 
int main(void)
{
    const double pi = acos(-1);
 
    // typical usage
    printf("sinpi(1) = %f, sin(pi) = %f\n", sinpi(1), sin(pi));
    printf("sinpi(0.5) = %f, sin(pi/2) = %f\n", sinpi(0.5), sin(pi / 2));
    printf("sinpi(-0.75) = %f, sin(-3*pi/4) = %f\n", sinpi(-0.75), sin(-3 * pi / 4));
 
    // special values
    printf("sinpi(+0) = %f\n", sinpi(0.0));
    printf("sinpi(-0) = %f\n", sinpi(-0.0));
 
    // error handling
    feclearexcept(FE_ALL_EXCEPT);
    printf("sinpi(INFINITY) = %f\n", sinpi(INFINITY));
    if (fetestexcept(FE_INVALID))
        puts("    FE_INVALID raised");
}

Mögliche Ausgabe

sinpi(1) = 0.000000, sin(pi) = 0.000000
sinpi(0.5) = 1.000000, sin(pi/2) = 1.000000
sinpi(-0.75) = -0.707107, sin(-3*pi/4) = -0.707107
sinpi(+0) = 0.000000
sinpi(-0) = -0.000000
sinpi(INFINITY) = -nan
    FE_INVALID raised

[bearbeiten] Referenzen

  • C23-Standard (ISO/IEC 9899:2024)
  • 7.12.4.13 Die sinpi-Funktionen (S. 247-248)
  • 7.27 Typ-generische Mathematik <tgmath.h> (S. 387)

[bearbeiten] Siehe auch

(C99)(C99)
berechnet Sinus (sin(x))
(Funktion) [bearbeiten]