define math_log2

This commit is contained in:
David Rose 2007-01-19 21:32:01 +00:00
parent a2a49aa9fb
commit 93c959a754
2 changed files with 10 additions and 4 deletions

View File

@ -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);
}

View File

@ -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();