| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 | 
							- #include "f2c.h"
 
- #ifdef KR_headers
 
- #ifdef IEEE_drem
 
- double drem();
 
- #else
 
- double floor();
 
- #endif
 
- double r_mod(x,y) real *x, *y;
 
- #else
 
- #ifdef IEEE_drem
 
- double drem(double, double);
 
- #else
 
- #undef abs
 
- #include "math.h"
 
- #ifdef __cplusplus
 
- extern "C" {
 
- #endif
 
- #endif
 
- double r_mod(real *x, real *y)
 
- #endif
 
- {
 
- #ifdef IEEE_drem
 
- 	double xa, ya, z;
 
- 	if ((ya = *y) < 0.)
 
- 		ya = -ya;
 
- 	z = drem(xa = *x, ya);
 
- 	if (xa > 0) {
 
- 		if (z < 0)
 
- 			z += ya;
 
- 		}
 
- 	else if (z > 0)
 
- 		z -= ya;
 
- 	return z;
 
- #else
 
- 	double quotient;
 
- 	if( (quotient = (double)*x / *y) >= 0)
 
- 		quotient = floor(quotient);
 
- 	else
 
- 		quotient = -floor(-quotient);
 
- 	return(*x - (*y) * quotient );
 
- #endif
 
- }
 
- #ifdef __cplusplus
 
- }
 
- #endif
 
 
  |