mirror of https://github.com/PrimeDecomp/prime.git
23 lines
543 B
C
23 lines
543 B
C
#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
|