public ArrayList<IMultiPoint> search(IHypercube hc){
  ArrayList<IMultiPoint> retval=new ArrayList<IMultiPoint>();
  double[] low_raw=new double[hc.dimensionality()];
  double[] high_raw=new double[hc.dimensionality()];
  for (int i=0; i < low_raw.length; i++) {
    low_raw[i]=hc.getLeft(i + 1);
    high_raw[i]=hc.getRight(i + 1);
  }
  for (int i=0; i < points.size(); i++) {
    double[] rawpt=points.get(i);
    boolean inResult=true;
    for (int j=0; j < low_raw.length; j++) {
      if (rawpt[j] < low_raw[j] || rawpt[j] > high_raw[j]) {
        inResult=false;
        break;
      }
    }
    if (inResult) {
      retval.add(results[i]);
    }
  }
  return retval;
}

public ArrayList < IMultiPoint > search ( IHypercube hc ) { ArrayList < IMultiPoint > retval = new ArrayList < IMultiPoint > ( ) ; double [ ] low_raw = new double [ hc . dimensionality ( ) ] ; double [ ] high_raw = new double [ hc . dimensionality ( ) ] ; for ( int i = 0 ; i < low_raw . length ; i ++ ) { low_raw [ i ] = hc . getLeft ( i + 1 ) ; high_raw [ i ] = hc . getRight ( i + 1 ) ; } for ( int i = 0 ; i < points . size ( ) ; i ++ ) { double [ ] rawpt = points . get ( i ) ; boolean inResult = true ; for ( int j = 0 ; j < low_raw . length ; j ++ ) { if ( rawpt [ j ] < low_raw [ j ] || rawpt [ j ] > high_raw [ j ] ) { inResult = false ; break ; } } if ( inResult ) { retval . add ( results [ i ] ) ; } } return retval ; }
perform brute force search of all points within given region .
