David Rose преди 19 години
родител
ревизия
93c959a754
променени са 2 файла, в които са добавени 10 реда и са изтрити 4 реда
  1. 7 2
      panda/src/mathutil/triangulator.cxx
  2. 3 2
      panda/src/mathutil/triangulator.h

+ 7 - 2
panda/src/mathutil/triangulator.cxx

@@ -335,6 +335,11 @@ choose_segment() {
   return permute[choose_idx++];
 }
 
+double Triangulator::
+math_log2(double v) {
+  static const double log2 = log(2.0);
+  return log(v) / log2;
+}
 
 /* Get log*n for given n */
 int Triangulator::
@@ -343,7 +348,7 @@ math_logstar_n(int n) {
   double v;
   
   for (i = 0, v = (double) n; v >= 1; i++)
-    v = log2(v);
+    v = math_log2(v);
   
   return (i - 1);
 }
@@ -355,7 +360,7 @@ math_N(int n, int h) {
   double v;
 
   for (i = 0, v = (int) n; i < h; i++)
-    v = log2(v);
+    v = math_log2(v);
   
   return (int) ceil((double) 1.0*n/v);
 }

+ 3 - 2
panda/src/mathutil/triangulator.h

@@ -170,8 +170,9 @@ private:
   void make_segment(const vector_int &range);
 
   int choose_segment();
-  int math_logstar_n(int n);
-  int math_N(int n, int h);
+  static double math_log2(double v);
+  static int math_logstar_n(int n);
+  static int math_N(int n, int h);
 
   int newnode();
   int newtrap();