* cppfiles.c (_cpp_execute_include): Move `len` initialisation
[official-gcc.git] / libf2c / libF77 / r_mod.c
blobfaea344a7b764d9de80dcd29f6349f318424ef4d
1 #include "f2c.h"
3 #ifdef KR_headers
4 #ifdef IEEE_drem
5 double drem();
6 #else
7 double floor();
8 #endif
9 double r_mod(x,y) real *x, *y;
10 #else
11 #ifdef IEEE_drem
12 double drem(double, double);
13 #else
14 #undef abs
15 #include <math.h>
16 #endif
17 double r_mod(real *x, real *y)
18 #endif
20 #ifdef IEEE_drem
21 double xa, ya, z;
22 if ((ya = *y) < 0.)
23 ya = -ya;
24 z = drem(xa = *x, ya);
25 if (xa > 0) {
26 if (z < 0)
27 z += ya;
29 else if (z > 0)
30 z -= ya;
31 return z;
32 #else
33 double quotient;
34 if( (quotient = (double)*x / *y) >= 0)
35 quotient = floor(quotient);
36 else
37 quotient = -floor(-quotient);
38 return(*x - (*y) * quotient );
39 #endif