sin, sinf, sinl
|
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
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) |
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
|
(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 (
\({\small\cos{x} }\)
cos(x)
)
(Funktion) |
|
(C99)
(C99)
|
berechnet den Tangens (
\({\small\tan{x} }\)
tan(x)
)
(Funktion) |
|
(C99)
(C99)
|
berechnet den Arkussinus (
\({\small\arcsin{x} }\)
arcsin(x)
)
(Funktion) |
|
(C99)
(C99)
(C99)
|
berechnet den komplexen Sinus
(Funktion) |
|
C++-Dokumentation
für
sin
|
|