docs: @SuppressWarnings({"checkstyle:parametername", "checkstyle:localfinalvariablename"})
  	private static Point2d NTFLambert_NTFLambdaPhi(double x, double y, double n, double c, double Xs, double Ys) {
  		// Several constants from the IGN specifications
  		//Longitude in radians of Paris (2°20'14.025" E) from Greenwich
  		final double lambda_0 = 0.;
  
  		// Extended Lambert II (x,y) -> graphical coordinate NTF (lambda_ntf,phi_ntf)
  		// ALG0004
  		final double R = Math.hypot(x - Xs, y - Ys);
  		final double g = Math.atan((x - Xs) / (Ys - y));
  		final double lamdda_ntf = lambda_0 + (g / n);
  		final double L = -(1 / n) * Math.log(Math.abs(R / c));
  		final double phi0 = 2 * Math.atan(Math.exp(L)) - (Math.PI / 2.0);
  		double phiprec = phi0;
  		double phii = compute1(phiprec, L);
  
  		while (Math.abs(phii - phiprec) >= EPSILON) {
  			phiprec = phii;
  			phii = compute1(phiprec, L);
  		}
  
  		final double phi_ntf = phii;
  
  		return new Point2d(lamdda_ntf, phi_ntf);
  	}