Annotation of coherent/b/lib/libm/atan.c, revision 1.1

1.1     ! root        1: /*
        !             2:  * Compute the inverse tangent function.
        !             3:  * (Hart 5100, 17.24)
        !             4:  */
        !             5: #include <math.h>
        !             6: 
        !             7: #if    EMU87
        !             8: #include "emumath.h"
        !             9: #endif
        !            10: 
        !            11: static readonly double tanntab[] ={
        !            12:        0.12097470017580907217240715e+04,
        !            13:        0.30310745956115083044212807e+04,
        !            14:        0.27617198246138834959053784e+04,
        !            15:        0.11141290728455183546172942e+04,
        !            16:        0.19257920144815596134742860e+03,
        !            17:        0.11322159411676465523624500e+02,
        !            18:        0.97627215917176330369830000e-01
        !            19: };
        !            20: static readonly double tanmtab[] ={
        !            21:        0.12097470017580907287514197e+04,
        !            22:        0.34343235961975351716547069e+04,
        !            23:        0.36645449563283749893504796e+04,
        !            24:        0.18216003392918464941509225e+04,
        !            25:        0.42307164648090478045242060e+03,
        !            26:        0.39917884248653798150199900e+02,
        !            27:        0.10000000000000000000000000e+01
        !            28: };
        !            29: 
        !            30: double
        !            31: atan(x)
        !            32: double x;
        !            33: {
        !            34:        double r;
        !            35:        register int i, s;
        !            36: 
        !            37:        s = 0;
        !            38:        i = 0;
        !            39:        if (x < 0.0) {
        !            40:                s = 1;
        !            41:                x = -x;
        !            42:        }
        !            43:        if (x > 1.0) {
        !            44:                i = 1;
        !            45:                x = 1/x;
        !            46:        }
        !            47:        r = x * x;
        !            48:        r = x * (_pol(r, tanntab, 7)/_pol(r, tanmtab, 7));
        !            49:        if (i)
        !            50:                r = PI/2.0 - r;
        !            51:        if (s)
        !            52:                r = -r;
        !            53:        return (r);
        !            54: }

unix.superglobalmegacorp.com

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