private final void extendBounds(double[] location){
  if (minLimit == null) {
    minLimit=new double[dimensions];
    System.arraycopy(location,0,minLimit,0,dimensions);
    maxLimit=new double[dimensions];
    System.arraycopy(location,0,maxLimit,0,dimensions);
    return;
  }
  for (int i=0; i < dimensions; i++) {
    if (Double.isNaN(location[i])) {
      minLimit[i]=Double.NaN;
      maxLimit[i]=Double.NaN;
      singularity=false;
    }
 else     if (minLimit[i] > location[i]) {
      minLimit[i]=location[i];
      singularity=false;
    }
 else     if (maxLimit[i] < location[i]) {
      maxLimit[i]=location[i];
      singularity=false;
    }
  }
}

private final void extendBounds ( double [ ] location ) { if ( minLimit == null ) { minLimit = new double [ dimensions ] ; System . arraycopy ( location , 0 , minLimit , 0 , dimensions ) ; maxLimit = new double [ dimensions ] ; System . arraycopy ( location , 0 , maxLimit , 0 , dimensions ) ; return ; } for ( int i = 0 ; i < dimensions ; i ++ ) { if ( Double . isNaN ( location [ i ] ) ) { minLimit [ i ] = Double . NaN ; maxLimit [ i ] = Double . NaN ; singularity = false ; } else if ( minLimit [ i ] > location [ i ] ) { minLimit [ i ] = location [ i ] ; singularity = false ; } else if ( maxLimit [ i ] < location [ i ] ) { maxLimit [ i ] = location [ i ] ; singularity = false ; } } }
extends the bounds of this node to include a new location
