prime/include/math_ppc.h

23 lines
543 B
C
Raw Normal View History

#ifndef _MATH_PPC_H_
#define _MATH_PPC_H_
inline float sqrtf(float x)
{
static const double _half=.5;
static const double _three=3.0;
volatile float y;
if(x > 0.0f)
{
double guess = __frsqrte((double)x); /* returns an approximation to */
guess = _half*guess*(_three - guess*guess*x); /* now have 12 sig bits */
guess = _half*guess*(_three - guess*guess*x); /* now have 24 sig bits */
guess = _half*guess*(_three - guess*guess*x); /* now have 32 sig bits */
y=(float)(x*guess);
return y ;
}
return x ;
}
#endif