### Question:
GeoUtils { public static GeoPoint[] computeCorners(final SLCImage meta, final Orbit orbit, final Window tile, final float height[]) throws Exception { if (height.length != 4) { throw new IllegalArgumentException("input height array has to have 4 elements"); } GeoPoint[] corners = new GeoPoint[2]; double[] phiAndLambda; final double l0 = tile.linelo; final double lN = tile.linehi; final double p0 = tile.pixlo; final double pN = tile.pixhi; phiAndLambda = orbit.lph2ell(new Point(p0, l0, height[0]), meta); final double phi_l0p0 = phiAndLambda[0]; final double lambda_l0p0 = phiAndLambda[1]; phiAndLambda = orbit.lp2ell(new Point(p0, lN, height[1]), meta); final double phi_lNp0 = phiAndLambda[0]; final double lambda_lNp0 = phiAndLambda[1]; phiAndLambda = orbit.lp2ell(new Point(pN, lN, height[2]), meta); final double phi_lNpN = phiAndLambda[0]; final double lambda_lNpN = phiAndLambda[1]; phiAndLambda = orbit.lp2ell(new Point(pN, l0, height[3]), meta); final double phi_l0pN = phiAndLambda[0]; final double lambda_l0pN = phiAndLambda[1]; double phiMin = Math.min(Math.min(Math.min(phi_l0p0, phi_lNp0), phi_lNpN), phi_l0pN); double phiMax = Math.max(Math.max(Math.max(phi_l0p0, phi_lNp0), phi_lNpN), phi_l0pN); double lambdaMin = Math.min(Math.min(Math.min(lambda_l0p0, lambda_lNp0), lambda_lNpN), lambda_l0pN); double lambdaMax = Math.max(Math.max(Math.max(lambda_l0p0, lambda_lNp0), lambda_lNpN), lambda_l0pN); corners[0] = new GeoPoint((float) (phiMax * Constants.RTOD), (float) (lambdaMin * Constants.RTOD)); corners[1] = new GeoPoint((float) (phiMin * Constants.RTOD), (float) (lambdaMax * Constants.RTOD)); return corners; }  static GeoPoint[] computeCorners(final SLCImage meta, final Orbit orbit, final Window tile, final float height[]); static GeoPoint[] computeCorners(final SLCImage meta, final Orbit orbit, final Window tile); static GeoPoint[] extendCorners(final GeoPoint extraGeo, final GeoPoint[] inGeo); synchronized static GeoPoint defineExtraPhiLam(final double heightMin, final double heightMax, final Window window, final SLCImage meta, final Orbit orbit); @Deprecated static GeoPoint[] computeCorners(final SLCImage meta, final Orbit orbit, final Window tile,
                                                       final double phiExtra, final double lambdaExtra); @Deprecated static GeoPoint defineExtraPhiLam(double latDelta, double lonDelta);  }### Answer:
@Ignore @Test public void testComputeCorners() throws Exception { long start = System.currentTimeMillis(); GeoPoint[] corners = GeoUtils.computeCorners(slcimage, orbit_ACTUAL, window, height); long stop = System.currentTimeMillis(); System.out.println("time = " + (double)(stop - start)/1000); Assert.assertEquals(corners[0].getLat(), latMax_ACTUAL, eps_04); Assert.assertEquals(corners[1].getLat(), latMin_ACTUAL, eps_04); Assert.assertEquals(corners[0].getLon(), lonMin_ACTUAL, eps_04); Assert.assertEquals(corners[1].getLon(), lonMax_ACTUAL, eps_04); }