Further clean up RoughApproxPow2 and disable the optimized version --

it's a very poor approximation.
This commit is contained in:
Keith Whitwell 2005-06-09 18:59:41 +00:00
parent 2c6e8e90ec
commit 44367aab2a
1 changed files with 9 additions and 8 deletions

View File

@ -96,16 +96,17 @@ static GLfloat RoughApproxLog2(GLfloat t)
static GLfloat RoughApproxPow2(GLfloat t)
{
GLfloat q;
#ifdef USE_IEEE
GLint ii = (GLint) t;
ii = (ii << 23) + 0x3f800000;
SET_FLOAT_BITS(q, ii);
q = *((GLfloat *) (void *)&ii);
#if 0
/* This isn't nearly accurate enough - it discards all of t's
* fractional bits!
*/
fi_type fi;
fi.i = (GLint) t;
fi.i = (fi.i << 23) + 0x3f800000;
return fi.f;
#else
q = (GLfloat) pow(2.0, floor_t0);
return (GLfloat) _mesa_pow(2.0, floor_t0);
#endif
return q;
}
static GLfloat RoughApproxPower(GLfloat x, GLfloat y)