source: branches/GNU/src/gcc/libf2c/libF77/d_mod.c@ 3

Last change on this file since 3 was 2, checked in by bird, 23 years ago

Initial revision

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
File size: 621 bytes
Line 
1#include "f2c.h"
2
3#ifdef KR_headers
4#ifdef IEEE_drem
5double drem();
6#else
7double floor();
8#endif
9double d_mod(x,y) doublereal *x, *y;
10#else
11#ifdef IEEE_drem
12double drem(double, double);
13#else
14#undef abs
15#include <math.h>
16#endif
17double d_mod(doublereal *x, doublereal *y)
18#endif
19{
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;
28 }
29 else if (z > 0)
30 z -= ya;
31 return z;
32#else
33 double quotient;
34 if( (quotient = *x / *y) >= 0)
35 quotient = floor(quotient);
36 else
37 quotient = -floor(-quotient);
38 return(*x - (*y) * quotient );
39#endif
40}
Note: See TracBrowser for help on using the repository browser.