d02641556c
The primary benefit of these functions is that argument reduction is done once instead of twice in independent calls to sin() and cos(). * lib/msun/Makefile: . Add s_sincos[fl].c to the build. . Add sincos.3 documentation. . Add appropriate MLINKS. * lib/msun/Symbol.map: . Expose sincos[fl] symbols in dynamic libm.so. * lib/msun/man/sincos.3: . Documentation for sincos[fl]. * lib/msun/src/k_sincos.h: . Kernel for sincos() function. This merges the individual kernels for sin() and cos(). The merger offered an opportunity to re-arrange the individual kernels for better performance. * lib/msun/src/k_sincosf.h: . Kernel for sincosf() function. This merges the individual kernels for sinf() and cosf(). The merger offered an opportunity to re-arrange the individual kernels for better performance. * lib/msun/src/k_sincosl.h: . Kernel for sincosl() function. This merges the individual kernels for sinl() and cosl(). The merger offered an opportunity to re-arrange the individual kernels for better performance. * lib/msun/src/math.h: . Add prototytpes for sincos[fl](). * lib/msun/src/math_private.h: . Add RETURNV macros. This is needed to reset fpsetprec on I386 hardware for a function with type void. * lib/msun/src/s_sincos.c: . Implementation of sincos() where sin() and cos() were merged into one routine and possibly re-arranged for better performance. * lib/msun/src/s_sincosf.c: . Implementation of sincosf() where sinf() and cosf() were merged into one routine and possibly re-arranged for better performance. * lib/msun/src/s_sincosl.c: . Implementation of sincosl() where sinl() and cosl() were merged into one routine and possibly re-arranged for better performance. PR: 215977, 218300 Submitted by: Steven G. Kargl <sgk@troutmask.apl.washington.edu> MFC after: 1 month Differential Revision: https://reviews.freebsd.org/D10765
301 lines
2.7 KiB
Plaintext
301 lines
2.7 KiB
Plaintext
/*
|
|
* $FreeBSD$
|
|
*/
|
|
|
|
/* 7.0-CURRENT */
|
|
FBSD_1.0 {
|
|
__fe_dfl_env;
|
|
tgamma;
|
|
acos;
|
|
acosf;
|
|
acosh;
|
|
acoshf;
|
|
asin;
|
|
asinf;
|
|
atan2;
|
|
atan2f;
|
|
atanh;
|
|
atanhf;
|
|
cosh;
|
|
coshf;
|
|
exp;
|
|
expf;
|
|
fmod;
|
|
fmodf;
|
|
gamma;
|
|
gamma_r;
|
|
gammaf;
|
|
gammaf_r;
|
|
hypot;
|
|
hypotf;
|
|
j0;
|
|
y0;
|
|
j0f;
|
|
y0f;
|
|
j1;
|
|
y1;
|
|
j1f;
|
|
y1f;
|
|
jn;
|
|
yn;
|
|
jnf;
|
|
ynf;
|
|
lgamma;
|
|
lgamma_r;
|
|
lgammaf;
|
|
lgammaf_r;
|
|
log;
|
|
log10;
|
|
log10f;
|
|
logf;
|
|
pow;
|
|
powf;
|
|
remainder;
|
|
remainderf;
|
|
scalb;
|
|
scalbf;
|
|
sinh;
|
|
sinhf;
|
|
sqrt;
|
|
sqrtf;
|
|
asinh;
|
|
asinhf;
|
|
atan;
|
|
atanf;
|
|
cbrt;
|
|
cbrtf;
|
|
ceil;
|
|
ceilf;
|
|
ceill;
|
|
cimag;
|
|
cimagf;
|
|
cimagl;
|
|
conj;
|
|
conjf;
|
|
conjl;
|
|
copysign;
|
|
copysignf;
|
|
copysignl;
|
|
cos;
|
|
cosf;
|
|
creal;
|
|
crealf;
|
|
creall;
|
|
erf;
|
|
erfc;
|
|
erff;
|
|
erfcf;
|
|
exp2;
|
|
exp2f;
|
|
expm1;
|
|
expm1f;
|
|
fabs;
|
|
fabsf;
|
|
fabsl;
|
|
fdim;
|
|
fdimf;
|
|
fdiml;
|
|
finite;
|
|
finitef;
|
|
floor;
|
|
floorf;
|
|
floorl;
|
|
fma;
|
|
fmaf;
|
|
fmal;
|
|
fmax;
|
|
fmaxf;
|
|
fmaxl;
|
|
fmin;
|
|
fminf;
|
|
fminl;
|
|
frexp;
|
|
frexpf;
|
|
frexpl;
|
|
ilogb;
|
|
ilogbf;
|
|
ilogbl;
|
|
__isfinite;
|
|
__isfinitef;
|
|
__isfinitel;
|
|
isnanf;
|
|
__isnanl;
|
|
__isnormal;
|
|
__isnormalf;
|
|
__isnormall;
|
|
llrint;
|
|
llrintf;
|
|
llround;
|
|
llroundf;
|
|
llroundl;
|
|
log1p;
|
|
log1pf;
|
|
logb;
|
|
logbf;
|
|
lrint;
|
|
lrintf;
|
|
lround;
|
|
lroundf;
|
|
lroundl;
|
|
modff;
|
|
modfl;
|
|
nearbyint;
|
|
nearbyintf;
|
|
nextafter;
|
|
nexttoward;
|
|
nexttowardl;
|
|
nextafterl;
|
|
nextafterf;
|
|
nexttowardf;
|
|
remquo;
|
|
remquof;
|
|
rint;
|
|
rintf;
|
|
round;
|
|
roundf;
|
|
roundl;
|
|
scalbln;
|
|
scalblnf;
|
|
scalblnl;
|
|
scalbn;
|
|
scalbnl;
|
|
scalbnf;
|
|
ldexpf;
|
|
ldexpl;
|
|
__signbit;
|
|
__signbitf;
|
|
__signbitl;
|
|
signgam;
|
|
significand;
|
|
significandf;
|
|
sin;
|
|
sinf;
|
|
tan;
|
|
tanf;
|
|
tanh;
|
|
tanhf;
|
|
trunc;
|
|
truncf;
|
|
truncl;
|
|
cabs;
|
|
cabsf;
|
|
drem;
|
|
dremf;
|
|
};
|
|
|
|
/* First added in 8.0-CURRENT */
|
|
FBSD_1.1 {
|
|
carg;
|
|
cargf;
|
|
csqrt;
|
|
csqrtf;
|
|
logbl;
|
|
nan;
|
|
nanf;
|
|
nanl;
|
|
llrintl;
|
|
lrintl;
|
|
nearbyintl;
|
|
rintl;
|
|
exp2l;
|
|
sinl;
|
|
cosl;
|
|
tanl;
|
|
tgammaf;
|
|
sqrtl;
|
|
hypotl;
|
|
cabsl;
|
|
csqrtl;
|
|
remquol;
|
|
remainderl;
|
|
fmodl;
|
|
acosl;
|
|
asinl;
|
|
atan2l;
|
|
atanl;
|
|
cargl;
|
|
cproj;
|
|
cprojf;
|
|
cprojl;
|
|
};
|
|
|
|
/* First added in 9.0-CURRENT */
|
|
FBSD_1.2 {
|
|
__isnanf;
|
|
cbrtl;
|
|
cexp;
|
|
cexpf;
|
|
log2;
|
|
log2f;
|
|
};
|
|
|
|
/* First added in 10.0-CURRENT */
|
|
FBSD_1.3 {
|
|
feclearexcept;
|
|
fegetexceptflag;
|
|
fetestexcept;
|
|
fegetround;
|
|
fesetround;
|
|
fesetenv;
|
|
acoshl;
|
|
asinhl;
|
|
atanhl;
|
|
cacos;
|
|
cacosf;
|
|
cacosh;
|
|
cacoshf;
|
|
casin;
|
|
casinf;
|
|
casinh;
|
|
casinhf;
|
|
catan;
|
|
catanf;
|
|
catanh;
|
|
catanhf;
|
|
csin;
|
|
csinf;
|
|
csinh;
|
|
csinhf;
|
|
ccos;
|
|
ccosf;
|
|
ccosh;
|
|
ccoshf;
|
|
coshl;
|
|
ctan;
|
|
ctanf;
|
|
ctanh;
|
|
ctanhf;
|
|
erfcl;
|
|
erfl;
|
|
expl;
|
|
expm1l;
|
|
lgammal;
|
|
log10l;
|
|
log1pl;
|
|
log2l;
|
|
logl;
|
|
sinhl;
|
|
tanhl;
|
|
/* Implemented as weak aliases for imprecise versions */
|
|
powl;
|
|
tgammal;
|
|
};
|
|
|
|
/* First added in 11.0-CURRENT */
|
|
FBSD_1.4 {
|
|
lgammal_r;
|
|
};
|
|
|
|
/* First added in 12.0-CURRENT */
|
|
FBSD_1.5 {
|
|
cacoshl;
|
|
cacosl;
|
|
casinhl;
|
|
casinl;
|
|
catanl;
|
|
catanhl;
|
|
sincos;
|
|
sincosf;
|
|
sincosl;
|
|
};
|