@Override public int hashCode(){
  if (hash == 0) {
    int result=17;
    result=37 * result + range.hashCode();
    long bitsWeight=Double.doubleToLongBits(weight);
    result=37 * result + (int)(bitsWeight ^ (bitsWeight >>> 32));
    hash=result;
  }
  return hash;
}

@ Override public int hashCode ( ) { if ( hash == 0 ) { int result = 17 ; result = 37 * result + range . hashCode ( ) ; long bitsWeight = Double . doubleToLongBits ( weight ) ; result = 37 * result + ( int ) ( bitsWeight ^ ( bitsWeight > > > 32 ) ) ; hash = result ; } return hash ; }
returns a hash code value for the object .
