private static double doubleHighPart(double d){
  if (d > -Precision.SAFE_MIN && d < Precision.SAFE_MIN) {
    return d;
  }
  long xl=Double.doubleToRawLongBits(d);
  xl&=MASK_30BITS;
  return Double.longBitsToDouble(xl);
}

private static double doubleHighPart ( double d ) { if ( d > - Precision . SAFE_MIN && d < Precision . SAFE_MIN ) { return d ; } long xl = Double . doubleToRawLongBits ( d ) ; xl &= MASK_30BITS ; return Double . longBitsToDouble ( xl ) ; }
get the high order bits from the mantissa . equivalent to adding and subtracting hex_40000 but also works for very large numbers
