1 /* vi: set sw=4 ts=4: */
3 * Wrapper functions implementing all the long double math functions
4 * defined by SuSv3 by actually calling the double version of
5 * each function and then casting the result back to a long double
6 * to return to the user.
8 * Copyright (C) 2005 by Erik Andersen <andersen@uclibc.org>
10 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
14 /* Prevent math.h from defining colliding inlines */
15 #undef __USE_EXTERN_INLINES
20 /* Implement the following, as defined by SuSv3 */
22 long double acoshl(long double);
23 long double acosl(long double);
24 long double asinhl(long double);
25 long double asinl(long double);
26 long double atan2l(long double, long double);
27 long double atanhl(long double);
28 long double atanl(long double);
29 long double cargl(long double complex);
30 long double cbrtl(long double);
31 long double ceill(long double);
32 long double copysignl(long double, long double);
33 long double coshl(long double);
34 long double cosl(long double);
35 long double erfcl(long double);
36 long double erfl(long double);
37 long double exp2l(long double);
38 long double expl(long double);
39 long double expm1l(long double);
40 long double fabsl(long double);
41 long double fdiml(long double, long double);
42 long double floorl(long double);
43 long double fmal(long double, long double, long double);
44 long double fmaxl(long double, long double);
45 long double fminl(long double, long double);
46 long double fmodl(long double, long double);
47 long double frexpl(long double value, int *);
48 long double hypotl(long double, long double);
49 int ilogbl(long double);
50 long double ldexpl(long double, int);
51 long double lgammal(long double);
52 long long llrintl(long double);
53 long long llroundl(long double);
54 long double log10l(long double);
55 long double log1pl(long double);
56 long double log2l(long double);
57 long double logbl(long double);
58 long double logl(long double);
59 long lrintl(long double);
60 long lroundl(long double);
61 long double modfl(long double, long double *);
62 long double nearbyintl(long double);
63 long double nextafterl(long double, long double);
64 long double nexttowardl(long double, long double);
65 long double powl(long double, long double);
66 long double remainderl(long double, long double);
67 long double remquol(long double, long double, int *);
68 long double rintl(long double);
69 long double roundl(long double);
70 long double scalblnl(long double, long);
71 long double scalbnl(long double, int);
72 long double sinhl(long double);
73 long double sinl(long double);
74 long double sqrtl(long double);
75 long double tanhl(long double);
76 long double tanl(long double);
77 long double tgammal(long double);
78 long double truncl(long double);
82 long double acoshl (long double x)
84 return (long double) acosh( (double)x );
90 long double acosl (long double x)
92 return (long double) acos( (double)x );
98 long double asinhl (long double x)
100 return (long double) asinh( (double)x );
106 long double asinl (long double x)
108 return (long double) asin( (double)x );
114 long double atan2l (long double x, long double y)
116 return (long double) atan2( (double)x, (double)y );
122 long double atanhl (long double x)
124 return (long double) atanh( (double)x );
130 long double atanl (long double x)
132 return (long double) atan( (double)x );
138 long double cargl (long double complex x)
140 return (long double) carg( (double complex)x );
146 long double cbrtl (long double x)
148 return (long double) cbrt( (double)x );
154 long double ceill (long double x)
156 return (long double) ceil( (double)x );
162 long double copysignl (long double x, long double y)
164 return (long double) copysign( (double)x, (double)y );
170 long double coshl (long double x)
172 return (long double) cosh( (double)x );
178 long double cosl (long double x)
180 return (long double) cos( (double)x );
186 long double erfcl (long double x)
188 return (long double) erfc( (double)x );
194 long double erfl (long double x)
196 return (long double) erf( (double)x );
202 long double exp2l (long double x)
204 return (long double) exp2( (double)x );
210 long double expl (long double x)
212 return (long double) exp( (double)x );
218 long double expm1l (long double x)
220 return (long double) expm1( (double)x );
226 long double fabsl (long double x)
228 return (long double) fabs( (double)x );
234 long double fdiml (long double x, long double y)
236 return (long double) fdim( (double)x, (double)y );
242 long double floorl (long double x)
244 return (long double) floor( (double)x );
250 long double fmal (long double x, long double y, long double z)
252 return (long double) fma( (double)x, (double)y, (double)z );
258 long double fmaxl (long double x, long double y)
260 return (long double) fmax( (double)x, (double)y );
266 long double fminl (long double x, long double y)
268 return (long double) fmin( (double)x, (double)y );
274 long double fmodl (long double x, long double y)
276 return (long double) fmod( (double)x, (double)y );
282 long double frexpl (long double x, int *exp)
284 return (long double) frexp( (double)x, exp );
290 long double hypotl (long double x, long double y)
292 return (long double) hypot( (double)x, (double)y );
298 int ilogbl (long double x)
300 return (long double) ilogb( (double)x );
306 long double ldexpl (long double x, int exp)
308 return (long double) ldexp( (double)x, exp );
314 long double lgammal (long double x)
316 return (long double) lgamma( (double)x );
322 long long llrintl (long double x)
324 return (long double) llrint( (double)x );
330 long long llroundl (long double x)
332 return (long double) llround( (double)x );
337 long double log10l (long double x)
339 return (long double) log10( (double)x );
345 long double log1pl (long double x)
347 return (long double) log1p( (double)x );
353 long double log2l (long double x)
355 return (long double) log2( (double)x );
361 long double logbl (long double x)
363 return (long double) logb( (double)x );
369 long double logl (long double x)
371 return (long double) log( (double)x );
377 long lrintl (long double x)
379 return (long double) lrint( (double)x );
385 long lroundl (long double x)
387 return (long double) lround( (double)x );
393 long double modfl (long double x, long double *iptr)
396 result = modf ( x, &y );
397 *iptr = (long double)y;
398 return (long double) result;
405 long double nearbyintl (long double x)
407 return (long double) nearbyint( (double)x );
413 long double nextafterl (long double x, long double y)
415 return (long double) nextafter( (double)x, (double)y );
421 long double nexttowardl (long double x, long double y)
423 return (long double) nexttoward( (double)x, (double)y );
429 long double powl (long double x, long double y)
431 return (long double) pow( (double)x, (double)y );
437 long double remainderl (long double x, long double y)
439 return (long double) remainder( (double)x, (double)y );
445 long double remquol (long double x, long double y, int *quo)
447 return (long double) remquo( (double)x, (double)y, quo );
453 long double rintl (long double x)
455 return (long double) rint( (double)x );
461 long double roundl (long double x)
463 return (long double) round( (double)x );
469 long double scalblnl (long double x, long exp)
471 return (long double) scalbln( (double)x, exp );
477 long double scalbnl (long double x, int exp)
479 return (long double) scalbn( (double)x, exp );
485 long double sinhl (long double x)
487 return (long double) sinh( (double)x );
493 long double sinl (long double x)
495 return (long double) sin( (double)x );
501 long double sqrtl (long double x)
503 return (long double) sqrt( (double)x );
509 long double tanhl (long double x)
511 return (long double) tanh( (double)x );
517 long double tanl (long double x)
519 return (long double) tan( (double)x );
525 long double tgammal (long double x)
527 return (long double) tgamma( (double)x );
533 long double truncl (long double x)
535 return (long double) trunc( (double)x );
540 #ifdef __DO_C99_MATH__
543 int __fpclassifyl (long double x)
545 return __fpclassify ( (double) x );
547 libm_hidden_def(__fpclassifyl)
551 int __finitel (long double x)
553 return __finite ( (double)x );
555 libm_hidden_def(__finitel)
559 int __signbitl (long double x)
561 return __signbitl ( (double)x );
563 libm_hidden_def(__signbitl)
567 int __isnanl (long double x)
569 return __isnan ( (double)x );
571 libm_hidden_def(__isnanl)
575 int __isinfl (long double x)
577 return __isinf ( (double)x );
579 libm_hidden_def(__isinfl)