Annotation of 43BSD/contrib/icon/pifuncs/math.c, revision 1.1.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.