A lightweight port of the GeoTools EarthGravitationalModel (http://docs.geotools.org/latest/javadocs/org/geotools/referencing/operation/transform/EarthGravitationalModel.html).
since cr, sr, s11, s12 are used as global Temporary buffer (Allocated once for ever for avoiding too many objects creation / destruction) the heightOffset method is not thread save and need to be synchronized (in order to avoid that multiple threads will manipulate data in the cr, sr, s11, s12 double[] at the same time)...
Also I don't see any reason what could cause an Exception to be thown - so I removed it from the signature
since cr, sr, s11, s12 are used as global Temporary buffer (Allocated once for ever for avoiding too many objects creation / destruction) the heightOffset method is not thread save and need to be synchronized (in order to avoid that multiple threads will manipulate data in the cr, sr, s11, s12 double[] at the same time)...
Also I don't see any reason what could cause an Exception to be thown - so I removed it from the signature