fsqrt method
Implementation
bool fsqrt( MPData ret, MPData a, int prec ){
a = clone( a );
if( fcmp( a, F( "0" ) ) > 0 ){
MPData l = MPData();
MPData s = MPData();
MPData t = MPData();
if( fcmp( a, F( "1" ) ) > 0 ){
set( s, a );
} else {
set( s, F( "1" ) );
}
do {
set( l, s );
fdiv2( t, a, s, prec );
fadd( t, t, s );
fmul( t, t, F( "0.5" ), prec );
set( s, t );
} while( fcmp( s, l ) < 0 );
set( ret, l );
return false;
}
set( ret, F( "0" ) );
return (fcmp( a, F( "0" ) ) != 0);
}