float CCalc::Sqrt3( LOCATION& loc0, LOCATION& loc1 ) { float x2, z2; float max2, min2; float max; //float maxdiv; int index; x2 = (loc0.x - loc1.x) * (loc0.x - loc1.x); z2 = (loc0.y - loc1.y) * (loc0.y - loc1.y) + (loc0.z - loc1.z) * (loc0.z - loc1.z); if( x2 > z2 ){ max = (float)fabs( loc0.x - loc1.x ); max2 = x2; min2 = z2; }else{ max = Sqrt2( loc0.y - loc1.y, loc0.z - loc1.z ); max2 = z2; min2 = x2; } if( max2 ){ index = (int)( 1000 * min2 / max2 ); return ( max * sqrtindex[ index ] ); } return 0.0f; }
float CCalc::Sqrt3( float x, float y, float z ) { float x2, z2; float max2, min2; float max; //float maxdiv; int index; x2 = x * x; z2 = y * y + z * z; if( x2 > z2 ){ max = (float)fabs( x ); max2 = x2; min2 = z2; }else{ max = Sqrt2( y, z ); max2 = z2; min2 = x2; } if( max2 ){ index = (int)( 1000 * min2 / max2 ); return ( max * sqrtindex[ index ] ); } return 0.0f; }
double Distance( double x, double y ) { double res = x*x + y*y; return Sqrt2( res ); };