Floating-point extensions part 4: supplementary functions
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) |
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.