added support for fast approximate rsqrt(double). Provide 16 digit accurancy but is over 3x faster than 1/sqrt(double)

This commit is contained in:
Evghenii
2014-02-04 14:44:54 +01:00
parent b0753dc93d
commit eb1a495a7a
5 changed files with 48 additions and 24 deletions

View File

@@ -3,11 +3,11 @@ export uniform int width() { return programCount; }
export void f_f(uniform float RET[], uniform float aFOO[]) {
double x = aFOO[programIndex];
double x = aFOO[programIndex]*1d100;
double d, invsqrt = rsqrt(x);
d = (x * (invsqrt * invsqrt)) - 1.0d0;
if (d < 0.0d0) d = -d;
RET[programIndex] = d > 1d-5;
RET[programIndex] = d > 1d-15;
}