The beginnings of math.h and float.h.

diff --git a/include/Makefile.in b/include/Makefile.in
index 7476e30..fb4e0d0 100644
--- a/include/Makefile.in
+++ b/include/Makefile.in
@@ -233,6 +233,7 @@
 	msvcrt/eh.h \
 	msvcrt/errno.h \
 	msvcrt/fcntl.h \
+	msvcrt/float.h \
 	msvcrt/io.h \
 	msvcrt/limits.h \
 	msvcrt/locale.h \
diff --git a/include/msvcrt/float.h b/include/msvcrt/float.h
new file mode 100644
index 0000000..65b133f
--- /dev/null
+++ b/include/msvcrt/float.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 */
diff --git a/include/msvcrt/math.h b/include/msvcrt/math.h
index 0cba867..9e1233d 100644
--- a/include/msvcrt/math.h
+++ b/include/msvcrt/math.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