The beginnings of math.h and float.h.
This commit is contained in:
parent
21fc3c8067
commit
285ad721f4
|
@ -233,6 +233,7 @@ MSVCRT_INCLUDES = \
|
|||
msvcrt/eh.h \
|
||||
msvcrt/errno.h \
|
||||
msvcrt/fcntl.h \
|
||||
msvcrt/float.h \
|
||||
msvcrt/io.h \
|
||||
msvcrt/limits.h \
|
||||
msvcrt/locale.h \
|
||||
|
|
|
@ -0,0 +1,93 @@
|
|||
/*
|
||||
* Floating point arithmetic.
|
||||
*
|
||||
* Derived from the mingw header written by Colin Peters.
|
||||
* Modified for Wine use by Hans Leidekker.
|
||||
* This file is in the public domain.
|
||||
*/
|
||||
|
||||
#ifndef __WINE_FLOAT_H
|
||||
#define __WINE_FLOAT_H
|
||||
#ifndef __WINE_USE_MSVCRT
|
||||
#define __WINE_USE_MSVCRT
|
||||
#endif
|
||||
|
||||
#ifndef MSVCRT
|
||||
# ifdef USE_MSVCRT_PREFIX
|
||||
# define MSVCRT(x) MSVCRT_##x
|
||||
# else
|
||||
# define MSVCRT(x) x
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
/* _controlfp masks and bitflags - x86 only so far */
|
||||
#ifdef __i386__
|
||||
|
||||
/* Control word masks for unMask */
|
||||
#define _MCW_EM 0x0008001F /* Error masks */
|
||||
#define _MCW_IC 0x00040000 /* Infinity */
|
||||
#define _MCW_RC 0x00000300 /* Rounding */
|
||||
#define _MCW_PC 0x00030000 /* Precision */
|
||||
|
||||
/* Control word values for unNew (use with related unMask above) */
|
||||
#define _EM_INVALID 0x00000010
|
||||
#define _EM_DENORMAL 0x00080000
|
||||
#define _EM_ZERODIVIDE 0x00000008
|
||||
#define _EM_OVERFLOW 0x00000004
|
||||
#define _EM_UNDERFLOW 0x00000002
|
||||
#define _EM_INEXACT 0x00000001
|
||||
#define _IC_AFFINE 0x00040000
|
||||
#define _IC_PROJECTIVE 0x00000000
|
||||
#define _RC_CHOP 0x00000300
|
||||
#define _RC_UP 0x00000200
|
||||
#define _RC_DOWN 0x00000100
|
||||
#define _RC_NEAR 0x00000000
|
||||
#define _PC_24 0x00020000
|
||||
#define _PC_53 0x00010000
|
||||
#define _PC_64 0x00000000
|
||||
#endif
|
||||
|
||||
/* _statusfp bit flags */
|
||||
#define _SW_INEXACT 0x00000001 /* inexact (precision) */
|
||||
#define _SW_UNDERFLOW 0x00000002 /* underflow */
|
||||
#define _SW_OVERFLOW 0x00000004 /* overflow */
|
||||
#define _SW_ZERODIVIDE 0x00000008 /* zero divide */
|
||||
#define _SW_INVALID 0x00000010 /* invalid */
|
||||
|
||||
#define _SW_UNEMULATED 0x00000040 /* unemulated instruction */
|
||||
#define _SW_SQRTNEG 0x00000080 /* square root of a neg number */
|
||||
#define _SW_STACKOVERFLOW 0x00000200 /* FP stack overflow */
|
||||
#define _SW_STACKUNDERFLOW 0x00000400 /* FP stack underflow */
|
||||
|
||||
#define _SW_DENORMAL 0x00080000 /* denormal status bit */
|
||||
|
||||
/* fpclass constants */
|
||||
#define _FPCLASS_SNAN 0x0001 /* Signaling "Not a Number" */
|
||||
#define _FPCLASS_QNAN 0x0002 /* Quiet "Not a Number" */
|
||||
#define _FPCLASS_NINF 0x0004 /* Negative Infinity */
|
||||
#define _FPCLASS_NN 0x0008 /* Negative Normal */
|
||||
#define _FPCLASS_ND 0x0010 /* Negative Denormal */
|
||||
#define _FPCLASS_NZ 0x0020 /* Negative Zero */
|
||||
#define _FPCLASS_PZ 0x0040 /* Positive Zero */
|
||||
#define _FPCLASS_PD 0x0080 /* Positive Denormal */
|
||||
#define _FPCLASS_PN 0x0100 /* Positive Normal */
|
||||
#define _FPCLASS_PINF 0x0200 /* Positive Infinity */
|
||||
|
||||
double _copysign (double, double);
|
||||
double _chgsign (double);
|
||||
double _scalb(double, long);
|
||||
double _logb(double);
|
||||
double _nextafter(double, double);
|
||||
int _finite(double);
|
||||
int _isnan(double);
|
||||
int _fpclass(double);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif /* __WINE_FLOAT_H */
|
|
@ -1,10 +1,91 @@
|
|||
/*
|
||||
* 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.
|
||||
*/
|
||||
|
||||
#ifndef __WINE_MATH_H
|
||||
#define __WINE_MATH_H
|
||||
#ifndef __WINE_USE_MSVCRT
|
||||
#define __WINE_USE_MSVCRT
|
||||
#endif
|
||||
|
||||
#ifndef MSVCRT
|
||||
# ifdef USE_MSVCRT_PREFIX
|
||||
# define MSVCRT(x) MSVCRT_##x
|
||||
# else
|
||||
# define MSVCRT(x) x
|
||||
# endif
|
||||
#endif
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
#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 */
|
||||
|
||||
#ifndef MSVCRT_EXCEPTION_DEFINED
|
||||
#define MSVCRT_EXCEPTION_DEFINED
|
||||
struct MSVCRT(_exception)
|
||||
{
|
||||
int type;
|
||||
char *name;
|
||||
double arg1;
|
||||
double arg2;
|
||||
double retval;
|
||||
};
|
||||
#endif /* MSVCRT_EXCEPTION_DEFINED */
|
||||
|
||||
#ifndef MSVCRT_COMPLEX_DEFINED
|
||||
#define MSVCRT_COMPLEX_DEFINED
|
||||
struct MSVCRT(_complex)
|
||||
{
|
||||
double x; /* Real part */
|
||||
double y; /* Imaginary part */
|
||||
};
|
||||
#endif /* MSVCRT_COMPLEX_DEFINED */
|
||||
|
||||
double sin(double);
|
||||
double cos(double);
|
||||
double tan(double);
|
||||
double sinh(double);
|
||||
double cosh(double);
|
||||
double tanh(double);
|
||||
double asin(double);
|
||||
double acos(double);
|
||||
double atan(double);
|
||||
double atan2(double, double);
|
||||
double exp(double);
|
||||
double log(double);
|
||||
double log10(double);
|
||||
double pow(double, double);
|
||||
double sqrt(double);
|
||||
double ceil(double);
|
||||
double floor(double);
|
||||
double fabs(double);
|
||||
double ldexp(double, int);
|
||||
double frexp(double, int*);
|
||||
double modf(double, double*);
|
||||
double fmod(double, double);
|
||||
|
||||
double hypot(double, double);
|
||||
double j0(double);
|
||||
double j1(double);
|
||||
double jn(int, double);
|
||||
double y0(double);
|
||||
double y1(double);
|
||||
double yn(int, double);
|
||||
|
||||
int MSVCRT(_matherr)(struct MSVCRT(_exception)*);
|
||||
double MSVCRT(_cabs)(struct MSVCRT(_complex));
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue