Floating-point extensions Teil 4: Ergänzungsfunktionen
Floating-point extensions für C - Teil 4: Ergänzungsfunktionen, ISO/IEC TS 18661-4:2015, definiert die folgenden neuen Komponenten für die C-Standardbibliothek, wie von ISO/IEC/IEEE 60559:2011 (der aktuellen Revision von IEEE-754) empfohlen.
Die unten aufgeführten ergänzenden mathematischen Funktionen werden in den C2x-Standard integriert.
Vordefinierte Feature-Testmakros | ||
| __STDC_IEC_60559__FUNCS__ |
Ganze Konstante vom Typ long und dem Wert 201506L (Makro-Konstante) | |
Ergänzende mathematische Funktionen | ||
| Definiert in Header
<math.h> | ||
| berechnet 2x -1 (Funktion) | ||
| (FP Ext 4 TS) |
berechnet 10x (Funktion) | |
| berechnet 10x -1 (Funktion) | ||
| (FP Ext 4 TS) |
berechnet ln(1+x) (identisch mit log1p) (Funktion) | |
| berechnet log2(1+x) (Funktion) | ||
| berechnet log10(1+x) (Funktion) | ||
| (FP Ext 4 TS) |
berechnet die inverse Quadratwurzel x-1/2 (Funktion) | |
| berechnet Zinseszins, (1+x)n (Funktion) | ||
| (FP Ext 4 TS) |
berechnet die n-te Wurzel von x, x1/n (Funktion) | |
| (FP Ext 4 TS) |
berechnet x hoch n, wobei n eine ganze Zahl ist (Funktion) | |
| (FP Ext 4 TS) |
berechnet x hoch y, xy (Funktion) | |
| berechnet arccos(x)/π (Winkelmessung in halben Umdrehungen) (Funktion) | ||
| berechnet arcsin(x)/π (Winkelmessung in halben Umdrehungen) (Funktion) | ||
| berechnet arctan(x)/π (Winkelmessung in halben Umdrehungen) (Funktion) | ||
| berechnet arctan(y/x)/π (Winkelmessung in halben Umdrehungen) (Funktion) | ||
| (FP Ext 4 TS) |
berechnet cos(πx) (Winkelmessung in halben Umdrehungen) (Funktion) | |
| (FP Ext 4 TS) |
berechnet sin(πx) (Winkelmessung in halben Umdrehungen) (Funktion) | |
| (FP Ext 4 TS) |
berechnet tan(πx) (Winkelmessung in halben Umdrehungen) (Funktion) | |
Reduktionsfunktionen | ||
| Definiert in Header
<math.h> | ||
| berechnet die Summe von n Elementen eines Arrays (Funktion) | ||
| berechnet die Summe der Absolutwerte von n Elementen eines Arrays (Funktion) | ||
| berechnet die Summe der Quadrate von n Elementen eines Arrays (Funktion) | ||
| berechnet das Skalarprodukt zwischen n Elementen zweier Arrays (Funktion) | ||
| berechnet das Produkt von n Elementen eines Arrays als skalarer Wert und Skalierungsfaktor (Funktion) | ||
| berechnet das Skalarprodukt von n Elementen zweier Arrays als skalarer Wert und Skalierungsfaktor (Funktion) | ||
| berechnet das Produkt der Differenzen zwischen entsprechenden n Elementen zweier Arrays als skalarer Wert und Skalierungsfaktor (Funktion) | ||
Korrekte Rundung von Funktionen | ||
| Definiert in Header
<math.h> | ||
| crexp(optional) (FP Ext 4 TS) |
korrekt gerundete Version von exp (Funktion) | |
| crexpm1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von expm1 (Funktion) | |
| crexp2(optional) (FP Ext 4 TS) |
korrekt gerundete Version von exp2 (Funktion) | |
| crexp2m1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von exp2m1 (Funktion) | |
| crexp10(optional) (FP Ext 4 TS) |
korrekt gerundete Version von exp10 (Funktion) | |
| crexp10m1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von exp10m1 (Funktion) | |
| crlog(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log (Funktion) | |
| crlog2(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log2 (Funktion) | |
| crlog10(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log10 (Funktion) | |
| crlog1p(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log1p (Funktion) | |
| crlogp1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von logp1 (Funktion) | |
| crlog2p1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log2p1 (Funktion) | |
| crlog10p1(optional) (FP Ext 4 TS) |
korrekt gerundete Version von log10p1 (Funktion) | |
| crrsqrt(optional) (FP Ext 4 TS) |
korrekt gerundete Version von rsqrt (Funktion) | |
| crcompoundn(optional) (FP Ext 4 TS) |
korrekt gerundete Version von compoundn (Funktion) | |
| crrootn(optional) (FP Ext 4 TS) |
korrekt gerundete Version von rootn (Funktion) | |
| crpown(optional) (FP Ext 4 TS) |
korrekt gerundete Version von pown (Funktion) | |
| crpow(optional) (FP Ext 4 TS) |
korrekt gerundete Version von pow (Funktion) | |
| crpowr(optional) (FP Ext 4 TS) |
korrekt gerundete Version von powr (Funktion) | |
| crsin(optional) (FP Ext 4 TS) |
korrekt gerundete Version von sin (Funktion) | |
| crcos(optional) (FP Ext 4 TS) |
korrekt gerundete Version von cos (Funktion) | |
| crtan(optional) (FP Ext 4 TS) |
korrekt gerundete Version von tan (Funktion) | |
| crsinpi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von sinpi (Funktion) | |
| crcospi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von cospi (Funktion) | |
| crtanpi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von tanpi (Funktion) | |
| crasinpi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von asinpi (Funktion) | |
| cracospi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von acospi (Funktion) | |
| cracospi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von acospi (Funktion) | |
| cratanpi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von atanpi (Funktion) | |
| cratan2pi(optional) (FP Ext 4 TS) |
korrekt gerundete Version von atan2pi (Funktion) | |
| crasin(optional) (FP Ext 4 TS) |
korrekt gerundete Version von asin (Funktion) | |
| cracos(optional) (FP Ext 4 TS) |
korrekt gerundete Version von acos (Funktion) | |
| cratan(optional) (FP Ext 4 TS) |
korrekt gerundete Version von atan (Funktion) | |
| cratan2(optional) (FP Ext 4 TS) |
korrekt gerundete Version von atan2 (Funktion) | |
| crsinh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von sinh (Funktion) | |
| crcosh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von cosh (Funktion) | |
| crtanh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von tanh (Funktion) | |
| crasinh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von asinh (Funktion) | |
| cracosh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von acosh (Funktion) | |
| cratanh(optional) (FP Ext 4 TS) |
korrekt gerundete Version von atanh (Funktion) | |
| crhypot(optional) (FP Ext 4 TS) |
korrekt gerundete Version von hypot (Funktion) | |
Komplexe Versionen von Funktionen | ||
| Definiert im Header
<complex.h> | ||
| cexp2m1(optional) (FP Ext 4 TS) |
komplexe Version von exp2m1 (Funktion) | |
| cexp10(optional) (FP Ext 4 TS) |
komplexe Version von exp10 (Funktion) | |
| cexp10m1(optional) (FP Ext 4 TS) |
komplexe Version von exp10m1 (Funktion) | |
| clogp1(optional) (FP Ext 4 TS) |
komplexe Version von logp1 (Funktion) | |
| clog2p1(optional) (FP Ext 4 TS) |
komplexe Version von log2p1 (Funktion) | |
| clog10p1(optional) (FP Ext 4 TS) |
komplexe Version von log10p1 (Funktion) | |
| crsqrt (optional) (FP Ext 4 TS) |
komplexe Version von rsqrt (Funktion) | |
| ccompoundn (optional) (FP Ext 4 TS) |
komplexe Version von compoundn (Funktion) | |
| crootn(optional) (FP Ext 4 TS) |
komplexe Version von rootn (Funktion) | |
| cpown (optional) (FP Ext 4 TS) |
komplexe Version von pown (Funktion) | |
| cpowr(optional) (FP Ext 4 TS) |
komplexe Version von powr (Funktion) | |
| cacospi(optional) (FP Ext 4 TS) |
komplexe Version von acospi (Funktion) | |
| casinpi(optional) (FP Ext 4 TS) |
komplexe Version von asinpi (Funktion) | |
| catanpi(optional) (FP Ext 4 TS) |
komplexe Version von atanpi (Funktion) | |
| ccospi(optional) (FP Ext 4 TS) |
komplexe Version von cospi (Funktion) | |
| csinpi(optional) (FP Ext 4 TS) |
komplexe Version von sinpi (Funktion) | |
| ctanpi(optional) (FP Ext 4 TS) |
komplexe Version von tanpi (Funktion) | |
[bearbeiten] Anmerkungen
Alle Funktionen, die durch diese Erweiterung zur C-Bibliothek hinzugefügt werden, werden nur deklariert, wenn ein Makro __STDC_WANT_IEC_60559_FUNCS_EXT__ vor dem Einbinden von math.h definiert wird.
Die Dezimal-Gleitkomma-Varianten jeder Funktion sind nur definiert, wenn __STDC_WANT_IEC_60559_DFP_EXT__ ebenfalls vor dem Einbinden von math.h definiert wird.
Die Extended-Precision-Varianten jeder Funktion sind nur definiert, wenn __STDC_WANT_IEC_60559_TYPES_EXT__ vor dem Einbinden von math.h definiert wird.
Die korrekt gerundeten Versionen aller Funktionen (mit dem Präfix cr-) sind optional.