2004-03-12 20:47:20 +01:00
|
|
|
/*
|
|
|
|
* Math functions.
|
|
|
|
*
|
|
|
|
* Derived from the mingw header written by Colin Peters.
|
|
|
|
* Modified for Wine use by Hans Leidekker.
|
|
|
|
* This file is in the public domain.
|
|
|
|
*/
|
|
|
|
|
2003-09-02 02:58:21 +02:00
|
|
|
#ifndef __WINE_MATH_H
|
|
|
|
#define __WINE_MATH_H
|
2008-12-11 22:37:34 +01:00
|
|
|
|
|
|
|
#include <crtdefs.h>
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2007-02-20 09:35:41 +01:00
|
|
|
#include <pshpack8.h>
|
|
|
|
|
2003-09-02 02:58:21 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
extern "C" {
|
|
|
|
#endif
|
|
|
|
|
2004-03-12 20:47:20 +01:00
|
|
|
#define _DOMAIN 1 /* domain error in argument */
|
|
|
|
#define _SING 2 /* singularity */
|
|
|
|
#define _OVERFLOW 3 /* range overflow */
|
|
|
|
#define _UNDERFLOW 4 /* range underflow */
|
|
|
|
#define _TLOSS 5 /* total loss of precision */
|
|
|
|
#define _PLOSS 6 /* partial loss of precision */
|
|
|
|
|
2004-06-25 03:19:15 +02:00
|
|
|
#ifndef _EXCEPTION_DEFINED
|
|
|
|
#define _EXCEPTION_DEFINED
|
|
|
|
struct _exception
|
2004-03-12 20:47:20 +01:00
|
|
|
{
|
|
|
|
int type;
|
|
|
|
char *name;
|
|
|
|
double arg1;
|
|
|
|
double arg2;
|
|
|
|
double retval;
|
|
|
|
};
|
2004-06-25 03:19:15 +02:00
|
|
|
#endif /* _EXCEPTION_DEFINED */
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2004-06-25 03:19:15 +02:00
|
|
|
#ifndef _COMPLEX_DEFINED
|
|
|
|
#define _COMPLEX_DEFINED
|
|
|
|
struct _complex
|
2004-03-12 20:47:20 +01:00
|
|
|
{
|
|
|
|
double x; /* Real part */
|
|
|
|
double y; /* Imaginary part */
|
|
|
|
};
|
2004-06-25 03:19:15 +02:00
|
|
|
#endif /* _COMPLEX_DEFINED */
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2008-12-17 14:45:18 +01:00
|
|
|
double __cdecl sin(double);
|
|
|
|
double __cdecl cos(double);
|
|
|
|
double __cdecl tan(double);
|
|
|
|
double __cdecl sinh(double);
|
|
|
|
double __cdecl cosh(double);
|
|
|
|
double __cdecl tanh(double);
|
|
|
|
double __cdecl asin(double);
|
|
|
|
double __cdecl acos(double);
|
|
|
|
double __cdecl atan(double);
|
|
|
|
double __cdecl atan2(double, double);
|
|
|
|
double __cdecl exp(double);
|
|
|
|
double __cdecl log(double);
|
|
|
|
double __cdecl log10(double);
|
|
|
|
double __cdecl pow(double, double);
|
|
|
|
double __cdecl sqrt(double);
|
|
|
|
double __cdecl ceil(double);
|
|
|
|
double __cdecl floor(double);
|
|
|
|
double __cdecl fabs(double);
|
|
|
|
double __cdecl ldexp(double, int);
|
|
|
|
double __cdecl frexp(double, int*);
|
|
|
|
double __cdecl modf(double, double*);
|
|
|
|
double __cdecl fmod(double, double);
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2008-12-17 14:45:18 +01:00
|
|
|
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);
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2008-12-17 14:45:18 +01:00
|
|
|
int __cdecl _matherr(struct _exception*);
|
|
|
|
double __cdecl _cabs(struct _complex);
|
2004-03-12 20:47:20 +01:00
|
|
|
|
2004-04-09 21:02:45 +02:00
|
|
|
#ifndef HUGE_VAL
|
|
|
|
# if defined(__GNUC__) && (__GNUC__ >= 3)
|
|
|
|
# define HUGE_VAL (__extension__ 0x1.0p2047)
|
|
|
|
# else
|
|
|
|
static const union {
|
|
|
|
unsigned char __c[8];
|
|
|
|
double __d;
|
|
|
|
} __huge_val = { { 0, 0, 0, 0, 0, 0, 0xf0, 0x7f } };
|
|
|
|
# define HUGE_VAL (__huge_val.__d)
|
|
|
|
# endif
|
|
|
|
#endif
|
|
|
|
|
2003-09-02 02:58:21 +02:00
|
|
|
#ifdef __cplusplus
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
|
2007-02-20 09:35:41 +01:00
|
|
|
#include <poppack.h>
|
|
|
|
|
2003-09-02 02:58:21 +02:00
|
|
|
#endif /* __WINE_MATH_H */
|