]> CyberLeo.Net >> Repos - FreeBSD/releng/8.1.git/blob - contrib/libf2c/libF77/r_mod.c
Copy stable/8 to releng/8.1 in preparation for 8.1-RC1.
[FreeBSD/releng/8.1.git] / contrib / libf2c / libF77 / r_mod.c
1 #include "f2c.h"
2
3 #ifdef IEEE_drem
4 double drem (double, double);
5 #else
6 #undef abs
7 #include <math.h>
8 #endif
9 double
10 r_mod (real * x, real * y)
11 {
12 #ifdef IEEE_drem
13   double xa, ya, z;
14   if ((ya = *y) < 0.)
15     ya = -ya;
16   z = drem (xa = *x, ya);
17   if (xa > 0)
18     {
19       if (z < 0)
20         z += ya;
21     }
22   else if (z > 0)
23     z -= ya;
24   return z;
25 #else
26   double quotient;
27   if ((quotient = (double) *x / *y) >= 0)
28     quotient = floor (quotient);
29   else
30     quotient = -floor (-quotient);
31   return (*x - (*y) * quotient);
32 #endif
33 }