Annotation of 43BSD/contrib/icon/pifuncs/math.c, revision 1.1

1.1     ! root        1: /*
        !             2: #      MATH(3.icon)
        !             3: #
        !             4: #      Miscellaneous math functions
        !             5: #
        !             6: #      Ralph E. Griswold
        !             7: #
        !             8: #      Last modified 8/19/84
        !             9: #
        !            10: */
        !            11: 
        !            12: #include "../h/rt.h"
        !            13: #include <errno.h>
        !            14: 
        !            15: int errno;
        !            16: /*
        !            17:  * exp(x), x in radians
        !            18:  */
        !            19: Xexp(nargs, arg1, arg0)
        !            20: int nargs;
        !            21: struct descrip arg1, arg0;
        !            22:    {
        !            23:    int t;
        !            24:    double y;
        !            25:    union numeric r;
        !            26:    double exp();
        !            27:    
        !            28:    if ((t = cvreal(&arg1, &r)) == NULL) runerr(102, &arg1);
        !            29:    y = exp(r.real);
        !            30:    if (errno == ERANGE) runerr(252, NULL);
        !            31:    mkreal(y,&arg0);
        !            32:    }
        !            33: Procblock(exp,1)
        !            34: 
        !            35: /*
        !            36:  * log(x), x in radians
        !            37:  */
        !            38: Xlog(nargs, arg1, arg0)
        !            39: int nargs;
        !            40: struct descrip arg1, arg0;
        !            41:    {
        !            42:    int t;
        !            43:    double y;
        !            44:    union numeric r;
        !            45:    double log();
        !            46:    
        !            47:    if ((t = cvreal(&arg1, &r)) == NULL) runerr(102, &arg1);
        !            48:    y = log(r.real);
        !            49:    if (errno == EDOM) runerr(251, NULL);
        !            50:    mkreal(y,&arg0);
        !            51:    }
        !            52: Procblock(log,1)
        !            53: 
        !            54: /*
        !            55:  * log10(x), x in radians
        !            56:  */
        !            57: Xlog10(nargs, arg1, arg0)
        !            58: int nargs;
        !            59: struct descrip arg1, arg0;
        !            60:    {
        !            61:    int t;
        !            62:    double y;
        !            63:    union numeric r;
        !            64:    double log10();
        !            65:    
        !            66:    if ((t = cvreal(&arg1, &r)) == NULL) runerr(102, &arg1);
        !            67:    y = log10(r.real);
        !            68:    if (errno == EDOM) runerr(251, NULL);
        !            69:    mkreal(y,&arg0);
        !            70:    }
        !            71: Procblock(log10,1)
        !            72: 
        !            73: /*
        !            74:  * sqrt(x), x in radians
        !            75:  */
        !            76: Xsqrt(nargs, arg1, arg0)
        !            77: int nargs;
        !            78: struct descrip arg1, arg0;
        !            79:    {
        !            80:    int t;
        !            81:    double y;
        !            82:    union numeric r;
        !            83:    double sqrt();
        !            84:    
        !            85:    if ((t = cvreal(&arg1, &r)) == NULL) runerr(102, &arg1);
        !            86:    y = sqrt(r.real);
        !            87:    if (errno == EDOM) runerr(251, NULL);
        !            88:    mkreal(y,&arg0);
        !            89:    }
        !            90: Procblock(sqrt,1)

unix.superglobalmegacorp.com

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