update for HEAD-2003091401
[reactos.git] / include / msvcrt / math.h
index 9afe1df..09a334e 100644 (file)
@@ -15,7 +15,7 @@
  *
  *  This code is distributed in the hope that it will be useful but
  *  WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY
- *  DISCLAMED. This includes but is not limited to warranties of
+ *  DISCLAIMED. This includes but is not limited to warranties of
  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
  *
  * $Revision$
  * $Date$
  *
  */
-// added modfl 
+/* added modfl */
 
 #ifndef _MATH_H_
 #define _MATH_H_
 
+#include <msvcrt/crttypes.h>
+
 #ifdef __cplusplus
 extern "C" {
 #endif
@@ -42,99 +44,99 @@ extern "C" {
  *
  * NOTE: The CRTDLL version uses _HUGE_dll instead.
  */
-#if __MSVCRT__
-extern double* __imp__HUGE;
-#define        HUGE_VAL        (*__imp__HUGE)
+#ifdef _MSVCRT_LIB_
+extern double*  __imp__HUGE;
+#define HUGE_VAL    (*__imp__HUGE)
 #else
 /* CRTDLL */
-extern double* _HUGE_dll;
-#define        HUGE_VAL        (*_HUGE_dll)
+extern double*  _HUGE_dll;
+#define HUGE_VAL    (*_HUGE_dll)
 #endif
 
 
 struct _exception
 {
-       int     type;
-       char    *name;
-       double  arg1;
-       double  arg2;
-       double  retval;
+    int type;
+    char    *name;
+    double  arg1;
+    double  arg2;
+    double  retval;
 };
 
 /*
  * Types for the above _exception structure.
  */
 
-#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 */
+#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 */
 
 /*
  * Exception types with non-ANSI names for compatibility.
  */
 
-#ifndef        __STRICT_ANSI__
-#ifndef        _NO_OLDNAMES
-
-#define        DOMAIN          _DOMAIN
-#define        SING            _SING
-#define        OVERFLOW        _OVERFLOW
-#define        UNDERFLOW       _UNDERFLOW
-#define        TLOSS           _TLOSS
-#define        PLOSS           _PLOSS
-
-#endif /* Not _NO_OLDNAMES */
-#endif /* Not __STRICT_ANSI__ */
-
-
-double sin (double x);
-double cos (double x);
-double tan (double x);
-double sinh (double x);
-double cosh (double x);
-double tanh (double x);
-double asin (double x);
-double acos (double x);
-double atan (double x);
-double atan2 (double y, double x);
-double exp (double x);
-double log (double x);
-double log10 (double x);
-double pow (double x, double y);
-long double    powl (long double x,long double y);
-double sqrt (double x);
-double ceil (double x);
-double floor (double x);
-double fabs (double x);
-double ldexp (double x, int n);
-double frexp (double x, int* exp);
-double modf (double x, double* ip);
+#ifndef __STRICT_ANSI__
+#ifndef _NO_OLDNAMES
+
+#define DOMAIN      _DOMAIN
+#define SING        _SING
+#define OVERFLOW    _OVERFLOW
+#define UNDERFLOW   _UNDERFLOW
+#define TLOSS       _TLOSS
+#define PLOSS       _PLOSS
+
+#endif  /* Not _NO_OLDNAMES */
+#endif  /* Not __STRICT_ANSI__ */
+
+
+double  sin (double x);
+double  cos (double x);
+double  tan (double x);
+double  sinh (double x);
+double  cosh (double x);
+double  tanh (double x);
+double  asin (double x);
+double  acos (double x);
+double  atan (double x);
+double  atan2 (double y, double x);
+double  exp (double x);
+double  log (double x);
+double  log10 (double x);
+double  pow (double x, double y);
+long double powl (long double x,long double y);
+double  sqrt (double x);
+double  ceil (double x);
+double  floor (double x);
+double  fabs (double x);
+double  ldexp (double x, int n);
+double  frexp (double x, int* exp);
+double  modf (double x, double* ip);
 long double modfl (long double x,long double* ip);
-double fmod (double x, double y);
+double  fmod (double x, double y);
 
 
-#ifndef        __STRICT_ANSI__
+#ifndef __STRICT_ANSI__
 
 /* Complex number (for cabs) */
 struct _complex
 {
-       double  x;      /* Real part */
-       double  y;      /* Imaginary part */
+    double  x;  /* Real part */
+    double  y;  /* Imaginary part */
 };
 
-double _cabs (struct _complex x);
-double _hypot (double x, double y);
-double _j0 (double x);
-double _j1 (double x);
-double _jn (int n, double x);
-double _y0 (double x);
-double _y1 (double x);
-double _yn (int n, double x);
+double  _cabs (struct _complex x);
+double  _hypot (double x, double y);
+double  _j0 (double x);
+double  _j1 (double x);
+double  _jn (int n, double x);
+double  _y0 (double x);
+double  _y1 (double x);
+double  _yn (int n, double x);
 
-#ifndef        _NO_OLDNAMES
+#ifndef _NO_OLDNAMES
 
 /*
  * Non-underscored versions of non-ANSI functions. These reside in
@@ -149,13 +151,50 @@ double y0 (double x);
 double y1 (double x);
 double yn (int n, double x);
 
-#endif /* Not _NO_OLDNAMES */
+#endif  /* Not _NO_OLDNAMES */
 
-#endif /* Not __STRICT_ANSI__ */
+#endif  /* Not __STRICT_ANSI__ */
 
 #ifdef __cplusplus
 }
 #endif
 
+
+#ifdef __MSVCRT__
+double  linkme_sin(double x);
+double  linkme_cos(double x);
+double  linkme_tan(double x);
+double  linkme_sinh(double x);
+double  linkme_cosh(double x);
+double  linkme_tanh(double x);
+double  linkme_asin(double x);
+double  linkme_acos(double x);
+double  linkme_atan(double x);
+double  linkme_atan2(double y, double x);
+double  linkme_exp(double x);
+double  linkme_log(double x);
+double  linkme_log10(double x);
+double  linkme_pow(double x, double y);
+long double  linkme_powl(long double x,long double y);
+double  linkme_sqrt(double x);
+double  linkme_ceil(double x);
+double  linkme_floor(double x);
+double  linkme_fabs(double x);
+double  linkme_ldexp(double x, int n);
+double  linkme_frexp(double x, int* exp);
+double  linkme_modf(double x, double* ip);
+long double linkme_modfl(long double x,long double* ip);
+double  linkme_fmod(double x, double y);
+
+/*
+ * linkme_log2
+ * linkme_floor
+ * linkme_ldexp
+ * linkme_pow
+ */
+
+#endif
+
+
 #endif /* Not _MATH_H_ */