mirror of
https://sourceware.org/git/glibc.git
synced 2024-11-27 11:43:34 +08:00
79c52daf47
C23 adds various <math.h> function families originally defined in TS 18661-4. Add the log2p1 functions (log2(1+x): like log1p, but for base-2 logarithms). This illustrates the intended structure of implementations of all these function families: define them initially with a type-generic template implementation. If someone wishes to add type-specific implementations, it is likely such implementations can be both faster and more accurate than the type-generic one and can then override it for types for which they are implemented (adding benchmarks would be desirable in such cases to demonstrate that a new implementation is indeed faster). The test inputs are copied from those for log1p. Note that these changes make gen-auto-libm-tests depend on MPFR 4.2 (or later). The bulk of the changes are fairly generic for any such new function. (sysdeps/powerpc/nofpu/Makefile only needs changing for those type-generic templates that use fabs.) Tested for x86_64 and x86, and with build-many-glibcs.py.
649 lines
17 KiB
Plaintext
649 lines
17 KiB
Plaintext
%include <float128-abi.h>
|
|
libc {
|
|
GLIBC_2.0 {
|
|
# functions used in inline functions or macros
|
|
__isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
|
|
__isinf; __isinff; __isinfl;
|
|
|
|
# global variables
|
|
__fpu_control;
|
|
|
|
# c*
|
|
copysign; copysignf; copysignl;
|
|
|
|
# f*
|
|
finite; finitef; finitel; frexp; frexpf; frexpl;
|
|
|
|
# i*
|
|
isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl;
|
|
|
|
# m*
|
|
modf; modff; modfl;
|
|
|
|
# s*
|
|
scalbn; scalbnf; scalbnl;
|
|
}
|
|
GLIBC_2.1 {
|
|
# functions used in inline functions or macros
|
|
__signbit; __signbitf; __signbitl;
|
|
|
|
# s*
|
|
scalbln; scalblnf; scalblnl;
|
|
}
|
|
GLIBC_2.20 {
|
|
}
|
|
}
|
|
|
|
libm {
|
|
GLIBC_2.0 {
|
|
# mathematical functions
|
|
acos; acosf; acosl;
|
|
acosh; acoshf; acoshl;
|
|
asin; asinf; asinl;
|
|
asinh; asinhf; asinhl;
|
|
atan2; atan2f; atan2l;
|
|
atan; atanf; atanl;
|
|
atanh; atanhf; atanhl;
|
|
cbrt; cbrtf; cbrtl;
|
|
ceil; ceilf; ceill;
|
|
copysign; copysignf; copysignl;
|
|
cos; cosf; cosl;
|
|
coshf; cosh; coshl;
|
|
drem; dremf; dreml;
|
|
erf; erff; erfl;
|
|
erfc; erfcf; erfcl;
|
|
exp; expf; expl;
|
|
expm1; expm1f; expm1l;
|
|
fabs; fabsf; fabsl;
|
|
finite; finitef; finitel;
|
|
floor; floorf; floorl;
|
|
fmod; fmodf; fmodl;
|
|
frexp; frexpf; frexpl;
|
|
gamma; gammaf; gammal;
|
|
gamma_r; gammaf_r; gammal_r;
|
|
hypot; hypotf; hypotl;
|
|
ilogb; ilogbf; ilogbl;
|
|
j0; j0f; j0l;
|
|
j1; j1f; j1l;
|
|
jn; jnf; jnl;
|
|
ldexp; ldexpf; ldexpl;
|
|
lgamma; lgammaf; lgammal;
|
|
lgamma_r; lgammaf_r; lgammal_r;
|
|
log10; log10f; log10l;
|
|
log1p; log1pf; log1pl;
|
|
log; logf; logl;
|
|
logb; logbf; logbl;
|
|
matherr;
|
|
modf; modff; modfl;
|
|
nextafter; nextafterf; nextafterl;
|
|
pow; powf; powl;
|
|
remainder; remainderf; remainderl;
|
|
rint; rintf; rintl;
|
|
scalb; scalbf; scalbl;
|
|
scalbn; scalbnf; scalbnl;
|
|
significand; significandf; significandl;
|
|
sin; sinf; sinl;
|
|
sinh; sinhf; sinhl;
|
|
sqrt; sqrtf; sqrtl;
|
|
tan; tanf; tanl;
|
|
tanh; tanhf; tanhl;
|
|
y0; y0f; y0l;
|
|
y1; y1f; y1l;
|
|
yn; ynf; ynl;
|
|
|
|
|
|
# global variables
|
|
_LIB_VERSION; signgam;
|
|
}
|
|
GLIBC_2.1 {
|
|
# mathematical functions
|
|
exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below)
|
|
exp10; exp10f; exp10l;
|
|
fdim; fdimf; fdiml;
|
|
fma; fmaf; fmal;
|
|
fmax; fmaxf; fmaxl;
|
|
fmin; fminf; fminl;
|
|
log2; log2f; log2l;
|
|
nan; nanf; nanl;
|
|
nearbyint; nearbyintf; nearbyintl;
|
|
nexttoward; nexttowardf; nexttowardl;
|
|
pow10; pow10f; pow10l;
|
|
remquo; remquof; remquol;
|
|
lrint; lrintf; lrintl;
|
|
llrint; llrintf; llrintl;
|
|
round; roundf; roundl;
|
|
lround; lroundf; lroundl;
|
|
llround; llroundf; llroundl;
|
|
scalbln; scalblnf; scalblnl;
|
|
sincos; sincosf; sincosl;
|
|
trunc; truncf; truncl;
|
|
tgamma; tgammaf; tgammal;
|
|
|
|
# complex functions
|
|
cabs; cabsf; cabsl;
|
|
cacos; cacosf; cacosl;
|
|
cacosh; cacoshf; cacoshl;
|
|
carg; cargf; cargl;
|
|
casin; casinf; casinl;
|
|
casinh; casinhf; casinhl;
|
|
catan; catanf; catanl;
|
|
catanh; catanhf; catanhl;
|
|
ccos; ccosf; ccosl;
|
|
ccosh; ccoshf; ccoshl;
|
|
cexp; cexpf; cexpl;
|
|
cimag; cimagf; cimagl;
|
|
clog; clogf; clogl;
|
|
clog10; clog10f; clog10l;
|
|
__clog10; __clog10f; __clog10l;
|
|
conj; conjf; conjl;
|
|
cpow; cpowf; cpowl;
|
|
cproj; cprojf; cprojl;
|
|
creal; crealf; creall;
|
|
csin; csinf; csinl;
|
|
csinh; csinhf; csinhl;
|
|
csqrt; csqrtf; csqrtl;
|
|
ctan; ctanf; ctanl;
|
|
ctanh; ctanhf; ctanhl;
|
|
|
|
# fp environment functions
|
|
feclearexcept; fegetenv; fegetexceptflag;
|
|
fegetround; feholdexcept; feraiseexcept;
|
|
fesetenv; fesetexceptflag; fesetround;
|
|
fetestexcept; feupdateenv;
|
|
|
|
# functions used in inline functions or macros
|
|
__finite; __finitef; __finitel;
|
|
__fpclassify; __fpclassifyf; __fpclassifyl;
|
|
__signbit; __signbitf; __signbitl;
|
|
}
|
|
GLIBC_2.2 {
|
|
# fp environment functions changes from ISO C99 TR1
|
|
feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
|
|
fesetenv; fesetexceptflag; feupdateenv;
|
|
|
|
# fp environment function
|
|
feenableexcept; fedisableexcept; fegetexcept;
|
|
}
|
|
GLIBC_2.4 {
|
|
# A bug in sysdeps/generic/w_exp2.c kept this from appearing
|
|
# in GLIBC_2.1 as it should have on platforms using that
|
|
# implementation file. On others, sysdeps/CPU/Versions now
|
|
# puts exp2l in GLIBC_2.1, which will override this entry.
|
|
exp2l;
|
|
}
|
|
GLIBC_2.15 {
|
|
# Optimized -ffinite-math-only entry points
|
|
__acos_finite; __acosf_finite; __acosl_finite;
|
|
__acosh_finite; __acoshf_finite; __acoshl_finite;
|
|
__asin_finite; __asinf_finite; __asinl_finite;
|
|
__atan2_finite; __atan2f_finite; __atan2l_finite;
|
|
__atanh_finite; __atanhf_finite; __atanhl_finite;
|
|
__cosh_finite; __coshf_finite; __coshl_finite;
|
|
__exp10_finite; __exp10f_finite; __exp10l_finite;
|
|
__exp2_finite; __exp2f_finite; __exp2l_finite;
|
|
__fmod_finite; __fmodf_finite; __fmodl_finite;
|
|
__hypot_finite; __hypotf_finite; __hypotl_finite;
|
|
__j0_finite; __j0f_finite; __j0l_finite;
|
|
__y0_finite; __y0f_finite; __y0l_finite;
|
|
__j1_finite; __j1f_finite; __j1l_finite;
|
|
__y1_finite; __y1f_finite; __y1l_finite;
|
|
__jn_finite; __jnf_finite; __jnl_finite;
|
|
__yn_finite; __ynf_finite; __ynl_finite;
|
|
__lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
|
|
__log_finite; __logf_finite; __logl_finite;
|
|
__log10_finite; __log10f_finite; __log10l_finite;
|
|
__log2_finite; __log2f_finite; __log2l_finite;
|
|
__pow_finite; __powf_finite; __powl_finite;
|
|
__remainder_finite; __remainderf_finite; __remainderl_finite;
|
|
__scalb_finite; __scalbf_finite; __scalbl_finite;
|
|
__sinh_finite; __sinhf_finite; __sinhl_finite;
|
|
__sqrt_finite; __sqrtf_finite; __sqrtl_finite;
|
|
__gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
|
|
__exp_finite; __expf_finite; __expl_finite;
|
|
}
|
|
GLIBC_2.18 {
|
|
__issignaling; __issignalingf; __issignalingl;
|
|
}
|
|
GLIBC_2.23 {
|
|
# The __signgam name must be exported for the signgam weak alias
|
|
# to work. New symbol versions of lgamma* that set __signgam are
|
|
# needed to preserve compatibility with old binaries that have a
|
|
# dynamic symbol for signgam but not __signgam.
|
|
lgamma; lgammaf; lgammal; __signgam;
|
|
}
|
|
GLIBC_2.24 {
|
|
nextup; nextupf; nextupl;
|
|
nextdown; nextdownf; nextdownl;
|
|
}
|
|
GLIBC_2.25 {
|
|
fesetexcept; fetestexceptflag; fegetmode; fesetmode;
|
|
__iscanonicall; __iseqsigf; __iseqsig; __iseqsigl;
|
|
totalorder; totalorderf; totalorderl;
|
|
totalordermag; totalordermagf; totalordermagl;
|
|
getpayload; getpayloadf; getpayloadl;
|
|
canonicalize; canonicalizef; canonicalizel;
|
|
setpayload; setpayloadf; setpayloadl;
|
|
setpayloadsig; setpayloadsigf; setpayloadsigl;
|
|
llogb; llogbf; llogbl;
|
|
fmaxmag; fmaxmagf; fmaxmagl; fminmag; fminmagf; fminmagl;
|
|
roundeven; roundevenf; roundevenl;
|
|
fromfp; fromfpf; fromfpl; ufromfp; ufromfpf; ufromfpl;
|
|
fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl;
|
|
}
|
|
%ifdef FLOAT128_VERSION
|
|
FLOAT128_VERSION {
|
|
acosf128;
|
|
acoshf128;
|
|
asinf128;
|
|
asinhf128;
|
|
atan2f128;
|
|
atanf128;
|
|
atanhf128;
|
|
cabsf128;
|
|
cacosf128;
|
|
cacoshf128;
|
|
canonicalizef128;
|
|
cargf128;
|
|
casinf128;
|
|
casinhf128;
|
|
catanf128;
|
|
catanhf128;
|
|
cbrtf128;
|
|
ccosf128;
|
|
ccoshf128;
|
|
ceilf128;
|
|
cexpf128;
|
|
cimagf128;
|
|
clog10f128;
|
|
clogf128;
|
|
conjf128;
|
|
copysignf128;
|
|
cosf128;
|
|
coshf128;
|
|
cpowf128;
|
|
cprojf128;
|
|
crealf128;
|
|
csinf128;
|
|
csinhf128;
|
|
csqrtf128;
|
|
ctanf128;
|
|
ctanhf128;
|
|
erfcf128;
|
|
erff128;
|
|
exp10f128;
|
|
exp2f128;
|
|
expf128;
|
|
expm1f128;
|
|
fabsf128;
|
|
fdimf128;
|
|
floorf128;
|
|
fmaf128;
|
|
fmaxf128;
|
|
fmaxmagf128;
|
|
fminf128;
|
|
fminmagf128;
|
|
fmodf128;
|
|
frexpf128;
|
|
fromfpf128;
|
|
fromfpxf128;
|
|
getpayloadf128;
|
|
hypotf128;
|
|
ilogbf128;
|
|
j0f128;
|
|
j1f128;
|
|
jnf128;
|
|
ldexpf128;
|
|
lgammaf128;
|
|
lgammaf128_r;
|
|
llogbf128;
|
|
llrintf128;
|
|
llroundf128;
|
|
log10f128;
|
|
log1pf128;
|
|
log2f128;
|
|
logbf128;
|
|
logf128;
|
|
lrintf128;
|
|
lroundf128;
|
|
modff128;
|
|
nanf128;
|
|
nearbyintf128;
|
|
nextafterf128;
|
|
nextdownf128;
|
|
nextupf128;
|
|
powf128;
|
|
remainderf128;
|
|
remquof128;
|
|
rintf128;
|
|
roundevenf128;
|
|
roundf128;
|
|
scalblnf128;
|
|
scalbnf128;
|
|
setpayloadf128;
|
|
setpayloadsigf128;
|
|
sincosf128;
|
|
sinf128;
|
|
sinhf128;
|
|
sqrtf128;
|
|
tanf128;
|
|
tanhf128;
|
|
tgammaf128;
|
|
totalorderf128;
|
|
totalordermagf128;
|
|
truncf128;
|
|
ufromfpf128;
|
|
ufromfpxf128;
|
|
y0f128;
|
|
y1f128;
|
|
ynf128;
|
|
}
|
|
%endif
|
|
GLIBC_2.27 {
|
|
expf; exp2f; logf; log2f; powf;
|
|
# _Float64x functions, only present for some configurations.
|
|
acosf64x;
|
|
acoshf64x;
|
|
asinf64x;
|
|
asinhf64x;
|
|
atan2f64x;
|
|
atanf64x;
|
|
atanhf64x;
|
|
cabsf64x;
|
|
cacosf64x;
|
|
cacoshf64x;
|
|
canonicalizef64x;
|
|
cargf64x;
|
|
casinf64x;
|
|
casinhf64x;
|
|
catanf64x;
|
|
catanhf64x;
|
|
cbrtf64x;
|
|
ccosf64x;
|
|
ccoshf64x;
|
|
ceilf64x;
|
|
cexpf64x;
|
|
cimagf64x;
|
|
clog10f64x;
|
|
clogf64x;
|
|
conjf64x;
|
|
copysignf64x;
|
|
cosf64x;
|
|
coshf64x;
|
|
cpowf64x;
|
|
cprojf64x;
|
|
crealf64x;
|
|
csinf64x;
|
|
csinhf64x;
|
|
csqrtf64x;
|
|
ctanf64x;
|
|
ctanhf64x;
|
|
erfcf64x;
|
|
erff64x;
|
|
exp10f64x;
|
|
exp2f64x;
|
|
expf64x;
|
|
expm1f64x;
|
|
fabsf64x;
|
|
fdimf64x;
|
|
floorf64x;
|
|
fmaf64x;
|
|
fmaxf64x;
|
|
fmaxmagf64x;
|
|
fminf64x;
|
|
fminmagf64x;
|
|
fmodf64x;
|
|
frexpf64x;
|
|
fromfpf64x;
|
|
fromfpxf64x;
|
|
getpayloadf64x;
|
|
hypotf64x;
|
|
ilogbf64x;
|
|
j0f64x;
|
|
j1f64x;
|
|
jnf64x;
|
|
ldexpf64x;
|
|
lgammaf64x;
|
|
lgammaf64x_r;
|
|
llogbf64x;
|
|
llrintf64x;
|
|
llroundf64x;
|
|
log10f64x;
|
|
log1pf64x;
|
|
log2f64x;
|
|
logbf64x;
|
|
logf64x;
|
|
lrintf64x;
|
|
lroundf64x;
|
|
modff64x;
|
|
nanf64x;
|
|
nearbyintf64x;
|
|
nextafterf64x;
|
|
nextdownf64x;
|
|
nextupf64x;
|
|
powf64x;
|
|
remainderf64x;
|
|
remquof64x;
|
|
rintf64x;
|
|
roundevenf64x;
|
|
roundf64x;
|
|
scalblnf64x;
|
|
scalbnf64x;
|
|
setpayloadf64x;
|
|
setpayloadsigf64x;
|
|
sincosf64x;
|
|
sinf64x;
|
|
sinhf64x;
|
|
sqrtf64x;
|
|
tanf64x;
|
|
tanhf64x;
|
|
tgammaf64x;
|
|
totalorderf64x;
|
|
totalordermagf64x;
|
|
truncf64x;
|
|
ufromfpf64x;
|
|
ufromfpxf64x;
|
|
y0f64x;
|
|
y1f64x;
|
|
ynf64x;
|
|
# _Float32, _Float64 and _Float32x functions, for all configurations.
|
|
acosf32; acosf64; acosf32x;
|
|
acoshf32; acoshf64; acoshf32x;
|
|
asinf32; asinf64; asinf32x;
|
|
asinhf32; asinhf64; asinhf32x;
|
|
atan2f32; atan2f64; atan2f32x;
|
|
atanf32; atanf64; atanf32x;
|
|
atanhf32; atanhf64; atanhf32x;
|
|
cabsf32; cabsf64; cabsf32x;
|
|
cacosf32; cacosf64; cacosf32x;
|
|
cacoshf32; cacoshf64; cacoshf32x;
|
|
canonicalizef32; canonicalizef64; canonicalizef32x;
|
|
cargf32; cargf64; cargf32x;
|
|
casinf32; casinf64; casinf32x;
|
|
casinhf32; casinhf64; casinhf32x;
|
|
catanf32; catanf64; catanf32x;
|
|
catanhf32; catanhf64; catanhf32x;
|
|
cbrtf32; cbrtf64; cbrtf32x;
|
|
ccosf32; ccosf64; ccosf32x;
|
|
ccoshf32; ccoshf64; ccoshf32x;
|
|
ceilf32; ceilf64; ceilf32x;
|
|
cexpf32; cexpf64; cexpf32x;
|
|
cimagf32; cimagf64; cimagf32x;
|
|
clog10f32; clog10f64; clog10f32x;
|
|
clogf32; clogf64; clogf32x;
|
|
conjf32; conjf64; conjf32x;
|
|
copysignf32; copysignf64; copysignf32x;
|
|
cosf32; cosf64; cosf32x;
|
|
coshf32; coshf64; coshf32x;
|
|
cpowf32; cpowf64; cpowf32x;
|
|
cprojf32; cprojf64; cprojf32x;
|
|
crealf32; crealf64; crealf32x;
|
|
csinf32; csinf64; csinf32x;
|
|
csinhf32; csinhf64; csinhf32x;
|
|
csqrtf32; csqrtf64; csqrtf32x;
|
|
ctanf32; ctanf64; ctanf32x;
|
|
ctanhf32; ctanhf64; ctanhf32x;
|
|
erfcf32; erfcf64; erfcf32x;
|
|
erff32; erff64; erff32x;
|
|
exp10f32; exp10f64; exp10f32x;
|
|
exp2f32; exp2f64; exp2f32x;
|
|
expf32; expf64; expf32x;
|
|
expm1f32; expm1f64; expm1f32x;
|
|
fabsf32; fabsf64; fabsf32x;
|
|
fdimf32; fdimf64; fdimf32x;
|
|
floorf32; floorf64; floorf32x;
|
|
fmaf32; fmaf64; fmaf32x;
|
|
fmaxf32; fmaxf64; fmaxf32x;
|
|
fmaxmagf32; fmaxmagf64; fmaxmagf32x;
|
|
fminf32; fminf64; fminf32x;
|
|
fminmagf32; fminmagf64; fminmagf32x;
|
|
fmodf32; fmodf64; fmodf32x;
|
|
frexpf32; frexpf64; frexpf32x;
|
|
fromfpf32; fromfpf64; fromfpf32x;
|
|
fromfpxf32; fromfpxf64; fromfpxf32x;
|
|
getpayloadf32; getpayloadf64; getpayloadf32x;
|
|
hypotf32; hypotf64; hypotf32x;
|
|
ilogbf32; ilogbf64; ilogbf32x;
|
|
j0f32; j0f64; j0f32x;
|
|
j1f32; j1f64; j1f32x;
|
|
jnf32; jnf64; jnf32x;
|
|
ldexpf32; ldexpf64; ldexpf32x;
|
|
lgammaf32; lgammaf64; lgammaf32x;
|
|
lgammaf32_r; lgammaf64_r; lgammaf32x_r;
|
|
llogbf32; llogbf64; llogbf32x;
|
|
llrintf32; llrintf64; llrintf32x;
|
|
llroundf32; llroundf64; llroundf32x;
|
|
log10f32; log10f64; log10f32x;
|
|
log1pf32; log1pf64; log1pf32x;
|
|
log2f32; log2f64; log2f32x;
|
|
logbf32; logbf64; logbf32x;
|
|
logf32; logf64; logf32x;
|
|
lrintf32; lrintf64; lrintf32x;
|
|
lroundf32; lroundf64; lroundf32x;
|
|
modff32; modff64; modff32x;
|
|
nanf32; nanf64; nanf32x;
|
|
nearbyintf32; nearbyintf64; nearbyintf32x;
|
|
nextafterf32; nextafterf64; nextafterf32x;
|
|
nextdownf32; nextdownf64; nextdownf32x;
|
|
nextupf32; nextupf64; nextupf32x;
|
|
powf32; powf64; powf32x;
|
|
remainderf32; remainderf64; remainderf32x;
|
|
remquof32; remquof64; remquof32x;
|
|
rintf32; rintf64; rintf32x;
|
|
roundevenf32; roundevenf64; roundevenf32x;
|
|
roundf32; roundf64; roundf32x;
|
|
scalblnf32; scalblnf64; scalblnf32x;
|
|
scalbnf32; scalbnf64; scalbnf32x;
|
|
setpayloadf32; setpayloadf64; setpayloadf32x;
|
|
setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x;
|
|
sincosf32; sincosf64; sincosf32x;
|
|
sinf32; sinf64; sinf32x;
|
|
sinhf32; sinhf64; sinhf32x;
|
|
sqrtf32; sqrtf64; sqrtf32x;
|
|
tanf32; tanf64; tanf32x;
|
|
tanhf32; tanhf64; tanhf32x;
|
|
tgammaf32; tgammaf64; tgammaf32x;
|
|
totalorderf32; totalorderf64; totalorderf32x;
|
|
totalordermagf32; totalordermagf64; totalordermagf32x;
|
|
truncf32; truncf64; truncf32x;
|
|
ufromfpf32; ufromfpf64; ufromfpf32x;
|
|
ufromfpxf32; ufromfpxf64; ufromfpxf32x;
|
|
y0f32; y0f64; y0f32x;
|
|
y1f32; y1f64; y1f32x;
|
|
ynf32; ynf64; ynf32x;
|
|
}
|
|
GLIBC_2.28 {
|
|
# Functions not involving _Float64x or _Float128, for all configurations.
|
|
fadd; faddl; daddl;
|
|
f32addf32x; f32addf64; f32xaddf64;
|
|
fdiv; fdivl; ddivl;
|
|
f32divf32x; f32divf64; f32xdivf64;
|
|
fmul; fmull; dmull;
|
|
f32mulf32x; f32mulf64; f32xmulf64;
|
|
fsub; fsubl; dsubl;
|
|
f32subf32x; f32subf64; f32xsubf64;
|
|
# Functions involving _Float64x or _Float128, for some configurations.
|
|
f32addf64x; f32addf128;
|
|
f32xaddf64x; f32xaddf128; f64addf64x; f64addf128;
|
|
f64xaddf128;
|
|
f32divf64x; f32divf128;
|
|
f32xdivf64x; f32xdivf128; f64divf64x; f64divf128;
|
|
f64xdivf128;
|
|
f32mulf64x; f32mulf128;
|
|
f32xmulf64x; f32xmulf128; f64mulf64x; f64mulf128;
|
|
f64xmulf128;
|
|
f32subf64x; f32subf128;
|
|
f32xsubf64x; f32xsubf128; f64subf64x; f64subf128;
|
|
f64xsubf128;
|
|
}
|
|
GLIBC_2.29 {
|
|
# No SVID compatible error handling.
|
|
exp; exp2; log; log2; pow;
|
|
}
|
|
GLIBC_2.31 {
|
|
# totalorder changed to take pointer arguments.
|
|
totalorder; totalorderf; totalorderl;
|
|
totalordermag; totalordermagf; totalordermagl;
|
|
totalorderf32; totalorderf64; totalorderf32x;
|
|
totalordermagf32; totalordermagf64; totalordermagf32x;
|
|
totalorderf64x;
|
|
totalordermagf64x;
|
|
totalorderf128;
|
|
totalordermagf128;
|
|
}
|
|
GLIBC_2.32 {
|
|
exp10f;
|
|
}
|
|
GLIBC_2.35 {
|
|
# Functions not involving _Float64x or _Float128, for all configurations.
|
|
ffma; ffmal; dfmal;
|
|
f32fmaf32x; f32fmaf64; f32xfmaf64;
|
|
fsqrt; fsqrtl; dsqrtl;
|
|
f32sqrtf32x; f32sqrtf64; f32xsqrtf64;
|
|
fmaximum; fmaximumf; fmaximuml; fmaximumf32; fmaximumf64; fmaximumf32x;
|
|
fmaximum_num; fmaximum_numf; fmaximum_numl;
|
|
fmaximum_numf32; fmaximum_numf64; fmaximum_numf32x;
|
|
fmaximum_mag; fmaximum_magf; fmaximum_magl;
|
|
fmaximum_magf32; fmaximum_magf64; fmaximum_magf32x;
|
|
fmaximum_mag_num; fmaximum_mag_numf; fmaximum_mag_numl;
|
|
fmaximum_mag_numf32; fmaximum_mag_numf64; fmaximum_mag_numf32x;
|
|
fminimum; fminimumf; fminimuml; fminimumf32; fminimumf64; fminimumf32x;
|
|
fminimum_num; fminimum_numf; fminimum_numl;
|
|
fminimum_numf32; fminimum_numf64; fminimum_numf32x;
|
|
fminimum_mag; fminimum_magf; fminimum_magl;
|
|
fminimum_magf32; fminimum_magf64; fminimum_magf32x;
|
|
fminimum_mag_num; fminimum_mag_numf; fminimum_mag_numl;
|
|
fminimum_mag_numf32; fminimum_mag_numf64; fminimum_mag_numf32x;
|
|
# Functions involving _Float64x or _Float128, for some configurations.
|
|
f32fmaf64x; f32fmaf128;
|
|
f32xfmaf64x; f32xfmaf128; f64fmaf64x; f64fmaf128;
|
|
f64xfmaf128;
|
|
f32sqrtf64x; f32sqrtf128;
|
|
f32xsqrtf64x; f32xsqrtf128; f64sqrtf64x; f64sqrtf128;
|
|
f64xsqrtf128;
|
|
fmaximumf64x; fmaximumf128;
|
|
fmaximum_numf64x; fmaximum_numf128;
|
|
fmaximum_magf64x; fmaximum_magf128;
|
|
fmaximum_mag_numf64x; fmaximum_mag_numf128;
|
|
fminimumf64x; fminimumf128;
|
|
fminimum_numf64x; fminimum_numf128;
|
|
fminimum_magf64x; fminimum_magf128;
|
|
fminimum_mag_numf64x; fminimum_mag_numf128;
|
|
# No SVID compatible error handling.
|
|
hypotf; hypot;
|
|
}
|
|
GLIBC_2.38 {
|
|
# No SVID compatible error handling.
|
|
fmod; fmodf;
|
|
}
|
|
GLIBC_2.39 {
|
|
# No SVID compatible error handling.
|
|
exp10;
|
|
}
|
|
GLIBC_2.40 {
|
|
# Functions not involving _Float64x or _Float128, for all configurations.
|
|
log2p1; log2p1f; log2p1l; log2p1f32; log2p1f64; log2p1f32x;
|
|
# Functions involving _Float64x or _Float128, for some configurations.
|
|
log2p1f64x; log2p1f128;
|
|
}
|
|
}
|