__powf() is not returning the correct values here. Suppose the following code:
float x = 3.5f; float xy = 1.f; int y = 12; for(int i=0; i<y; ++i) xy *= x;
This code computes xy = x[sup]y[/sup]. xy = __powf(x, y) returns a different result. I can’t tell what are the exact values but what seem to happen is that __powf() is only working with values of x in the [0,1] interval, but Im not sure. I tell this because I’m raytracing implicit surfaces, and when I render a sphere, I see only its lower right part, and only part of it…but when I use fors to compute the powers (the exponents are always integers) I get the correct rendering.