code: private static double interpolateBilinear(final double c00, final double c01, final double c10, final double c11, final double mx, final double my){
  		return (c00*(1.0-mx)+c10*(mx))*(1.0-my) + (c01*(1.0-mx)+c11*(mx))*(my);
  	}
docs: /* bilinear interpolation between values c00 c01 c10 c11 at position mx my (in [0,1])