BSD 4_3_Tahoe release
[unix-history] / usr / src / usr.lib / libF77 / d_mod.c
index 5a7431e..db240a1 100644 (file)
@@ -3,8 +3,11 @@
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
  * All rights reserved.  The Berkeley software License Agreement
  * specifies the terms and conditions for redistribution.
  *
- *     @(#)d_mod.c     5.1     6/7/85
+ *     @(#)d_mod.c     5.3     5/8/87
  */
  */
+#ifdef tahoe
+#include <tahoemath/FP.h>
+#endif tahoe
 
 double d_mod(x,y)
 double *x, *y;
 
 double d_mod(x,y)
 double *x, *y;
@@ -12,7 +15,15 @@ double *x, *y;
 double floor(), quotient = *x / *y;
 if (quotient >= 0.0)
        quotient = floor(quotient);
 double floor(), quotient = *x / *y;
 if (quotient >= 0.0)
        quotient = floor(quotient);
-else
+else {
+#ifndef tahoe
        quotient = -floor(-quotient);
        quotient = -floor(-quotient);
+#else tahoe
+       *(unsigned long *)&quotient ^= SIGN_BIT;
+       quotient = floor(quotient);
+       if (quotient !=0)
+               *(unsigned long *)&quotient ^= SIGN_BIT;
+#endif tahoe
+}
 return(*x - (*y) * quotient );
 }
 return(*x - (*y) * quotient );
 }