OSDN Git Service

test: Some more tests under conditionals
[uclinux-h8/uClibc.git] / libm / e_remainder.c
index 95eee74..4ac24f2 100644 (file)
@@ -1,4 +1,3 @@
-/* @(#)e_remainder.c 5.1 93/09/24 */
 /*
  * ====================================================
  * Copyright (C) 1993 by Sun Microsystems, Inc. All rights reserved.
@@ -10,10 +9,6 @@
  * ====================================================
  */
 
-#if defined(LIBM_SCCS) && !defined(lint)
-static char rcsid[] = "$NetBSD: e_remainder.c,v 1.8 1995/05/10 20:46:05 jtc Exp $";
-#endif
-
 /* __ieee754_remainder(x,p)
  * Return :
  *     returns  x REM p  =  x - [x/p]*p as if in infinite
@@ -26,20 +21,9 @@ static char rcsid[] = "$NetBSD: e_remainder.c,v 1.8 1995/05/10 20:46:05 jtc Exp
 #include "math.h"
 #include "math_private.h"
 
-
-#ifdef __STDC__
 static const double zero = 0.0;
-#else
-static double zero = 0.0;
-#endif
-
 
-#ifdef __STDC__
-       double attribute_hidden __ieee754_remainder(double x, double p)
-#else
-       double attribute_hidden __ieee754_remainder(x,p)
-       double x,p;
-#endif
+double __ieee754_remainder(double x, double p)
 {
        int32_t hx,hp;
        u_int32_t sx,lx,lp;
@@ -79,3 +63,23 @@ static double zero = 0.0;
        SET_HIGH_WORD(x,hx^sx);
        return x;
 }
+
+/*
+ * wrapper remainder(x,p)
+ */
+#ifndef _IEEE_LIBM
+double remainder(double x, double y)
+{
+       double z = __ieee754_remainder(x, y);
+       if (_LIB_VERSION == _IEEE_ || isnan(y))
+               return z;
+       if (y == 0.0)
+               return __kernel_standard(x, y, 28); /* remainder(x,0) */
+       return z;
+}
+strong_alias(remainder, drem)
+#else
+strong_alias(__ieee754_remainder, remainder)
+strong_alias(__ieee754_remainder, drem)
+#endif
+libm_hidden_def(remainder)