[Mesa-dev] [PATCH] Improve ONE_DIV_LN2 and M_PI constants
mattst88 at gmail.com
Thu Dec 2 17:20:31 PST 2010
On Wed, Dec 1, 2010 at 11:24 PM, Ian Romanick <idr at freedesktop.org> wrote:
> On 12/01/2010 01:40 PM, Matt Turner wrote:
>> 1/ln(2) is equivalent to log2(e), so define it as such.
>> log2(e) = ln(e)/ln(2) = 1/ln(2)
>> M_PI is updated to add some precision (value found in my math.h header).
> I wish I had noticed this when I added M_LOG2E. It seems better to
> replace the single use of ONE_DIV_LN2 (in prog_statevars.c) with M_LOG2E.
I think replacing ONE_DIV_LN2 with M_LOG2E in its single use makes the
code harder to understand, especially since the next line is
value = (GLfloat)(ctx->Fog.Density * ONE_DIV_LN2);
value = (GLfloat)(ctx->Fog.Density * ONE_DIV_SQRT_LN2);
It's not intuitively obvious that M_LOG2E == 1/ln(2), so I actually
think the patch is good as is.
More information about the mesa-dev