Annotation of researchv10dc/cmd/icon/pi/pil/math.c, revision 1.1.1.1

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

unix.superglobalmegacorp.com

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