Initial support for 1BPP
[reactos.git] / reactos / subsys / win32k / misc / math.c
index e5e6f0b..ca4c659 100644 (file)
@@ -19,6 +19,7 @@
    Boston, MA 02111-1307, USA.  */
 
 #include <windows.h>
+#include <stdlib.h>
 
 double atan (double __x);
 double atan2 (double __y, double __x);
@@ -33,7 +34,8 @@ double pow (double __x, double __y);
 double sin (double __x);
 double sqrt (double __x);
 double tan (double __x);
-
+div_t div(int num, int denom);
+int mod(int num, int denom);
 
 double atan (double __x)
 {
@@ -209,6 +211,32 @@ double tan (double __x)
   return __value;
 }
 
+div_t div(int num, int denom)
+{
+  div_t r;
+  if (num > 0 && denom < 0) {
+    num = -num;
+    denom = -denom;
+  }
+  r.quot = num / denom;
+  r.rem = num % denom;
+  if (num < 0 && denom > 0)
+  {
+    if (r.rem > 0)
+    {
+      r.quot++;
+      r.rem -= denom;
+    }
+  }
+  return r;
+}
+
+int mod(int num, int denom)
+{
+  div_t dvt = div(num, denom);
+  return dvt.rem;
+}
+
 //FIXME! Is there a better algorithm. like FT_MulDiv
 INT STDCALL EngMulDiv(
             INT nMultiplicand,