home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
PC World Komputer 1997 May
/
Pcwk0597.iso
/
borland
/
cb
/
setup
/
cbuilder
/
data.z
/
MATH.H
< prev
next >
Wrap
C/C++ Source or Header
|
1997-02-28
|
12KB
|
343 lines
/* math.h
Definitions for the math floating point package.
*/
/*
* C/C++ Run Time Library - Version 8.0
*
* Copyright (c) 1987, 1997 by Borland International
* All Rights Reserved.
*
*/
/* $Revision: 8.7 $ */
#ifndef __MATH_H
#define __MATH_H
#if !defined(___DEFS_H)
#include <_defs.h>
#endif
#if !defined(RC_INVOKED)
#if defined(__STDC__)
#pragma warn -nak
#endif
#pragma pack(push, 1)
#endif /* !RC_INVOKED */
#if !defined(__STDC__) /* NON-ANSI */
#ifdef __cplusplus
/* use class complex instead of _cabs in C++ */
#else
struct complex /* as used by "_cabs" function */
{
double x, y;
};
struct _complexl /* as used by "_cabsl" function */
{
long double x, y;
};
#define cabs(z) (hypot ((z).x, (z).y))
#define cabsl(z) (hypotl ((z).x, (z).y))
#endif /* NON-ANSI */
#endif
typedef enum
{
DOMAIN = 1, /* argument domain error -- log (-1) */
SING, /* argument singularity -- pow (0,-2)) */
OVERFLOW, /* overflow range error -- exp (1000) */
UNDERFLOW, /* underflow range error -- exp (-1000) */
TLOSS, /* total loss of significance -- sin(10e70) */
PLOSS, /* partial loss of signif. -- not used */
STACKFAULT /* floating point unit stack overflow */
} _mexcep;
/* Constants rounded for 21 decimals. */
#define M_E 2.71828182845904523536
#define M_LOG2E 1.44269504088896340736
#define M_LOG10E 0.434294481903251827651
#define M_LN2 0.693147180559945309417
#define M_LN10 2.30258509299404568402
#define M_PI 3.14159265358979323846
#define M_PI_2 1.57079632679489661923
#define M_PI_4 0.785398163397448309616
#define M_1_PI 0.318309886183790671538
#define M_2_PI 0.636619772367581343076
#define M_1_SQRTPI 0.564189583547756286948
#define M_2_SQRTPI 1.12837916709551257390
#define M_SQRT2 1.41421356237309504880
#define M_SQRT_2 0.707106781186547524401
#define EDOM 33 /* Math argument */
#define ERANGE 34 /* Result too large */
struct exception
{
int type;
char _FAR *name;
double arg1, arg2, retval;
};
struct _exceptionl
{
int type;
char _FAR *name;
long double arg1, arg2, retval;
};
#if !defined(__FLAT__)
#define HUGE_VAL _huge_dble
extern double _RTLENTRY _huge_dble;
#define _LHUGE_VAL _huge_ldble
extern long double _RTLENTRY _huge_ldble;
#ifdef __cplusplus
extern "C" {
#endif
double _RTLENTRY _EXPFUNC acos (double __x);
double _RTLENTRY _EXPFUNC asin (double __x);
double _RTLENTRY atan (double __x);
double _RTLENTRY _EXPFUNC atan2 (double __y, double __x);
double _RTLENTRY _EXPFUNC ceil (double __x);
double _RTLENTRY _EXPFUNC cos (double __x);
double _RTLENTRY _EXPFUNC cosh (double __x);
double _RTLENTRY _EXPFUNC exp (double __x);
double _RTLENTRY fabs (double __x);
double _RTLENTRY __fabs__(double __x); /* Intrinsic */
double _RTLENTRY _EXPFUNC floor (double __x);
double _RTLENTRY _EXPFUNC fmod (double __x, double __y);
double _RTLENTRY _EXPFUNC frexp (double __x, int _FAR *__exponent);
double _RTLENTRY _EXPFUNC ldexp (double __x, int __exponent);
double _RTLENTRY _EXPFUNC log (double __x);
double _RTLENTRY _EXPFUNC log10 (double __x);
double _RTLENTRY _EXPFUNC modf (double __x, double _FAR *__ipart);
double _RTLENTRY _EXPFUNC pow (double __x, double __y);
double _RTLENTRY _EXPFUNC sin (double __x);
double _RTLENTRY _EXPFUNC sinh (double __x);
double _RTLENTRY _EXPFUNC sqrt (double __x);
double _RTLENTRY _EXPFUNC tan (double __x);
double _RTLENTRY _EXPFUNC tanh (double __x);
long double _RTLENTRY _EXPFUNC acosl (long double __x);
long double _RTLENTRY _EXPFUNC asinl (long double __x);
long double _RTLENTRY _EXPFUNC atan2l (long double __x, long double __y);
long double _RTLENTRY atanl (long double __x);
long double _RTLENTRY _EXPFUNC ceill (long double __x);
long double _RTLENTRY _EXPFUNC coshl (long double __x);
long double _RTLENTRY _EXPFUNC cosl (long double __x);
long double _RTLENTRY _EXPFUNC expl (long double __x);
long double _RTLENTRY fabsl (long double __x);
long double _RTLENTRY _EXPFUNC floorl (long double __x);
long double _RTLENTRY _EXPFUNC fmodl (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC frexpl (long double __x, int _FAR *__exponent);
long double _RTLENTRY _EXPFUNC ldexpl (long double __x, int __exponent);
long double _RTLENTRY _EXPFUNC log10l (long double __x);
long double _RTLENTRY _EXPFUNC logl (long double __x);
long double _RTLENTRY _EXPFUNC modfl (long double __x, long double _FAR *__ipart);
long double _RTLENTRY _EXPFUNC powl (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC sinhl (long double __x);
long double _RTLENTRY _EXPFUNC sinl (long double __x);
long double _RTLENTRY _EXPFUNC sqrtl (long double __x);
long double _RTLENTRY _EXPFUNC tanhl (long double __x);
long double _RTLENTRY _EXPFUNC tanl (long double __x);
#ifdef __cplusplus
}
#endif
#if !defined(__STDC__)
#ifdef __cplusplus
extern "C" {
#endif
double _RTLENTRY _EXPFUNC hypot (double __x, double __y);
int _RTLENTRY _EXPFUNC _matherr (struct exception _FAR *__e);
double _RTLENTRY _EXPFUNC poly (double __x, int __degree, double _FAR *__coeffs);
double _RTLENTRY _EXPFUNC pow10 (int __p);
long double _RTLENTRY hypotl (long double __x, long double __y);
long double _RTLENTRY polyl (long double __x, int __degree, long double _FAR *__coeffs);
long double _RTLENTRY _EXPFUNC pow10l (int __p);
#if !defined(__ABS_DEFINED)
#define __ABS_DEFINED
int _RTLENTRY __abs__(int);
#ifdef __cplusplus
inline int _RTLENTRY abs(int __x) { return __abs__(__x); }
#else
int _RTLENTRY abs(int __x);
# define abs(x) __abs__(x)
#endif
#endif /* __ABS_DEFINED */
long _RTLENTRY labs (long __x);
int _RTLENTRY _EXPFUNC _matherrl (struct _exceptionl _FAR *__e);
long double _RTLENTRY hypotl (long double __x, long double __y);
long double _RTLENTRY polyl (long double __x, int __degree, long double _FAR *__coeffs);
long double _RTLENTRY _EXPFUNC pow10l (int __p);
#if defined(__FLAT__)
#if __BORLANDC__ >= 0x0520
__int64 _RTLENTRY _EXPFUNC _atoi64(const char * __s);
char * _RTLENTRY _EXPFUNC _i64toa(__int64 value, char *strP, int radix);
char * _RTLENTRY _EXPFUNC _ui64toa(unsigned __int64 value, char *strP, int radix);
__int64 _RTLENTRY _EXPFUNC _wtoi64(const wchar_t * __s);
wchar_t * _RTLENTRY _EXPFUNC _i64tow(__int64 value, wchar_t *strP, int radix);
wchar_t * _RTLENTRY _EXPFUNC _ui64tow(unsigned __int64 value, wchar_t *strP, int radix);
#endif
double _RTLENTRY _EXPFUNC _wtof(const wchar_t * __s);
int _RTLENTRY _EXPFUNC _wtoi(const wchar_t * __s);
long _RTLENTRY _EXPFUNC _wtol(const wchar_t * __s);
long double _RTLENTRY _EXPFUNC _wtold(const wchar_t * __s);
#endif
#ifdef __cplusplus
}
#endif
#endif /* !__STDC__ */
#else /* defined __FLAT__ */
#define HUGE_VAL _huge_dble
extern double _RTLENTRY _EXPDATA _huge_dble;
#define _LHUGE_VAL _huge_ldble
extern long double _RTLENTRY _EXPDATA _huge_ldble;
#ifdef __cplusplus
extern "C" {
#endif
double _RTLENTRY _EXPFUNC acos (double __x);
double _RTLENTRY _EXPFUNC asin (double __x);
double _RTLENTRY _EXPFUNC atan (double __x);
double _RTLENTRY _EXPFUNC atan2 (double __y, double __x);
double _RTLENTRY _EXPFUNC ceil (double __x);
double _RTLENTRY _EXPFUNC cos (double __x);
double _RTLENTRY _EXPFUNC cosh (double __x);
double _RTLENTRY _EXPFUNC exp (double __x);
double _RTLENTRY _EXPFUNC fabs (double __x);
double _RTLENTRY _EXPFUNC floor (double __x);
double _RTLENTRY _EXPFUNC fmod (double __x, double __y);
double _RTLENTRY _EXPFUNC frexp (double __x, int * __exponent);
double _RTLENTRY _EXPFUNC ldexp (double __x, int __exponent);
double _RTLENTRY _EXPFUNC log (double __x);
double _RTLENTRY _EXPFUNC log10 (double __x);
double _RTLENTRY _EXPFUNC modf (double __x, double * __ipart);
double _RTLENTRY _EXPFUNC pow (double __x, double __y);
double _RTLENTRY _EXPFUNC sin (double __x);
double _RTLENTRY _EXPFUNC sinh (double __x);
double _RTLENTRY _EXPFUNC sqrt (double __x);
double _RTLENTRY _EXPFUNC tan (double __x);
double _RTLENTRY _EXPFUNC tanh (double __x);
long double _RTLENTRY _EXPFUNC acosl (long double __x);
long double _RTLENTRY _EXPFUNC asinl (long double __x);
long double _RTLENTRY _EXPFUNC atan2l (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC atanl (long double __x);
long double _RTLENTRY _EXPFUNC ceill (long double __x);
long double _RTLENTRY _EXPFUNC coshl (long double __x);
long double _RTLENTRY _EXPFUNC cosl (long double __x);
long double _RTLENTRY _EXPFUNC expl (long double __x);
long double _RTLENTRY _EXPFUNC fabsl (long double __x);
long double _RTLENTRY _EXPFUNC floorl (long double __x);
long double _RTLENTRY _EXPFUNC fmodl (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC frexpl (long double __x, int * __exponent);
long double _RTLENTRY _EXPFUNC ldexpl (long double __x, int __exponent);
long double _RTLENTRY _EXPFUNC log10l (long double __x);
long double _RTLENTRY _EXPFUNC logl (long double __x);
long double _RTLENTRY _EXPFUNC modfl (long double __x, long double * __ipart);
long double _RTLENTRY _EXPFUNC powl (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC sinhl (long double __x);
long double _RTLENTRY _EXPFUNC sinl (long double __x);
long double _RTLENTRY _EXPFUNC sqrtl (long double __x);
long double _RTLENTRY _EXPFUNC tanhl (long double __x);
long double _RTLENTRY _EXPFUNC tanl (long double __x);
/* Intrinsic functions */
double _RTLENTRY _EXPFUNC __sin__ (double __x);
double _RTLENTRY _EXPFUNC __cos__ (double __x);
long double _RTLENTRY _EXPFUNC __cosl__(long double __x);
long double _RTLENTRY _EXPFUNC __sinl__(long double __x);
#ifdef __cplusplus
}
#endif
#if !defined(__STDC__) /* NON_ANSI */
#ifdef __cplusplus
extern "C" {
#endif
#if !defined(__ABS_DEFINED)
#define __ABS_DEFINED
int _RTLENTRY __abs__(int);
#ifdef __cplusplus
inline int _RTLENTRY abs(int __x) { return __abs__(__x); }
#else
int _RTLENTRYF _EXPFUNC abs(int __x);
# define abs(x) __abs__(x)
#endif
#endif /* __ABS_DEFINED */
double _RTLENTRY _EXPFUNC atof (const char * __s);
long _RTLENTRY _EXPFUNC labs (long __x);
double _RTLENTRY _EXPFUNC pow10 (int __p);
long double _RTLENTRY _EXPFUNC _atold (const char * __s);
int _RTLENTRY _matherr(struct exception *__e);
int _RTLENTRY _matherrl(struct _exceptionl *__e);
double _RTLENTRY _EXPFUNC hypot (double __x, double __y);
double _RTLENTRY _EXPFUNC poly (double __x, int __degree, double coeffs []);
long double _RTLENTRY _EXPFUNC hypotl (long double __x, long double __y);
long double _RTLENTRY _EXPFUNC polyl (long double __x, int __degree, long double coeffs []);
long double _RTLENTRY _EXPFUNC pow10l (int __p);
#ifdef __cplusplus
}
#endif
#endif /* !__STDC__ */
#endif /* __FLAT__ */
#if !defined(RC_INVOKED)
/* restore default packing */
#pragma pack(pop)
#if defined(__STDC__)
#pragma warn .nak
#endif
#endif /* !RC_INVOKED */
#endif /* __MATH_H */