stdlib: Optimization qsort{_r} swap implementation
[glibc.git] / math / Versions
blob759b5fac7f43739de9bf63fcb5d41fae071ee86b
1 %include <float128-abi.h>
2 libc {
3   GLIBC_2.0 {
4     # functions used in inline functions or macros
5     __isnan; __isnanf; __isnanl; __finite; __finitef; __finitel;
6     __isinf; __isinff; __isinfl;
8     # global variables
9     __fpu_control;
11     # c*
12     copysign; copysignf; copysignl;
14     # f*
15     finite; finitef; finitel; frexp; frexpf; frexpl;
17     # i*
18     isinf; isinff; isinfl; isnan; isnanf; isnanl; ldexp; ldexpf; ldexpl;
20     # m*
21     modf; modff; modfl;
23     # s*
24     scalbn; scalbnf; scalbnl;
25   }
26   GLIBC_2.1 {
27     # functions used in inline functions or macros
28     __signbit; __signbitf; __signbitl;
30     # s*
31     scalbln; scalblnf; scalblnl;
32   }
33   GLIBC_2.20 {
34   }
37 libm {
38   GLIBC_2.0 {
39     # mathematical functions
40     acos; acosf; acosl;
41     acosh; acoshf; acoshl;
42     asin; asinf; asinl;
43     asinh; asinhf; asinhl;
44     atan2; atan2f; atan2l;
45     atan; atanf; atanl;
46     atanh; atanhf; atanhl;
47     cbrt; cbrtf; cbrtl;
48     ceil; ceilf; ceill;
49     copysign; copysignf; copysignl;
50     cos; cosf; cosl;
51     coshf; cosh; coshl;
52     drem; dremf; dreml;
53     erf; erff; erfl;
54     erfc; erfcf; erfcl;
55     exp; expf; expl;
56     expm1; expm1f; expm1l;
57     fabs; fabsf; fabsl;
58     finite; finitef; finitel;
59     floor; floorf; floorl;
60     fmod; fmodf; fmodl;
61     frexp; frexpf; frexpl;
62     gamma; gammaf; gammal;
63     gamma_r; gammaf_r; gammal_r;
64     hypot; hypotf; hypotl;
65     ilogb; ilogbf; ilogbl;
66     j0; j0f; j0l;
67     j1; j1f; j1l;
68     jn; jnf; jnl;
69     ldexp; ldexpf; ldexpl;
70     lgamma; lgammaf; lgammal;
71     lgamma_r; lgammaf_r; lgammal_r;
72     log10; log10f; log10l;
73     log1p; log1pf; log1pl;
74     log; logf; logl;
75     logb; logbf; logbl;
76     matherr;
77     modf; modff; modfl;
78     nextafter; nextafterf; nextafterl;
79     pow; powf; powl;
80     remainder; remainderf; remainderl;
81     rint; rintf; rintl;
82     scalb; scalbf; scalbl;
83     scalbn; scalbnf; scalbnl;
84     significand; significandf; significandl;
85     sin; sinf; sinl;
86     sinh; sinhf; sinhl;
87     sqrt; sqrtf; sqrtl;
88     tan; tanf; tanl;
89     tanh; tanhf; tanhl;
90     y0; y0f; y0l;
91     y1; y1f; y1l;
92     yn; ynf; ynl;
95     # global variables
96     _LIB_VERSION; signgam;
97   }
98   GLIBC_2.1 {
99     # mathematical functions
100     exp2; exp2f; # exp2l; -- bug omitted this until GLIBC_2.4 (below)
101     exp10; exp10f; exp10l;
102     fdim; fdimf; fdiml;
103     fma; fmaf; fmal;
104     fmax; fmaxf; fmaxl;
105     fmin; fminf; fminl;
106     log2; log2f; log2l;
107     nan; nanf; nanl;
108     nearbyint; nearbyintf; nearbyintl;
109     nexttoward; nexttowardf; nexttowardl;
110     pow10; pow10f; pow10l;
111     remquo; remquof; remquol;
112     lrint; lrintf; lrintl;
113     llrint; llrintf; llrintl;
114     round; roundf; roundl;
115     lround; lroundf; lroundl;
116     llround; llroundf; llroundl;
117     scalbln; scalblnf; scalblnl;
118     sincos; sincosf; sincosl;
119     trunc; truncf; truncl;
120     tgamma; tgammaf; tgammal;
122     # complex functions
123     cabs; cabsf; cabsl;
124     cacos; cacosf; cacosl;
125     cacosh; cacoshf; cacoshl;
126     carg; cargf; cargl;
127     casin; casinf; casinl;
128     casinh; casinhf; casinhl;
129     catan; catanf; catanl;
130     catanh; catanhf; catanhl;
131     ccos; ccosf; ccosl;
132     ccosh; ccoshf; ccoshl;
133     cexp; cexpf; cexpl;
134     cimag; cimagf; cimagl;
135     clog; clogf; clogl;
136     clog10; clog10f; clog10l;
137     __clog10; __clog10f; __clog10l;
138     conj; conjf; conjl;
139     cpow; cpowf; cpowl;
140     cproj; cprojf; cprojl;
141     creal; crealf; creall;
142     csin; csinf; csinl;
143     csinh; csinhf; csinhl;
144     csqrt; csqrtf; csqrtl;
145     ctan; ctanf; ctanl;
146     ctanh; ctanhf; ctanhl;
148     # fp environment functions
149     feclearexcept; fegetenv; fegetexceptflag;
150     fegetround; feholdexcept; feraiseexcept;
151     fesetenv; fesetexceptflag; fesetround;
152     fetestexcept; feupdateenv;
154     # functions used in inline functions or macros
155     __finite; __finitef; __finitel;
156     __fpclassify; __fpclassifyf; __fpclassifyl;
157     __signbit; __signbitf; __signbitl;
158   }
159   GLIBC_2.2 {
160     # fp environment functions changes from ISO C99 TR1
161     feclearexcept; fegetenv; fegetexceptflag; feraiseexcept;
162     fesetenv; fesetexceptflag; feupdateenv;
164     # fp environment function
165     feenableexcept; fedisableexcept; fegetexcept;
166   }
167   GLIBC_2.4 {
168     # A bug in sysdeps/generic/w_exp2.c kept this from appearing
169     # in GLIBC_2.1 as it should have on platforms using that
170     # implementation file.  On others, sysdeps/CPU/Versions now
171     # puts exp2l in GLIBC_2.1, which will override this entry.
172     exp2l;
173   }
174   GLIBC_2.15 {
175     # Optimized -ffinite-math-only entry points
176     __acos_finite; __acosf_finite; __acosl_finite;
177     __acosh_finite; __acoshf_finite; __acoshl_finite;
178     __asin_finite; __asinf_finite; __asinl_finite;
179     __atan2_finite; __atan2f_finite; __atan2l_finite;
180     __atanh_finite; __atanhf_finite; __atanhl_finite;
181     __cosh_finite; __coshf_finite; __coshl_finite;
182     __exp10_finite; __exp10f_finite; __exp10l_finite;
183     __exp2_finite; __exp2f_finite; __exp2l_finite;
184     __fmod_finite; __fmodf_finite; __fmodl_finite;
185     __hypot_finite; __hypotf_finite; __hypotl_finite;
186     __j0_finite; __j0f_finite; __j0l_finite;
187     __y0_finite; __y0f_finite; __y0l_finite;
188     __j1_finite; __j1f_finite; __j1l_finite;
189     __y1_finite; __y1f_finite; __y1l_finite;
190     __jn_finite; __jnf_finite; __jnl_finite;
191     __yn_finite; __ynf_finite; __ynl_finite;
192     __lgamma_r_finite; __lgammaf_r_finite; __lgammal_r_finite;
193     __log_finite; __logf_finite; __logl_finite;
194     __log10_finite; __log10f_finite; __log10l_finite;
195     __log2_finite; __log2f_finite; __log2l_finite;
196     __pow_finite; __powf_finite; __powl_finite;
197     __remainder_finite; __remainderf_finite; __remainderl_finite;
198     __scalb_finite; __scalbf_finite; __scalbl_finite;
199     __sinh_finite; __sinhf_finite; __sinhl_finite;
200     __sqrt_finite; __sqrtf_finite; __sqrtl_finite;
201     __gamma_r_finite; __gammaf_r_finite; __gammal_r_finite;
202     __exp_finite; __expf_finite; __expl_finite;
203   }
204   GLIBC_2.18 {
205     __issignaling; __issignalingf; __issignalingl;
206   }
207   GLIBC_2.23 {
208     # The __signgam name must be exported for the signgam weak alias
209     # to work.  New symbol versions of lgamma* that set __signgam are
210     # needed to preserve compatibility with old binaries that have a
211     # dynamic symbol for signgam but not __signgam.
212     lgamma; lgammaf; lgammal; __signgam;
213   }
214   GLIBC_2.24 {
215     nextup; nextupf; nextupl;
216     nextdown; nextdownf; nextdownl;
217   }
218   GLIBC_2.25 {
219     fesetexcept; fetestexceptflag; fegetmode; fesetmode;
220     __iscanonicall; __iseqsigf; __iseqsig; __iseqsigl;
221     totalorder; totalorderf; totalorderl;
222     totalordermag; totalordermagf; totalordermagl;
223     getpayload; getpayloadf; getpayloadl;
224     canonicalize; canonicalizef; canonicalizel;
225     setpayload; setpayloadf; setpayloadl;
226     setpayloadsig; setpayloadsigf; setpayloadsigl;
227     llogb; llogbf; llogbl;
228     fmaxmag; fmaxmagf; fmaxmagl; fminmag; fminmagf; fminmagl;
229     roundeven; roundevenf; roundevenl;
230     fromfp; fromfpf; fromfpl; ufromfp; ufromfpf; ufromfpl;
231     fromfpx; fromfpxf; fromfpxl; ufromfpx; ufromfpxf; ufromfpxl;
232   }
233 %ifdef FLOAT128_VERSION
234   FLOAT128_VERSION {
235     acosf128;
236     acoshf128;
237     asinf128;
238     asinhf128;
239     atan2f128;
240     atanf128;
241     atanhf128;
242     cabsf128;
243     cacosf128;
244     cacoshf128;
245     canonicalizef128;
246     cargf128;
247     casinf128;
248     casinhf128;
249     catanf128;
250     catanhf128;
251     cbrtf128;
252     ccosf128;
253     ccoshf128;
254     ceilf128;
255     cexpf128;
256     cimagf128;
257     clog10f128;
258     clogf128;
259     conjf128;
260     copysignf128;
261     cosf128;
262     coshf128;
263     cpowf128;
264     cprojf128;
265     crealf128;
266     csinf128;
267     csinhf128;
268     csqrtf128;
269     ctanf128;
270     ctanhf128;
271     erfcf128;
272     erff128;
273     exp10f128;
274     exp2f128;
275     expf128;
276     expm1f128;
277     fabsf128;
278     fdimf128;
279     floorf128;
280     fmaf128;
281     fmaxf128;
282     fmaxmagf128;
283     fminf128;
284     fminmagf128;
285     fmodf128;
286     frexpf128;
287     fromfpf128;
288     fromfpxf128;
289     getpayloadf128;
290     hypotf128;
291     ilogbf128;
292     j0f128;
293     j1f128;
294     jnf128;
295     ldexpf128;
296     lgammaf128;
297     lgammaf128_r;
298     llogbf128;
299     llrintf128;
300     llroundf128;
301     log10f128;
302     log1pf128;
303     log2f128;
304     logbf128;
305     logf128;
306     lrintf128;
307     lroundf128;
308     modff128;
309     nanf128;
310     nearbyintf128;
311     nextafterf128;
312     nextdownf128;
313     nextupf128;
314     powf128;
315     remainderf128;
316     remquof128;
317     rintf128;
318     roundevenf128;
319     roundf128;
320     scalblnf128;
321     scalbnf128;
322     setpayloadf128;
323     setpayloadsigf128;
324     sincosf128;
325     sinf128;
326     sinhf128;
327     sqrtf128;
328     tanf128;
329     tanhf128;
330     tgammaf128;
331     totalorderf128;
332     totalordermagf128;
333     truncf128;
334     ufromfpf128;
335     ufromfpxf128;
336     y0f128;
337     y1f128;
338     ynf128;
339   }
340 %endif
341   GLIBC_2.27 {
342     expf; exp2f; logf; log2f; powf;
343     # _Float64x functions, only present for some configurations.
344     acosf64x;
345     acoshf64x;
346     asinf64x;
347     asinhf64x;
348     atan2f64x;
349     atanf64x;
350     atanhf64x;
351     cabsf64x;
352     cacosf64x;
353     cacoshf64x;
354     canonicalizef64x;
355     cargf64x;
356     casinf64x;
357     casinhf64x;
358     catanf64x;
359     catanhf64x;
360     cbrtf64x;
361     ccosf64x;
362     ccoshf64x;
363     ceilf64x;
364     cexpf64x;
365     cimagf64x;
366     clog10f64x;
367     clogf64x;
368     conjf64x;
369     copysignf64x;
370     cosf64x;
371     coshf64x;
372     cpowf64x;
373     cprojf64x;
374     crealf64x;
375     csinf64x;
376     csinhf64x;
377     csqrtf64x;
378     ctanf64x;
379     ctanhf64x;
380     erfcf64x;
381     erff64x;
382     exp10f64x;
383     exp2f64x;
384     expf64x;
385     expm1f64x;
386     fabsf64x;
387     fdimf64x;
388     floorf64x;
389     fmaf64x;
390     fmaxf64x;
391     fmaxmagf64x;
392     fminf64x;
393     fminmagf64x;
394     fmodf64x;
395     frexpf64x;
396     fromfpf64x;
397     fromfpxf64x;
398     getpayloadf64x;
399     hypotf64x;
400     ilogbf64x;
401     j0f64x;
402     j1f64x;
403     jnf64x;
404     ldexpf64x;
405     lgammaf64x;
406     lgammaf64x_r;
407     llogbf64x;
408     llrintf64x;
409     llroundf64x;
410     log10f64x;
411     log1pf64x;
412     log2f64x;
413     logbf64x;
414     logf64x;
415     lrintf64x;
416     lroundf64x;
417     modff64x;
418     nanf64x;
419     nearbyintf64x;
420     nextafterf64x;
421     nextdownf64x;
422     nextupf64x;
423     powf64x;
424     remainderf64x;
425     remquof64x;
426     rintf64x;
427     roundevenf64x;
428     roundf64x;
429     scalblnf64x;
430     scalbnf64x;
431     setpayloadf64x;
432     setpayloadsigf64x;
433     sincosf64x;
434     sinf64x;
435     sinhf64x;
436     sqrtf64x;
437     tanf64x;
438     tanhf64x;
439     tgammaf64x;
440     totalorderf64x;
441     totalordermagf64x;
442     truncf64x;
443     ufromfpf64x;
444     ufromfpxf64x;
445     y0f64x;
446     y1f64x;
447     ynf64x;
448     # _Float32, _Float64 and _Float32x functions, for all configurations.
449     acosf32; acosf64; acosf32x;
450     acoshf32; acoshf64; acoshf32x;
451     asinf32; asinf64; asinf32x;
452     asinhf32; asinhf64; asinhf32x;
453     atan2f32; atan2f64; atan2f32x;
454     atanf32; atanf64; atanf32x;
455     atanhf32; atanhf64; atanhf32x;
456     cabsf32; cabsf64; cabsf32x;
457     cacosf32; cacosf64; cacosf32x;
458     cacoshf32; cacoshf64; cacoshf32x;
459     canonicalizef32; canonicalizef64; canonicalizef32x;
460     cargf32; cargf64; cargf32x;
461     casinf32; casinf64; casinf32x;
462     casinhf32; casinhf64; casinhf32x;
463     catanf32; catanf64; catanf32x;
464     catanhf32; catanhf64; catanhf32x;
465     cbrtf32; cbrtf64; cbrtf32x;
466     ccosf32; ccosf64; ccosf32x;
467     ccoshf32; ccoshf64; ccoshf32x;
468     ceilf32; ceilf64; ceilf32x;
469     cexpf32; cexpf64; cexpf32x;
470     cimagf32; cimagf64; cimagf32x;
471     clog10f32; clog10f64; clog10f32x;
472     clogf32; clogf64; clogf32x;
473     conjf32; conjf64; conjf32x;
474     copysignf32; copysignf64; copysignf32x;
475     cosf32; cosf64; cosf32x;
476     coshf32; coshf64; coshf32x;
477     cpowf32; cpowf64; cpowf32x;
478     cprojf32; cprojf64; cprojf32x;
479     crealf32; crealf64; crealf32x;
480     csinf32; csinf64; csinf32x;
481     csinhf32; csinhf64; csinhf32x;
482     csqrtf32; csqrtf64; csqrtf32x;
483     ctanf32; ctanf64; ctanf32x;
484     ctanhf32; ctanhf64; ctanhf32x;
485     erfcf32; erfcf64; erfcf32x;
486     erff32; erff64; erff32x;
487     exp10f32; exp10f64; exp10f32x;
488     exp2f32; exp2f64; exp2f32x;
489     expf32; expf64; expf32x;
490     expm1f32; expm1f64; expm1f32x;
491     fabsf32; fabsf64; fabsf32x;
492     fdimf32; fdimf64; fdimf32x;
493     floorf32; floorf64; floorf32x;
494     fmaf32; fmaf64; fmaf32x;
495     fmaxf32; fmaxf64; fmaxf32x;
496     fmaxmagf32; fmaxmagf64; fmaxmagf32x;
497     fminf32; fminf64; fminf32x;
498     fminmagf32; fminmagf64; fminmagf32x;
499     fmodf32; fmodf64; fmodf32x;
500     frexpf32; frexpf64; frexpf32x;
501     fromfpf32; fromfpf64; fromfpf32x;
502     fromfpxf32; fromfpxf64; fromfpxf32x;
503     getpayloadf32; getpayloadf64; getpayloadf32x;
504     hypotf32; hypotf64; hypotf32x;
505     ilogbf32; ilogbf64; ilogbf32x;
506     j0f32; j0f64; j0f32x;
507     j1f32; j1f64; j1f32x;
508     jnf32; jnf64; jnf32x;
509     ldexpf32; ldexpf64; ldexpf32x;
510     lgammaf32; lgammaf64; lgammaf32x;
511     lgammaf32_r; lgammaf64_r; lgammaf32x_r;
512     llogbf32; llogbf64; llogbf32x;
513     llrintf32; llrintf64; llrintf32x;
514     llroundf32; llroundf64; llroundf32x;
515     log10f32; log10f64; log10f32x;
516     log1pf32; log1pf64; log1pf32x;
517     log2f32; log2f64; log2f32x;
518     logbf32; logbf64; logbf32x;
519     logf32; logf64; logf32x;
520     lrintf32; lrintf64; lrintf32x;
521     lroundf32; lroundf64; lroundf32x;
522     modff32; modff64; modff32x;
523     nanf32; nanf64; nanf32x;
524     nearbyintf32; nearbyintf64; nearbyintf32x;
525     nextafterf32; nextafterf64; nextafterf32x;
526     nextdownf32; nextdownf64; nextdownf32x;
527     nextupf32; nextupf64; nextupf32x;
528     powf32; powf64; powf32x;
529     remainderf32; remainderf64; remainderf32x;
530     remquof32; remquof64; remquof32x;
531     rintf32; rintf64; rintf32x;
532     roundevenf32; roundevenf64; roundevenf32x;
533     roundf32; roundf64; roundf32x;
534     scalblnf32; scalblnf64; scalblnf32x;
535     scalbnf32; scalbnf64; scalbnf32x;
536     setpayloadf32; setpayloadf64; setpayloadf32x;
537     setpayloadsigf32; setpayloadsigf64; setpayloadsigf32x;
538     sincosf32; sincosf64; sincosf32x;
539     sinf32; sinf64; sinf32x;
540     sinhf32; sinhf64; sinhf32x;
541     sqrtf32; sqrtf64; sqrtf32x;
542     tanf32; tanf64; tanf32x;
543     tanhf32; tanhf64; tanhf32x;
544     tgammaf32; tgammaf64; tgammaf32x;
545     totalorderf32; totalorderf64; totalorderf32x;
546     totalordermagf32; totalordermagf64; totalordermagf32x;
547     truncf32; truncf64; truncf32x;
548     ufromfpf32; ufromfpf64; ufromfpf32x;
549     ufromfpxf32; ufromfpxf64; ufromfpxf32x;
550     y0f32; y0f64; y0f32x;
551     y1f32; y1f64; y1f32x;
552     ynf32; ynf64; ynf32x;
553   }
554   GLIBC_2.28 {
555     # Functions not involving _Float64x or _Float128, for all configurations.
556     fadd; faddl; daddl;
557     f32addf32x; f32addf64; f32xaddf64;
558     fdiv; fdivl; ddivl;
559     f32divf32x; f32divf64; f32xdivf64;
560     fmul; fmull; dmull;
561     f32mulf32x; f32mulf64; f32xmulf64;
562     fsub; fsubl; dsubl;
563     f32subf32x; f32subf64; f32xsubf64;
564     # Functions involving _Float64x or _Float128, for some configurations.
565     f32addf64x; f32addf128;
566     f32xaddf64x; f32xaddf128; f64addf64x; f64addf128;
567     f64xaddf128;
568     f32divf64x; f32divf128;
569     f32xdivf64x; f32xdivf128; f64divf64x; f64divf128;
570     f64xdivf128;
571     f32mulf64x; f32mulf128;
572     f32xmulf64x; f32xmulf128; f64mulf64x; f64mulf128;
573     f64xmulf128;
574     f32subf64x; f32subf128;
575     f32xsubf64x; f32xsubf128; f64subf64x; f64subf128;
576     f64xsubf128;
577   }
578   GLIBC_2.29 {
579     # No SVID compatible error handling.
580     exp; exp2; log; log2; pow;
581   }
582   GLIBC_2.31 {
583     # totalorder changed to take pointer arguments.
584     totalorder; totalorderf; totalorderl;
585     totalordermag; totalordermagf; totalordermagl;
586     totalorderf32; totalorderf64; totalorderf32x;
587     totalordermagf32; totalordermagf64; totalordermagf32x;
588     totalorderf64x;
589     totalordermagf64x;
590     totalorderf128;
591     totalordermagf128;
592   }
593   GLIBC_2.32 {
594     exp10f;
595   }
596   GLIBC_2.35 {
597     # Functions not involving _Float64x or _Float128, for all configurations.
598     ffma; ffmal; dfmal;
599     f32fmaf32x; f32fmaf64; f32xfmaf64;
600     fsqrt; fsqrtl; dsqrtl;
601     f32sqrtf32x; f32sqrtf64; f32xsqrtf64;
602     fmaximum; fmaximumf; fmaximuml; fmaximumf32; fmaximumf64; fmaximumf32x;
603     fmaximum_num; fmaximum_numf; fmaximum_numl;
604     fmaximum_numf32; fmaximum_numf64; fmaximum_numf32x;
605     fmaximum_mag; fmaximum_magf; fmaximum_magl;
606     fmaximum_magf32; fmaximum_magf64; fmaximum_magf32x;
607     fmaximum_mag_num; fmaximum_mag_numf; fmaximum_mag_numl;
608     fmaximum_mag_numf32; fmaximum_mag_numf64; fmaximum_mag_numf32x;
609     fminimum; fminimumf; fminimuml; fminimumf32; fminimumf64; fminimumf32x;
610     fminimum_num; fminimum_numf; fminimum_numl;
611     fminimum_numf32; fminimum_numf64; fminimum_numf32x;
612     fminimum_mag; fminimum_magf; fminimum_magl;
613     fminimum_magf32; fminimum_magf64; fminimum_magf32x;
614     fminimum_mag_num; fminimum_mag_numf; fminimum_mag_numl;
615     fminimum_mag_numf32; fminimum_mag_numf64; fminimum_mag_numf32x;
616     # Functions involving _Float64x or _Float128, for some configurations.
617     f32fmaf64x; f32fmaf128;
618     f32xfmaf64x; f32xfmaf128; f64fmaf64x; f64fmaf128;
619     f64xfmaf128;
620     f32sqrtf64x; f32sqrtf128;
621     f32xsqrtf64x; f32xsqrtf128; f64sqrtf64x; f64sqrtf128;
622     f64xsqrtf128;
623     fmaximumf64x; fmaximumf128;
624     fmaximum_numf64x; fmaximum_numf128;
625     fmaximum_magf64x; fmaximum_magf128;
626     fmaximum_mag_numf64x; fmaximum_mag_numf128;
627     fminimumf64x; fminimumf128;
628     fminimum_numf64x; fminimum_numf128;
629     fminimum_magf64x; fminimum_magf128;
630     fminimum_mag_numf64x; fminimum_mag_numf128;
631     # No SVID compatible error handling.
632     hypotf; hypot;
633   }
634   GLIBC_2.38 {
635     # No SVID compatible error handling.
636     fmod; fmodf;
637   }