code: public static final double getDoubleMachineEpsilon() {
  		
  		if(!Double.isNaN(RELATIVE_MACHINE_PRECISION)){
  			return RELATIVE_MACHINE_PRECISION;
  		}
  		
  		synchronized(RELATIVE_MACHINE_PRECISION){
  			
  			if(!Double.isNaN(RELATIVE_MACHINE_PRECISION)){
  				return RELATIVE_MACHINE_PRECISION;
  			}
  			
  			double eps = 1.;
  			do {
  				eps /= 2.;
  			} while ((double) (1. + (eps / 2.)) != 1.);
  			
  			log.debug("Calculated double machine epsilon: " + eps);
  			RELATIVE_MACHINE_PRECISION = eps;
  		}
  		
  		return RELATIVE_MACHINE_PRECISION;
  	}
docs: The smallest positive (epsilon) such that 1.0 + epsilon != 1.0.
  @see http://en.wikipedia.org/wiki/Machine_epsilon#Approximation_using_Java