summaryrefslogtreecommitdiff
path: root/libm/ldouble_wrappers.c
diff options
context:
space:
mode:
authorBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-12-22 11:31:12 +0000
committerBernhard Reutner-Fischer <rep.dot.nop@gmail.com>2008-12-22 11:31:12 +0000
commita0ebeb988d63d94da086b72daf0691f67584724a (patch)
tree9f02c52ab3ca4863834e14ccffc8335c371eec7f /libm/ldouble_wrappers.c
parent42256be88ff6114cce268616cfd47a0b10ddc575 (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.c56
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