fsqrt3 method
Implementation
bool fsqrt3( MPData ret, MPData a, int prec ){
a = clone( a );
int t = prec * 2 - getPrec( a );
int u;
if( t > 0 ){
if( (u = _fmul( a, t )) > 0 ){
MPData k = MPData();
_fcoef( k, u ); mul( a, a, k );
}
} else if( t < 0 ){
u = _abs( t );
int n;
if( (n = u ~/ digit) > 0 ){
u -= n * digit;
_fdiv( a, n );
}
MPData k = MPData();
_fcoef( k, u ); div( a, a, k );
}
if( a.val(getLen( a )) == 0 ){
_setLen( a, getLen( a ) - 1 );
}
bool r = sqrt( ret, a );
_setPrec( ret, prec );
return r;
}