From 61b62b0d36599ff78c042a52488d4642c5874781 Mon Sep 17 00:00:00 2001 From: div0 Date: Sun, 8 Nov 2009 17:43:37 +0000 Subject: [PATCH] fix some mathlib bugs git-svn-id: svn://svn.icculus.org/nexuiz/trunk@8248 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/common/mathlib.qc | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/data/qcsrc/common/mathlib.qc b/data/qcsrc/common/mathlib.qc index 978fa8dd2..5f45da009 100644 --- a/data/qcsrc/common/mathlib.qc +++ b/data/qcsrc/common/mathlib.qc @@ -93,13 +93,13 @@ vector frexp(float x) { vector v; v_z = 0; - v_y = ilogb(x); + v_y = ilogb(x) + 1; v_x = x / exp2(v_y); return v; } int ilogb(float x) { - return floor(log2(x)); + return floor(log2(fabs(x))); } float ldexp(float x, int e) { @@ -144,7 +144,7 @@ float log2(float x) } float logb(float x) { - return floor(log2(x)); + return floor(log2(fabs(x))); } vector modf(float f) { @@ -179,6 +179,8 @@ float erfc(float x) vector lgamma(float x) { // TODO improve accuracy + if(!isfinite(x)) + return fabs(x); if(x < 1 && x == floor(x)) return nan("gamma") * '1 1 1'; if(x < 0.1) -- 2.17.1