void writeRepeatedSqrt(DD xdd){
  int count=0;
  while (xdd.doubleValue() > 1e-300) {
    count++;
    double x=xdd.doubleValue();
    DD xSqrt=xdd.sqrt();
    String s=xSqrt.toString();
    DD xSqrt2=DD.parse(s);
    DD xx=xSqrt2.multiply(xSqrt2);
    double err=Math.abs(xx.doubleValue() - x);
    xdd=xSqrt;
    DD distFrom1DD=xSqrt.subtract(DD.valueOf(1.0));
    double distFrom1=distFrom1DD.doubleValue();
    if (Math.abs(distFrom1) < 1.0e-40)     break;
  }
}

void writeRepeatedSqrt ( DD xdd ) { int count = 0 ; while ( xdd . doubleValue ( ) > 1e-300 ) { count ++ ; double x = xdd . doubleValue ( ) ; DD xSqrt = xdd . sqrt ( ) ; String s = xSqrt . toString ( ) ; DD xSqrt2 = DD . parse ( s ) ; DD xx = xSqrt2 . multiply ( xSqrt2 ) ; double err = Math . abs ( xx . doubleValue ( ) - x ) ; xdd = xSqrt ; DD distFrom1DD = xSqrt . subtract ( DD . valueOf ( 1.0 ) ) ; double distFrom1 = distFrom1DD . doubleValue ( ) ; if ( Math . abs ( distFrom1 ) < 1.0e-40 ) break ; } }
this routine simply tests for robustness of the tostring function .
