|
|
1.1 ! root 1: #include "f2c.h" ! 2: ! 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 ! 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 = (double)*x / *y) >= 0) ! 35: quotient = floor(quotient); ! 36: else ! 37: quotient = -floor(-quotient); ! 38: return(*x - (*y) * quotient ); ! 39: #endif ! 40: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.