algorithms/gauss-kruger/java/src/main/java/com/epam/aicode/GaussKrugerEvaluator.java [25:43]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public static double[] fromGaussKruger(double x, double y) {
        double lambda0 = CENTRAL_MERIDIAN;
        double f = FLATTENING;
        double a = EQUATORIAL_RADIUS;
        double k0 = SCALE_FACTOR;
        double FE = FALSE_EASTING;
        double FN = FALSE_NORTHING;

        double e2 = f * (2.0 - f);
        double n = a / Math.sqrt(1.0 - e2 * Math.sin(Math.toRadians(52.0)) * Math.sin(Math.toRadians(52.0)));
        double rho = Math.sqrt(Math.pow(x - FE, 2.0) + Math.pow(y - FN, 2.0)) / k0;
        double nu = rho / (1.0 - e2 / 4.0 - 3.0 * e2 * e2 / 64.0 - 5.0 * e2 * e2 * e2 / 256.0);
        double eta = y / (k0 * nu);
        double xi = (x - FE) / (k0 * nu);
        double xi_prim = xi - (Math.sin(2.0 * xi) / 2.0) * (Math.cosh(2.0 * eta) + Math.cos(2.0 * xi) * Math.sinh(2.0 * eta));
        double eta_prim = eta - (Math.cos(2.0 * xi) * Math.sinh(2.0 * eta) - Math.sin(2.0 * xi) * Math.cosh(2.0 * eta)) / 2.0;
        double phi = Math.asin(Math.sin(xi_prim) / Math.cosh(eta_prim));
        double delta_lambda = Math.atan(Math.sinh(eta_prim) / Math.cos(xi_prim));
        double lambda = lambda0 + delta_lambda;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



code-explanation/algorithm-code-comments/java/src/main/java/com/epam/aicode/javacodeexplanation/GaussKrugerEvaluator.java [42:60]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    public static double[] fromGaussKruger(double x, double y) {
        double lambda0 = CENTRAL_MERIDIAN;
        double f = FLATTENING;
        double a = EQUATORIAL_RADIUS;
        double k0 = SCALE_FACTOR;
        double FE = FALSE_EASTING;
        double FN = FALSE_NORTHING;

        double e2 = f * (2.0 - f);
        double n = a / Math.sqrt(1.0 - e2 * Math.sin(Math.toRadians(52.0)) * Math.sin(Math.toRadians(52.0)));
        double rho = Math.sqrt(Math.pow(x - FE, 2.0) + Math.pow(y - FN, 2.0)) / k0;
        double nu = rho / (1.0 - e2 / 4.0 - 3.0 * e2 * e2 / 64.0 - 5.0 * e2 * e2 * e2 / 256.0);
        double eta = y / (k0 * nu);
        double xi = (x - FE) / (k0 * nu);
        double xi_prim = xi - (Math.sin(2.0 * xi) / 2.0) * (Math.cosh(2.0 * eta) + Math.cos(2.0 * xi) * Math.sinh(2.0 * eta));
        double eta_prim = eta - (Math.cos(2.0 * xi) * Math.sinh(2.0 * eta) - Math.sin(2.0 * xi) * Math.cosh(2.0 * eta)) / 2.0;
        double phi = Math.asin(Math.sin(xi_prim) / Math.cosh(eta_prim));
        double delta_lambda = Math.atan(Math.sinh(eta_prim) / Math.cos(xi_prim));
        double lambda = lambda0 + delta_lambda;
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



