Category : C++ Source Code
Archive   : VCCRT2.ZIP
Filename : MATH.H

 
Output of file : MATH.H contained in archive : VCCRT2.ZIP
/***
*math.h - definitions and declarations for math library
*
* Copyright (c) 1985-1992, Microsoft Corporation. All rights reserved.
*
*Purpose:
* This file contains constant definitions and external subroutine
* declarations for the math subroutine library.
* [ANSI/System V]
*
****/

#ifndef _INC_MATH

#ifdef __cplusplus
extern "C" {
#endif

#if (_MSC_VER <= 600)
#define __cdecl _cdecl
#define __far _far
#define __near _near
#define __pascal _pascal
#endif

/* definition of _exception struct - this struct is passed to the _matherr
* routine when a floating point exception is detected
*/

#ifndef _EXCEPTION_DEFINED
#pragma pack(2)

struct _exception {
int type; /* exception type - see below */
char *name; /* name of function where error occured */
double arg1; /* first argument to function */
double arg2; /* second argument (if any) to function */
double retval; /* value to be returned by function */
} ;

#ifndef __STDC__
/* Non-ANSI name for compatibility */
#define exception _exception
#endif

#pragma pack()
#define _EXCEPTION_DEFINED
#endif


/* definition of a _complex struct to be used by those who use cabs and
* want type checking on their argument
*/

#ifndef _COMPLEX_DEFINED

struct _complex {
double x,y; /* real and imaginary parts */
} ;

#ifndef __cplusplus /* avoid "complex" name collision */
#ifndef __STDC__
/* Non-ANSI name for compatibility */
struct complex {
double x,y; /* real and imaginary parts */
} ;
#endif
#endif

#define _COMPLEX_DEFINED
#endif


/* Constant definitions for the exception type passed in the _exception struct
*/

#define _DOMAIN 1 /* argument domain error */
#define _SING 2 /* argument singularity */
#define _OVERFLOW 3 /* overflow range error */
#define _UNDERFLOW 4 /* underflow range error */
#define _TLOSS 5 /* total loss of precision */
#define _PLOSS 6 /* partial loss of precision */

#define EDOM 33
#define ERANGE 34


/* definitions of _HUGE (XENIX) and HUGE_VAL (ANSI) error return values used
* by several floating point math routines
*/

extern double __near __cdecl _HUGE;
#define HUGE_VAL _HUGE


/* function prototypes */

#ifdef _MT /* function prototypes for _MT version */
int __cdecl abs(int);
double __pascal acos(double);
double __pascal asin(double);
double __pascal atan(double);
double __pascal atan2(double, double);
double __pascal atof(const char *);
double __pascal _cabs(struct _complex);
double __pascal ceil(double);
double __pascal cos(double);
double __pascal cosh(double);
int __cdecl _dieeetomsbin(double *, double *);
int __cdecl _dmsbintoieee(double *, double *);
double __pascal exp(double);
double __pascal fabs(double);
int __cdecl _fieeetomsbin(float *, float *);
double __pascal floor(double);
double __pascal fmod(double, double);
int __cdecl _fmsbintoieee(float *, float *);
double __pascal frexp(double, int *);
double __pascal _hypot(double, double);
double __pascal _j0(double);
double __pascal _j1(double);
double __pascal _jn(int, double);
long __cdecl labs(long);
double __pascal ldexp(double, int);
double __pascal log(double);
double __pascal log10(double);
int __cdecl _matherr(struct _exception *);
double __pascal modf(double, double *);
double __pascal pow(double, double);
double __pascal sin(double);
double __pascal sinh(double);
double __pascal sqrt(double);
double __pascal tan(double);
double __pascal tanh(double);
double __pascal _y0(double);
double __pascal _y1(double);
double __pascal _yn(int, double);

#else /* function prototypes for non _MT version */
int __cdecl abs(int);
double __cdecl acos(double);
double __cdecl asin(double);
double __cdecl atan(double);
double __cdecl atan2(double, double);
double __cdecl atof(const char *);
double __cdecl _cabs(struct _complex);
double __cdecl ceil(double);
double __cdecl cos(double);
double __cdecl cosh(double);
int __cdecl _dieeetomsbin(double *, double *);
int __cdecl _dmsbintoieee(double *, double *);
double __cdecl exp(double);
double __cdecl fabs(double);
int __cdecl _fieeetomsbin(float *, float *);
double __cdecl floor(double);
double __cdecl fmod(double, double);
int __cdecl _fmsbintoieee(float *, float *);
double __cdecl frexp(double, int *);
double __cdecl _hypot(double, double);
double __cdecl _j0(double);
double __cdecl _j1(double);
double __cdecl _jn(int, double);
long __cdecl labs(long);
double __cdecl ldexp(double, int);
double __cdecl log(double);
double __cdecl log10(double);
int __cdecl _matherr(struct _exception *);
double __cdecl modf(double, double *);
double __cdecl pow(double, double);
double __cdecl sin(double);
double __cdecl sinh(double);
double __cdecl sqrt(double);
double __cdecl tan(double);
double __cdecl tanh(double);
double __cdecl _y0(double);
double __cdecl _y1(double);
double __cdecl _yn(int, double);
#endif


/* definition of _exceptionl struct - this struct is passed to the _matherrl
* routine when a floating point exception is detected in a long double routine
*/

#ifndef _LD_EXCEPTION_DEFINED
#pragma pack(2)
struct _exceptionl {
int type; /* exception type - see below */
char *name; /* name of function where error occured */
long double arg1; /* first argument to function */
long double arg2; /* second argument (if any) to function */
long double retval; /* value to be returned by function */
} ;
#pragma pack()
#define _LD_EXCEPTION_DEFINED
#endif


/* definition of a _complexl struct to be used by those who use _cabsl and
* want type checking on their argument
*/

#ifndef _LD_COMPLEX_DEFINED
#pragma pack(2)
struct _complexl {
long double x,y; /* real and imaginary parts */
} ;
#pragma pack()
#define _LD_COMPLEX_DEFINED
#endif

extern long double __near __cdecl _LHUGE;
#define _LHUGE_VAL _LHUGE


long double __cdecl acosl(long double);
long double __cdecl asinl(long double);
long double __cdecl atanl(long double);
long double __cdecl atan2l(long double, long double);
long double __cdecl _atold(const char *);
long double __cdecl _cabsl(struct _complexl);
long double __cdecl ceill(long double);
long double __cdecl cosl(long double);
long double __cdecl coshl(long double);
long double __cdecl expl(long double);
long double __cdecl fabsl(long double);
long double __cdecl floorl(long double);
long double __cdecl fmodl(long double, long double);
long double __cdecl frexpl(long double, int *);
long double __cdecl _hypotl(long double, long double);
long double __cdecl _j0l(long double);
long double __cdecl _j1l(long double);
long double __cdecl _jnl(int, long double);
long double __cdecl ldexpl(long double, int);
long double __cdecl logl(long double);
long double __cdecl log10l(long double);
int __cdecl _matherrl(struct _exceptionl *);
long double __cdecl modfl(long double, long double *);
long double __cdecl powl(long double, long double);
long double __cdecl sinl(long double);
long double __cdecl sinhl(long double);
long double __cdecl sqrtl(long double);
long double __cdecl tanl(long double);
long double __cdecl tanhl(long double);
long double __cdecl _y0l(long double);
long double __cdecl _y1l(long double);
long double __cdecl _ynl(int, long double);


#ifndef __STDC__
/* Non-ANSI names for compatibility */

#define DOMAIN _DOMAIN
#define SING _SING
#define OVERFLOW _OVERFLOW
#define UNDERFLOW _UNDERFLOW
#define TLOSS _TLOSS
#define PLOSS _PLOSS

#define matherr _matherr

extern double __near __cdecl HUGE;

#ifdef _MT
#ifndef __cplusplus /* avoid "complex" name collision */
double __pascal cabs(struct complex);
#endif
double __pascal hypot(double, double);
double __pascal j0(double);
double __pascal j1(double);
double __pascal jn(int, double);
double __pascal y0(double);
double __pascal y1(double);
double __pascal yn(int, double);
#else
#ifndef __cplusplus /* avoid "complex" name collision */
double __cdecl cabs(struct complex);
#endif
double __cdecl hypot(double, double);
double __cdecl j0(double);
double __cdecl j1(double);
double __cdecl jn(int, double);
double __cdecl y0(double);
double __cdecl y1(double);
double __cdecl yn(int, double);
#endif

int __cdecl dieeetomsbin(double *, double *);
int __cdecl dmsbintoieee(double *, double *);
int __cdecl fieeetomsbin(float *, float *);
int __cdecl fmsbintoieee(float *, float *);

long double __cdecl cabsl(struct _complexl);
long double __cdecl hypotl(long double, long double);

#endif /* __STDC__ */


#ifdef __cplusplus
}
#endif

#define _INC_MATH
#endif /* _INC_MATH */


  3 Responses to “Category : C++ Source Code
Archive   : VCCRT2.ZIP
Filename : MATH.H

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/