Annotation of researchv10dc/630/include/ccs/math.h, revision 1.1.1.1

1.1       root        1: #ident "@(#)sgs-inc:mc68/math.h        2.3.1.1"
                      2: #ifndef _POLY9
                      3: extern int errno, signgam;
                      4: 
                      5: extern double atof(), frexp(), ldexp(), modf();
                      6: extern double j0(), j1(), jn(), y0(), y1(), yn();
                      7: extern double erf(), erfc();
                      8: extern double exp(), log(), log10(), pow(), sqrt();
                      9: extern double floor(), ceil(), fmod(), fabs();
                     10: extern double gamma();
                     11: extern double hypot();
                     12: extern int matherr();
                     13: extern double sinh(), cosh(), tanh();
                     14: extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2();
                     15: 
                     16: /* some useful constants */
                     17: #define M_E    2.7182818284590452354
                     18: #define M_LOG2E        1.4426950408889634074
                     19: #define M_LOG10E       0.43429448190325182765
                     20: #define M_LN2  0.69314718055994530942
                     21: #define M_LN10 2.30258509299404568402
                     22: #define M_PI   3.14159265358979323846
                     23: #define M_PI_2 1.57079632679489661923
                     24: #define M_PI_4 0.78539816339744830962
                     25: #define M_1_PI 0.31830988618379067154
                     26: #define M_2_PI 0.63661977236758134308
                     27: #define M_2_SQRTPI     1.12837916709551257390
                     28: #define M_SQRT2        1.41421356237309504880
                     29: #define M_SQRT1_2      0.70710678118654752440
                     30: #if u3b || u3b5
                     31: #define MAXFLOAT       ((float)3.40282346638528860e+38)
                     32: #endif
                     33: #if mc68000
                     34: /* This code is an ugly *** C R O C K *** to get around the problems
                     35: ** of cross-compiling float/double constants.  The constant in question
                     36: ** is the maximum float/double value.  Since the VAX has a smaller range
                     37: ** than the MC68000, it cannot convert MAXFLOAT using the native atof().
                     38: ** What we do here is define a local constant value whose bits are the
                     39: ** right ones for the MC68000.
                     40: */
                     41: 
                     42: #ifndef        __VALUE_H__
                     43:     extern double _MaXdOuBlE_;
                     44:     asm("      data 1");
                     45:     asm("      even");
                     46:     asm("_MaXdOuBlE_:");
                     47:     asm("      long 0x7f7fffff");
                     48: #define __VALUE_H__            /* just do it once */
                     49: #endif
                     50: #define        MAXFLOAT        _MaXdOuBlE_
                     51: #endif
                     52: #if pdp11 || vax
                     53: #define MAXFLOAT       ((float)1.701411733192644299e+38)
                     54: #endif
                     55: #if gcos
                     56: #define MAXFLOAT       ((float)1.7014118219281863150e+38)
                     57: #endif
                     58: #define HUGE   MAXFLOAT
                     59: 
                     60: #define _ABS(x)        ((x) < 0 ? -(x) : (x))
                     61: #define _REDUCE(TYPE, X, XN, C1, C2)   { \
                     62:        double x1 = (double)(TYPE)X, x2 = X - x1; \
                     63:        X = x1 - (XN) * (C1); X += x2; X -= (XN) * (C2); }
                     64: #define _POLY1(x, c)   ((c)[0] * (x) + (c)[1])
                     65: #define _POLY2(x, c)   (_POLY1((x), (c)) * (x) + (c)[2])
                     66: #define _POLY3(x, c)   (_POLY2((x), (c)) * (x) + (c)[3])
                     67: #define _POLY4(x, c)   (_POLY3((x), (c)) * (x) + (c)[4])
                     68: #define _POLY5(x, c)   (_POLY4((x), (c)) * (x) + (c)[5])
                     69: #define _POLY6(x, c)   (_POLY5((x), (c)) * (x) + (c)[6])
                     70: #define _POLY7(x, c)   (_POLY6((x), (c)) * (x) + (c)[7])
                     71: #define _POLY8(x, c)   (_POLY7((x), (c)) * (x) + (c)[8])
                     72: #define _POLY9(x, c)   (_POLY8((x), (c)) * (x) + (c)[9])
                     73: 
                     74: struct exception {
                     75:        int type;
                     76:        char *name;
                     77:        double arg1;
                     78:        double arg2;
                     79:        double retval;
                     80: };
                     81: 
                     82: #define DOMAIN         1
                     83: #define        SING            2
                     84: #define        OVERFLOW        3
                     85: #define        UNDERFLOW       4
                     86: #define        TLOSS           5
                     87: #define        PLOSS           6
                     88: #endif

unix.superglobalmegacorp.com

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