public double maxDist(SpatialComparable mbr1,SpatialComparable mbr2){
  final int dim1=mbr1.getDimensionality(), dim2=mbr2.getDimensionality();
  final int mindim=(dim1 < dim2) ? dim1 : dim2;
  double agg=0.;
  for (int d=0; d < mindim; d++) {
    double d1=mbr1.getMax(d) - mbr2.getMin(d);
    double d2=mbr2.getMax(d) - mbr1.getMin(d);
    double delta=d1 > d2 ? d1 : d2;
    agg+=delta * delta;
  }
  for (int d=mindim; d < dim1; d++) {
    double d1=Math.abs(mbr1.getMin(d)), d2=Math.abs(mbr1.getMax(d));
    double delta=d1 > d2 ? d1 : d2;
    agg+=delta * delta;
  }
  for (int d=mindim; d < dim2; d++) {
    double d1=Math.abs(mbr2.getMin(d)), d2=Math.abs(mbr2.getMax(d));
    double delta=d1 > d2 ? d1 : d2;
    agg+=delta * delta;
  }
  return Math.sqrt(agg);
}

public double maxDist ( SpatialComparable mbr1 , SpatialComparable mbr2 ) { final int dim1 = mbr1 . getDimensionality ( ) , dim2 = mbr2 . getDimensionality ( ) ; final int mindim = ( dim1 < dim2 ) ? dim1 : dim2 ; double agg = 0. ; for ( int d = 0 ; d < mindim ; d ++ ) { double d1 = mbr1 . getMax ( d ) - mbr2 . getMin ( d ) ; double d2 = mbr2 . getMax ( d ) - mbr1 . getMin ( d ) ; double delta = d1 > d2 ? d1 : d2 ; agg += delta * delta ; } for ( int d = mindim ; d < dim1 ; d ++ ) { double d1 = Math . abs ( mbr1 . getMin ( d ) ) , d2 = Math . abs ( mbr1 . getMax ( d ) ) ; double delta = d1 > d2 ? d1 : d2 ; agg += delta * delta ; } for ( int d = mindim ; d < dim2 ; d ++ ) { double d1 = Math . abs ( mbr2 . getMin ( d ) ) , d2 = Math . abs ( mbr2 . getMax ( d ) ) ; double delta = d1 > d2 ? d1 : d2 ; agg += delta * delta ; } return Math . sqrt ( agg ) ; }
maximum distance of two objects .
