Annotation of 43BSDReno/lib/libF77/pow_di.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Copyright (c) 1980 Regents of the University of California.
        !             3:  * All rights reserved.  The Berkeley software License Agreement
        !             4:  * specifies the terms and conditions for redistribution.
        !             5:  *
        !             6:  *     @(#)pow_di.c    5.3     1/19/88
        !             7:  */
        !             8: 
        !             9: double
        !            10: pow_di(ap, bp)
        !            11:        double *ap;
        !            12:        long *bp;
        !            13: {
        !            14:        register long n = *bp;
        !            15:        double y, x = *ap;
        !            16: 
        !            17:        if (!n)
        !            18:                return((double)1);
        !            19:        if (n < 0) {
        !            20:                x = (double)1 / x;
        !            21:                n = -n;
        !            22:        }
        !            23:        while (!(n&1)) {
        !            24:                x *= x;
        !            25:                n >>= 1;
        !            26:        }
        !            27:        for (y = x; --n > 0; y *= x)
        !            28:                while (!(n&1)) {
        !            29:                        x *= x;
        !            30:                        n >>= 1;
        !            31:                }
        !            32:        return(y);
        !            33: }

unix.superglobalmegacorp.com

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