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
2
x
-1
(function) |
|
(FP Ext 4 TS)
|
compute
10
x
(function) |
compute
10
x
-1
(function) |
|
(FP Ext 4 TS)
|
compute ln(1+x) (same as
log1p
)
(function) |
compute
log
2
(1+x)
(function) |
|
compute
log
10
(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,
x
1/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,
x
y
(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.