cdm/src/main/java/ucar/unidata/geoloc/projection/Gdc_To_Utm_Converter.java
protected void init(double a, double f, int zone, boolean isNorth) {
    A = a;
    F = 1.0 / f;  // F is flattening
    this.axlon0_deg = (zone * 6 - 183);
    this.axlon0 = axlon0_deg * RADIANS_PER_DEGREE;

    double polx2b, polx3b, polx4b, polx5b;

    //  Create the ERM constants.
    Eps2 = (F) * (2.0 - F);
    Eps25 = .25 * (Eps2);
    Epps2 = (Eps2) / (1.0 - Eps2);
    polx2b = Eps2 + 1.0 / 4.0 * Math.pow(Eps2, 2)
        + 15.0 / 128.0 * Math.pow(Eps2, 3)
        - 455.0 / 4096.0 * Math.pow(Eps2, 4);

    polx2b = 3.0 / 8.0 * polx2b;
    polx3b = Math.pow(Eps2, 2) + 3.0 / 4.0 * Math.pow(Eps2, 3)
        - 77.0 / 128.0 * Math.pow(Eps2, 4);
    polx3b = 15.0 / 256.0 * polx3b;
    polx4b = Math.pow(Eps2, 3) - 41.0 / 32.0 * Math.pow(Eps2, 4);
    polx4b = polx4b * 35.0 / 3072.0;
    polx5b = -315.0 / 131072.0 * Math.pow(Eps2, 4);

    poly1b = 1.0 - (1.0 / 4.0 * Eps2) - (3.0 / 64.0 * Math.pow(Eps2, 2))
        - (5.0 / 256.0 * Math.pow(Eps2, 3))
        - (175.0 / 16384.0 * Math.pow(Eps2, 4));

    poly2b = polx2b * -2.0 + polx3b * 4.0 - polx4b * 6.0 + polx5b * 8.0;

    poly3b = polx3b * -8.0 + polx4b * 32.0 - polx5b * 80.0;

    poly4b = polx4b * -32.0 + polx5b * 192.0;

    poly5b = polx5b * -128.0;
  }
protected void init(double a, double f, int zone, boolean isNorth) {
    A = a;
    F = 1.0 / f;  // F is flattening
    this.axlon0_deg = (zone * 6 - 183);
    this.axlon0 = axlon0_deg * RADIANS_PER_DEGREE;

    double polx2b, polx3b, polx4b, polx5b;

    //  Create the ERM constants.
    Eps2 = (F) * (2.0 - F);
    Eps25 = .25 * (Eps2);
    Epps2 = (Eps2) / (1.0 - Eps2);
    polx2b = Eps2 + 1.0 / 4.0 * Math.pow(Eps2, 2)
        + 15.0 / 128.0 * Math.pow(Eps2, 3)
        - 455.0 / 4096.0 * Math.pow(Eps2, 4);

    polx2b = 3.0 / 8.0 * polx2b;
    polx3b = Math.pow(Eps2, 2) + 3.0 / 4.0 * Math.pow(Eps2, 3)
        - 77.0 / 128.0 * Math.pow(Eps2, 4);
    polx3b = 15.0 / 256.0 * polx3b;
    polx4b = Math.pow(Eps2, 3) - 41.0 / 32.0 * Math.pow(Eps2, 4);
    polx4b = polx4b * 35.0 / 3072.0;
    polx5b = -315.0 / 131072.0 * Math.pow(Eps2, 4);

    poly1b = 1.0 - (1.0 / 4.0 * Eps2) - (3.0 / 64.0 * Math.pow(Eps2, 2))
        - (5.0 / 256.0 * Math.pow(Eps2, 3))
        - (175.0 / 16384.0 * Math.pow(Eps2, 4));

    poly2b = polx2b * -2.0 + polx3b * 4.0 - polx4b * 6.0 + polx5b * 8.0;

    poly3b = polx3b * -8.0 + polx4b * 32.0 - polx5b * 80.0;

    poly4b = polx4b * -32.0 + polx5b * 192.0;

    poly5b = polx5b * -128.0;
  }
protected void init ( double a , double f , int zone , boolean isNorth ) { A = a ; F = 1.0 / f ; // F is flattening
 this . axlon0_deg = ( zone * 6 - 183 ) ; this . axlon0 = axlon0_deg * RADIANS_PER_DEGREE ; double polx2b , polx3b , polx4b , polx5b ; //  Create the ERM constants.
 Eps2 = ( F ) * ( 2.0 - F ) ; Eps25 = .25 * ( Eps2 ) ; Epps2 = ( Eps2 ) / ( 1.0 - Eps2 ) ; polx2b = Eps2 + 1.0 / 4.0 * Math . pow ( Eps2 , 2 ) + 15.0 / 128.0 * Math . pow ( Eps2 , 3 ) - 455.0 / 4096.0 * Math . pow ( Eps2 , 4 ) ; polx2b = 3.0 / 8.0 * polx2b ; polx3b = Math . pow ( Eps2 , 2 ) + 3.0 / 4.0 * Math . pow ( Eps2 , 3 ) - 77.0 / 128.0 * Math . pow ( Eps2 , 4 ) ; polx3b = 15.0 / 256.0 * polx3b ; polx4b = Math . pow ( Eps2 , 3 ) - 41.0 / 32.0 * Math . pow ( Eps2 , 4 ) ; polx4b = polx4b * 35.0 / 3072.0 ; polx5b = - 315.0 / 131072.0 * Math . pow ( Eps2 , 4 ) ; poly1b = 1.0 - ( 1.0 / 4.0 * Eps2 ) - ( 3.0 / 64.0 * Math . pow ( Eps2 , 2 ) ) - ( 5.0 / 256.0 * Math . pow ( Eps2 , 3 ) ) - ( 175.0 / 16384.0 * Math . pow ( Eps2 , 4 ) ) ; poly2b = polx2b * - 2.0 + polx3b * 4.0 - polx4b * 6.0 + polx5b * 8.0 ; poly3b = polx3b * - 8.0 + polx4b * 32.0 - polx5b * 80.0 ; poly4b = polx4b * - 32.0 + polx5b * 192.0 ; poly5b = polx5b * - 128.0 ; }
_more_

@param a       major axis
@param f       inverse flattening
@param zone    _more_
@param isNorth _more_
_more_