diff options
author | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-12-22 11:31:12 +0000 |
---|---|---|
committer | Bernhard Reutner-Fischer <rep.dot.nop@gmail.com> | 2008-12-22 11:31:12 +0000 |
commit | a0ebeb988d63d94da086b72daf0691f67584724a (patch) | |
tree | 9f02c52ab3ca4863834e14ccffc8335c371eec7f /libm/ldouble_wrappers.c | |
parent | 42256be88ff6114cce268616cfd47a0b10ddc575 (diff) |
- fix fpclassify, signbit, isfinite, isnan, isinf macros for long double math support
- add rule to create preprocessor output for float- and long double math wrapper
Diffstat (limited to 'libm/ldouble_wrappers.c')
-rw-r--r-- | libm/ldouble_wrappers.c | 56 |
1 files changed, 56 insertions, 0 deletions
diff --git a/libm/ldouble_wrappers.c b/libm/ldouble_wrappers.c index 62732bae9..a4f13f429 100644 --- a/libm/ldouble_wrappers.c +++ b/libm/ldouble_wrappers.c @@ -14,6 +14,8 @@ /* Prevent math.h from defining colliding inlines */ #undef __USE_EXTERN_INLINES #include "math.h" +#include <complex.h> + /* Implement the following, as defined by SuSv3 */ #if 0 @@ -24,6 +26,7 @@ long double asinl(long double); long double atan2l(long double, long double); long double atanhl(long double); long double atanl(long double); +long double cargl(long double complex); long double cbrtl(long double); long double ceill(long double); long double copysignl(long double, long double); @@ -131,6 +134,14 @@ long double atanl (long double x) #endif +#ifdef L_cargl +long double cargl (long double complex x) +{ + return (long double) carg( (double complex)x ); +} +#endif + + #ifdef L_cbrtl long double cbrtl (long double x) { @@ -524,3 +535,48 @@ long double truncl (long double x) return (long double) trunc( (double)x ); } #endif + + +#ifdef __DO_C99_MATH__ + +#ifdef L_fpclassifyl +int __fpclassifyl (long double x) +{ + return __fpclassify ( (double) x ); +} +libm_hidden_def(__fpclassifyl) +#endif + +#ifdef L_finitel +int __finitel (long double x) +{ + return __finite ( (double)x ); +} +libm_hidden_def(__finitel) +#endif + +#ifdef L_signbitl +int __signbitl (long double x) +{ + return __signbitl ( (double)x ); +} +libm_hidden_def(__signbitl) +#endif + +#ifdef L_isnanl +int __isnanl (long double x) +{ + return __isnan ( (double)x ); +} +libm_hidden_def(__isnanl) +#endif + +#ifdef L_isinfl +int __isinfl (long double x) +{ + return __isinf ( (double)x ); +} +libm_hidden_def(__isinfl) +#endif + +#endif |