public static double GTSlikeScore(Point3d[] x, Point3d[] y) {

		if (x.length != y.length) {
			throw new IllegalArgumentException(
					"Point arrays are not of the same length.");
		}

		int contacts = 0;

		for (Point3d px : x) {
			double minDist = Double.MAX_VALUE;

			for (Point3d py : y) {
				minDist = Math.min(minDist, px.distanceSquared(py));
			}

			if (minDist > 64)
				continue;
			contacts++;

			if (minDist > 16)
				continue;
			contacts++;

			if (minDist > 4)
				continue;
			contacts++;

			if (minDist > 1)
				continue;
			contacts++;
		}

		return contacts * 25.0 / x.length;
	}
public static double GTSlikeScore ( Point3d [ ] x , Point3d [ ] y ) { if ( x . length != y . length ) { throw new IllegalArgumentException ( "Point arrays are not of the same length." ) ; } int contacts = 0 ; for ( Point3d px : x ) { double minDist = Double . MAX_VALUE ; for ( Point3d py : y ) { minDist = Math . min ( minDist , px . distanceSquared ( py ) ) ; } if ( minDist > 64 ) continue ; contacts ++ ; if ( minDist > 16 ) continue ; contacts ++ ; if ( minDist > 4 ) continue ; contacts ++ ; if ( minDist > 1 ) continue ; contacts ++ ; } return contacts * 25.0 / x . length ; }
/*
Needs documentation!

@param x

@param y

@return