The beginnings of math.h and float.h.
[wine] / include / msvcrt / math.h
1 /*
2  * Math functions.
3  *
4  * Derived from the mingw header written by Colin Peters.
5  * Modified for Wine use by Hans Leidekker.
6  * This file is in the public domain.
7  */
8
9 #ifndef __WINE_MATH_H
10 #define __WINE_MATH_H
11 #ifndef __WINE_USE_MSVCRT
12 #define __WINE_USE_MSVCRT
13 #endif
14
15 #ifndef MSVCRT
16 # ifdef USE_MSVCRT_PREFIX
17 #  define MSVCRT(x)    MSVCRT_##x
18 # else
19 #  define MSVCRT(x)    x
20 # endif
21 #endif
22
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26
27 #define _DOMAIN         1       /* domain error in argument */
28 #define _SING           2       /* singularity */
29 #define _OVERFLOW       3       /* range overflow */
30 #define _UNDERFLOW      4       /* range underflow */
31 #define _TLOSS          5       /* total loss of precision */
32 #define _PLOSS          6       /* partial loss of precision */
33
34 #ifndef MSVCRT_EXCEPTION_DEFINED
35 #define MSVCRT_EXCEPTION_DEFINED
36 struct MSVCRT(_exception)
37 {
38   int     type;
39   char    *name;
40   double  arg1;
41   double  arg2;
42   double  retval;
43 };
44 #endif /* MSVCRT_EXCEPTION_DEFINED */
45
46 #ifndef MSVCRT_COMPLEX_DEFINED
47 #define MSVCRT_COMPLEX_DEFINED
48 struct MSVCRT(_complex)
49 {
50   double x;      /* Real part */
51   double y;      /* Imaginary part */
52 };
53 #endif /* MSVCRT_COMPLEX_DEFINED */
54
55 double sin(double);
56 double cos(double);
57 double tan(double);
58 double sinh(double);
59 double cosh(double);
60 double tanh(double);
61 double asin(double);
62 double acos(double);
63 double atan(double);
64 double atan2(double, double);
65 double exp(double);
66 double log(double);
67 double log10(double);
68 double pow(double, double);
69 double sqrt(double);
70 double ceil(double);
71 double floor(double);
72 double fabs(double);
73 double ldexp(double, int);
74 double frexp(double, int*);
75 double modf(double, double*);
76 double fmod(double, double);
77
78 double hypot(double, double);
79 double j0(double);
80 double j1(double);
81 double jn(int, double);
82 double y0(double);
83 double y1(double);
84 double yn(int, double);
85
86 int MSVCRT(_matherr)(struct MSVCRT(_exception)*);
87 double MSVCRT(_cabs)(struct MSVCRT(_complex));
88
89 #ifdef __cplusplus
90 }
91 #endif
92
93 #endif /* __WINE_MATH_H */