Difference between revisions of "c/experimental/fpext4"
D41D8CD98F (Talk | contribs) |
(mention merging into c2x) |
||
Line 2: | Line 2: | ||
{{c/experimental/fpext4/navbar}} | {{c/experimental/fpext4/navbar}} | ||
− | Floating-point extensions for C - Part 4: Supplementary functions, ISO/IEC TS 18661-4:2015, defines the following new components for the C standard library, as recommended by ISO/IEC/IEEE 60559:2011 (the current revision of IEEE-754) | + | Floating-point extensions for C - Part 4: Supplementary functions, ISO/IEC TS 18661-4:2015, defines the following new components for the C standard library, as recommended by ISO/IEC/IEEE 60559:2011 (the current revision of IEEE-754). |
+ | |||
+ | Supplemenatary mathematical functions listed below are merged into C2x standard. | ||
{{dsc begin}} | {{dsc begin}} | ||
+ | {{dsc h2 | Predefined feature test macros}} | ||
{{dsc macro const | nolink=true | __STDC_IEC_60559_FUNCS__ | integer constant of type {{c|long}} and value {{c|201506L}}}} | {{dsc macro const | nolink=true | __STDC_IEC_60559_FUNCS__ | integer constant of type {{c|long}} and value {{c|201506L}}}} | ||
+ | {{dsc h2 | Supplementary mathematical functions}} | ||
{{dsc header | math.h }} | {{dsc header | math.h }} | ||
{{dsc inc | c/experimental/fpext4/dsc exp2m1}} | {{dsc inc | c/experimental/fpext4/dsc exp2m1}} | ||
Line 25: | Line 29: | ||
{{dsc inc | c/experimental/fpext4/dsc sinpi}} | {{dsc inc | c/experimental/fpext4/dsc sinpi}} | ||
{{dsc inc | c/experimental/fpext4/dsc tanpi}} | {{dsc inc | c/experimental/fpext4/dsc tanpi}} | ||
+ | {{dsc h2 | Reduction functions}} | ||
+ | {{dsc header | math.h }} | ||
{{dsc inc | c/experimental/fpext4/dsc reduc_sum}} | {{dsc inc | c/experimental/fpext4/dsc reduc_sum}} | ||
{{dsc inc | c/experimental/fpext4/dsc reduc_sumabs}} | {{dsc inc | c/experimental/fpext4/dsc reduc_sumabs}} | ||
Line 33: | Line 39: | ||
{{dsc inc | c/experimental/fpext4/dsc scaled_proddiff}} | {{dsc inc | c/experimental/fpext4/dsc scaled_proddiff}} | ||
+ | {{dsc h2 | Correctly-rounded version of functions}} | ||
+ | {{dsc header | math.h }} | ||
{{dsc fun | nolink=true | crexp{{mark optional}} | correctly-rounded version of {{lc|exp}}|notes={{mark since fpext4 ts}}}} | {{dsc fun | nolink=true | crexp{{mark optional}} | correctly-rounded version of {{lc|exp}}|notes={{mark since fpext4 ts}}}} | ||
{{dsc fun | nolink=true | crexpm1{{mark optional}} | correctly-rounded version of {{lc|expm1}}|notes={{mark since fpext4 ts}}}} | {{dsc fun | nolink=true | crexpm1{{mark optional}} | correctly-rounded version of {{lc|expm1}}|notes={{mark since fpext4 ts}}}} | ||
Line 74: | Line 82: | ||
{{dsc fun | nolink=true | cratanh{{mark optional}} | correctly-rounded version of {{lc|atanh}}|notes={{mark since fpext4 ts}}}} | {{dsc fun | nolink=true | cratanh{{mark optional}} | correctly-rounded version of {{lc|atanh}}|notes={{mark since fpext4 ts}}}} | ||
{{dsc fun | nolink=true | crhypot{{mark optional}} | correctly-rounded version of {{lc|hypot}}|notes={{mark since fpext4 ts}}}} | {{dsc fun | nolink=true | crhypot{{mark optional}} | correctly-rounded version of {{lc|hypot}}|notes={{mark since fpext4 ts}}}} | ||
+ | |||
+ | {{dsc h2 | Complex version of functions}} | ||
{{dsc header | complex.h }} | {{dsc header | complex.h }} | ||
{{dsc fun | nolink=true | cexp2m1{{mark optional}} | complex number version of {{lc|exp2m1}}|notes={{mark since fpext4 ts}}}} | {{dsc fun | nolink=true | cexp2m1{{mark optional}} | complex number version of {{lc|exp2m1}}|notes={{mark since fpext4 ts}}}} |
Latest revision as of 04:03, 11 January 2020
Floating-point extensions for C - Part 4: Supplementary functions, ISO/IEC TS 18661-4:2015, defines the following new components for the C standard library, as recommended by ISO/IEC/IEEE 60559:2011 (the current revision of IEEE-754).
Supplemenatary mathematical functions listed below are merged into C2x standard.
Predefined feature test macros | ||
__STDC_IEC_60559_FUNCS__ |
integer constant of type long and value 201506L (macro constant) | |
Supplementary mathematical functions | ||
Defined in header
<math.h> | ||
compute 2x-1 (function) | ||
(FP Ext 4 TS) |
compute 10x (function) | |
compute 10x-1 (function) | ||
(FP Ext 4 TS) |
compute ln(1+x) (same as log1p) (function) | |
compute log2(1+x) (function) | ||
compute log10(1+x) (function) | ||
(FP Ext 4 TS) |
compute the inverse square root x-1/2 (function) | |
compute compound interest, (1+x)n (function) | ||
(FP Ext 4 TS) |
compute the nth root of x, x1/n (function) | |
(FP Ext 4 TS) |
compute x raised to the nth power, where n is integer (function) | |
(FP Ext 4 TS) |
compute x raised to the y power, xy (function) | |
compute arccos(x)/π (measuring the angle in half-revolutions) (function) | ||
compute arcsin(x)/π (measuring the angle in half-revolutions) (function) | ||
compute arctan(x)/π (measuring the angle in half-revolutions) (function) | ||
compute arctan(y/x)/π (measuring the angle in half-revolutions) (function) | ||
(FP Ext 4 TS) |
compute cos(πx) (measuring the angle in half-revolutions) (function) | |
(FP Ext 4 TS) |
compute sin(πx) (measuring the angle in half-revolutions) (function) | |
(FP Ext 4 TS) |
compute tan(πx) (measuring the angle in half-revolutions) (function) | |
Reduction functions | ||
Defined in header
<math.h> | ||
compute the sum of n members of an array (function) | ||
compute the sum of the absolute values of n members of an array (function) | ||
compute the sum of squares of n members of an array (function) | ||
compute the dot product between n members of two arrays (function) | ||
compute the product of n members of an array as a scaled value and a scale factor (function) | ||
compute the dot product of n members of two arrays as a scaled value and a scale factor (function) | ||
compute the product of the differences between corresponding n members of two arrays as a scaled value and a scale factor (function) | ||
Correctly-rounded version of functions | ||
Defined in header
<math.h> | ||
crexp(optional) (FP Ext 4 TS) |
correctly-rounded version of exp (function) | |
crexpm1(optional) (FP Ext 4 TS) |
correctly-rounded version of expm1 (function) | |
crexp2(optional) (FP Ext 4 TS) |
correctly-rounded version of exp2 (function) | |
crexp2m1(optional) (FP Ext 4 TS) |
correctly-rounded version of exp2m1 (function) | |
crexp10(optional) (FP Ext 4 TS) |
correctly-rounded version of exp10 (function) | |
crexp10m1(optional) (FP Ext 4 TS) |
correctly-rounded version of exp10m1 (function) | |
crlog(optional) (FP Ext 4 TS) |
correctly-rounded version of log (function) | |
crlog2(optional) (FP Ext 4 TS) |
correctly-rounded version of log2 (function) | |
crlog10(optional) (FP Ext 4 TS) |
correctly-rounded version of log10 (function) | |
crlog1p(optional) (FP Ext 4 TS) |
correctly-rounded version of log1p (function) | |
crlogp1(optional) (FP Ext 4 TS) |
correctly-rounded version of logp1 (function) | |
crlog2p1(optional) (FP Ext 4 TS) |
correctly-rounded version of log2p1 (function) | |
crlog10p1(optional) (FP Ext 4 TS) |
correctly-rounded version of log10p1 (function) | |
crrsqrt(optional) (FP Ext 4 TS) |
correctly-rounded version of rsqrt (function) | |
crcompoundn(optional) (FP Ext 4 TS) |
correctly-rounded version of compoundn (function) | |
crrootn(optional) (FP Ext 4 TS) |
correctly-rounded version of rootn (function) | |
crpown(optional) (FP Ext 4 TS) |
correctly-rounded version of pown (function) | |
crpow(optional) (FP Ext 4 TS) |
correctly-rounded version of pow (function) | |
crpowr(optional) (FP Ext 4 TS) |
correctly-rounded version of powr (function) | |
crsin(optional) (FP Ext 4 TS) |
correctly-rounded version of sin (function) | |
crcos(optional) (FP Ext 4 TS) |
correctly-rounded version of cos (function) | |
crtan(optional) (FP Ext 4 TS) |
correctly-rounded version of tan (function) | |
crsinpi(optional) (FP Ext 4 TS) |
correctly-rounded version of sinpi (function) | |
crcospi(optional) (FP Ext 4 TS) |
correctly-rounded version of cospi (function) | |
crtanpi(optional) (FP Ext 4 TS) |
correctly-rounded version of tanpi (function) | |
crasinpi(optional) (FP Ext 4 TS) |
correctly-rounded version of asinpi (function) | |
cracospi(optional) (FP Ext 4 TS) |
correctly-rounded version of acospi (function) | |
cracospi(optional) (FP Ext 4 TS) |
correctly-rounded version of acospi (function) | |
cratanpi(optional) (FP Ext 4 TS) |
correctly-rounded version of atanpi (function) | |
cratan2pi(optional) (FP Ext 4 TS) |
correctly-rounded version of atan2pi (function) | |
crasin(optional) (FP Ext 4 TS) |
correctly-rounded version of asin (function) | |
cracos(optional) (FP Ext 4 TS) |
correctly-rounded version of acos (function) | |
cratan(optional) (FP Ext 4 TS) |
correctly-rounded version of atan (function) | |
cratan2(optional) (FP Ext 4 TS) |
correctly-rounded version of atan2 (function) | |
crsinh(optional) (FP Ext 4 TS) |
correctly-rounded version of sinh (function) | |
crcosh(optional) (FP Ext 4 TS) |
correctly-rounded version of cosh (function) | |
crtanh(optional) (FP Ext 4 TS) |
correctly-rounded version of tanh (function) | |
crasinh(optional) (FP Ext 4 TS) |
correctly-rounded version of asinh (function) | |
cracosh(optional) (FP Ext 4 TS) |
correctly-rounded version of acosh (function) | |
cratanh(optional) (FP Ext 4 TS) |
correctly-rounded version of atanh (function) | |
crhypot(optional) (FP Ext 4 TS) |
correctly-rounded version of hypot (function) | |
Complex version of functions | ||
Defined in header
<complex.h> | ||
cexp2m1(optional) (FP Ext 4 TS) |
complex number version of exp2m1 (function) | |
cexp10(optional) (FP Ext 4 TS) |
complex number version of exp10 (function) | |
cexp10m1(optional) (FP Ext 4 TS) |
complex number version of exp10m1 (function) | |
clogp1(optional) (FP Ext 4 TS) |
complex number version of logp1 (function) | |
clog2p1(optional) (FP Ext 4 TS) |
complex number version of log2p1 (function) | |
clog10p1(optional) (FP Ext 4 TS) |
complex number version of log10p1 (function) | |
crsqrt (optional) (FP Ext 4 TS) |
complex number version of rsqrt (function) | |
ccompoundn (optional) (FP Ext 4 TS) |
complex number version of compoundn (function) | |
crootn(optional) (FP Ext 4 TS) |
complex number version of rootn (function) | |
cpown (optional) (FP Ext 4 TS) |
complex number version of pown (function) | |
cpowr(optional) (FP Ext 4 TS) |
complex number version of powr (function) | |
cacospi(optional) (FP Ext 4 TS) |
complex number version of acospi (function) | |
casinpi(optional) (FP Ext 4 TS) |
complex number version of asinpi (function) | |
catanpi(optional) (FP Ext 4 TS) |
complex number version of atanpi (function) | |
ccospi(optional) (FP Ext 4 TS) |
complex number version of cospi (function) | |
csinpi(optional) (FP Ext 4 TS) |
complex number version of sinpi (function) | |
ctanpi(optional) (FP Ext 4 TS) |
complex number version of tanpi (function) |
[edit] Notes
All functions added to the C library by this extension are only declared if a macro __STDC_WANT_IEC_60559_FUNCS_EXT__ is defined before math.h is included.
The decimal floating-point variants of every function are only defined if __STDC_WANT_IEC_60559_DFP_EXT__ is also defined before math.h is included.
The extended precision variants of every function are only defined if __STDC_WANT_IEC_60559_TYPES_EXT__ is defined before math.h is included.
The correctly-rounded versions of all functions (with the cr- prefix) are optional.