private static double min(double d1,double d2){
  if (Double.isNaN(d1)) {
    return d2;
  }
  if (Double.isNaN(d2)) {
    return d1;
  }
  return Math.min(d1,d2);
}

private static double min ( double d1 , double d2 ) { if ( Double . isNaN ( d1 ) ) { return d2 ; } if ( Double . isNaN ( d2 ) ) { return d1 ; } return Math . min ( d1 , d2 ) ; }
returns the minimum value . if either value is nan , the other value is returned . if both are nan , nan is returned .
