Annotation of researchv10no/libF77/r_mod.c, revision 1.1

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: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.