code: public void transform(double[] pointsXYInterleaved, int start, int count) {
  		int n = Math.min(pointsXYInterleaved.length, (start + count) * 2) / 2;
  		for (int i = count; i < n; i++) {
  			double px = pointsXYInterleaved[2 * i];
  			double py = pointsXYInterleaved[2 * i + 1];
  			pointsXYInterleaved[2 * i] = xx * px + xy * py + xd;
  			pointsXYInterleaved[2 * i + 1] = yx * px + yy * py + yd;
  		}
  	}
docs: Transforms an array of points stored in an array of doubles as
  interleaved XY coordinates.
  
  @param pointsXYInterleaved
  The array of points with interleaved X, Y values to be
  transformed.
  @param start
  The start point index to transform from (the actual element
  index is 2 * start).
  @param count
  The number of points to transform (the actual element count is
  2 * count).