|
|
1.1 ! root 1: /*** ! 2: *math.h - definitions and declarations for math library ! 3: * ! 4: * Copyright (c) 1985-1991, Microsoft Corporation. All rights reserved. ! 5: * ! 6: *Purpose: ! 7: * This file contains constant definitions and external subroutine ! 8: * declarations for the math subroutine library. ! 9: * [ANSI/System V] ! 10: * ! 11: ****/ ! 12: ! 13: #ifndef _INC_MATH ! 14: ! 15: #ifdef __cplusplus ! 16: extern "C" { ! 17: #endif ! 18: ! 19: ! 20: #if (_MSC_VER <= 600) ! 21: #define __cdecl _cdecl ! 22: #endif ! 23: ! 24: /* definition of _exception struct - this struct is passed to the matherr ! 25: * routine when a floating point exception is detected ! 26: */ ! 27: ! 28: #ifndef _EXCEPTION_DEFINED ! 29: struct _exception { ! 30: int type; /* exception type - see below */ ! 31: char *name; /* name of function where error occured */ ! 32: double arg1; /* first argument to function */ ! 33: double arg2; /* second argument (if any) to function */ ! 34: double retval; /* value to be returned by function */ ! 35: } ; ! 36: ! 37: #if !__STDC__ ! 38: /* Non-ANSI name for compatibility */ ! 39: #define exception _exception ! 40: #endif ! 41: ! 42: #define _EXCEPTION_DEFINED ! 43: #endif ! 44: ! 45: ! 46: /* definition of a _complex struct to be used by those who use cabs and ! 47: * want type checking on their argument ! 48: */ ! 49: ! 50: #ifndef _COMPLEX_DEFINED ! 51: struct _complex { ! 52: double x,y; /* real and imaginary parts */ ! 53: } ; ! 54: ! 55: #if !__STDC__ ! 56: /* Non-ANSI name for compatibility */ ! 57: #define complex _complex ! 58: #endif ! 59: ! 60: #define _COMPLEX_DEFINED ! 61: #endif ! 62: ! 63: ! 64: /* Constant definitions for the exception type passed in the _exception struct ! 65: */ ! 66: ! 67: #define _DOMAIN 1 /* argument domain error */ ! 68: #define _SING 2 /* argument singularity */ ! 69: #define _OVERFLOW 3 /* overflow range error */ ! 70: #define _UNDERFLOW 4 /* underflow range error */ ! 71: #define _TLOSS 5 /* total loss of precision */ ! 72: #define _PLOSS 6 /* partial loss of precision */ ! 73: ! 74: #define EDOM 33 ! 75: #define ERANGE 34 ! 76: ! 77: ! 78: /* definitions of _HUGE and HUGE_VAL - respectively the XENIX and ANSI names ! 79: * for a value returned in case of error by a number of the floating point ! 80: * math routines ! 81: */ ! 82: ! 83: extern double _HUGE; ! 84: #define HUGE_VAL _HUGE ! 85: ! 86: /* function prototypes */ ! 87: ! 88: int abs(int); ! 89: double acos(double); ! 90: double asin(double); ! 91: double atan(double); ! 92: double atan2(double, double); ! 93: double atof(const char *); ! 94: double _cabs(struct _complex); ! 95: double ceil(double); ! 96: double cos(double); ! 97: double cosh(double); ! 98: int _dieeetomsbin(double *, double *); ! 99: int _dmsbintoieee(double *, double *); ! 100: double exp(double); ! 101: double fabs(double); ! 102: int _fieeetomsbin(float *, float *); ! 103: double floor(double); ! 104: double fmod(double, double); ! 105: int _fmsbintoieee(float *, float *); ! 106: double frexp(double, int *); ! 107: double _hypot(double, double); ! 108: double _j0(double); ! 109: double _j1(double); ! 110: double _jn(int, double); ! 111: long labs(long); ! 112: double ldexp(double, int); ! 113: double log(double); ! 114: double log10(double); ! 115: int _matherr(struct _exception *); ! 116: double modf(double, double *); ! 117: double pow(double, double); ! 118: double sin(double); ! 119: double sinh(double); ! 120: double sqrt(double); ! 121: double tan(double); ! 122: double tanh(double); ! 123: double _y0(double); ! 124: double _y1(double); ! 125: double _yn(int, double); ! 126: ! 127: ! 128: #ifdef i386 ! 129: #pragma function(acos, asin, atan, atan2, cos, cosh, exp, fmod, log, log10, pow, sin, sinh, sqrt, tan, tanh) ! 130: #endif ! 131: ! 132: #if !__STDC__ ! 133: /* Non-ANSI names for compatibility */ ! 134: ! 135: #define DOMAIN _DOMAIN ! 136: #define SING _SING ! 137: #define OVERFLOW _OVERFLOW ! 138: #define UNDERFLOW _UNDERFLOW ! 139: #define TLOSS _TLOSS ! 140: #define PLOSS _PLOSS ! 141: ! 142: #define matherr _matherr ! 143: ! 144: extern double HUGE; ! 145: ! 146: #define cabs _cabs ! 147: #define dieeetomsbin _dieeetomsbin ! 148: #define dmsbintoieee _dmsbintoieee ! 149: #define fieeetomsbin _fieeetomsbin ! 150: #define fmsbintoieee _fmsbintoieee ! 151: #define hypot _hypot ! 152: #define j0 _j0 ! 153: #define j1 _j1 ! 154: #define jn _jn ! 155: #define matherr _matherr ! 156: #define y0 _y0 ! 157: #define y1 _y1 ! 158: #define yn _yn ! 159: ! 160: #define cabsl _cabsl ! 161: #define hypotl _hypotl ! 162: #endif /* __STDC__ */ ! 163: ! 164: #ifdef __cplusplus ! 165: } ! 166: #endif ! 167: ! 168: #define _INC_MATH ! 169: #endif /* _INC_MATH */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.