68    double Z0_e, Z0_o, ang_l_dest;
 
   69    double f1, f2, ft1, ft2, j11, j12, j21, j22, d_s_h, d_w_h, err;
 
   71    double w_h, s_h, le, lo;
 
   95        syn_fun( &ft1, &ft2, s_h + eps, w_h, Z0_e, Z0_o );
 
   96        j11 = ( ft1 - f1 ) / eps;
 
   97        j21 = ( ft2 - f2 ) / eps;
 
   98        syn_fun( &ft1, &ft2, s_h, w_h + eps, Z0_e, Z0_o );
 
   99        j12 = ( ft1 - f1 ) / eps;
 
  100        j22 = ( ft2 - f2 ) / eps;
 
  103        d_s_h = ( -f1 * j22 + f2 * j12 ) / ( j11 * j22 - j21 * j12 );
 
  104        d_w_h = ( -f2 * j11 + f1 * j21 ) / ( j11 * j22 - j21 * j12 );
 
  110        syn_fun( &f1, &f2, s_h, w_h, Z0_e, Z0_o );
 
  111        err = sqrt( f1 * f1 + f2 * f2 );
 
  114    } 
while( err > 1e-04 && iters < 250 );
 
 
  440    double er_eff, h2, u_t_e, u_t_o, g, h2h;
 
  441    double Q_1, Q_2, Q_3, Q_4, Q_5, Q_6, Q_7, Q_8, Q_9, Q_10;
 
  442    double delta_Z0_e_0, delta_Z0_o_0, Z0_single, er_eff_single;
 
  455    Q_1 = 0.8695 * pow( u_t_e, 0.194 );
 
  456    Q_2 = 1.0 + 0.7519 * g + 0.189 * pow( g, 2.31 );
 
  457    Q_3 = 0.1975 + pow( ( 16.6 + pow( ( 8.4 / g ), 6.0 ) ), -0.387 )
 
  458          + log( pow( g, 10.0 ) / ( 1.0 + pow( g / 3.4, 10.0 ) ) ) / 241.0;
 
  459    Q_4 = 2.0 * Q_1 / ( Q_2 * ( exp( -g ) * pow( u_t_e, Q_3 ) + ( 2.0 - exp( -g ) ) * pow( u_t_e, -Q_3 ) ) );
 
  461    Z0_e_0 = Z0_single * sqrt( er_eff_single / er_eff ) / ( 1.0 - sqrt( er_eff_single ) * Q_4 * Z0_single / 
TC::ZF0 );
 
  469    Q_5 = 1.794 + 1.14 * log( 1.0 + 0.638 / ( g + 0.517 * pow( g, 2.43 ) ) );
 
  470    Q_6 = 0.2305 + log( pow( g, 10.0 ) / ( 1.0 + pow( g / 5.8, 10.0 ) ) ) / 281.3
 
  471          + log( 1.0 + 0.598 * pow( g, 1.154 ) ) / 5.1;
 
  472    Q_7 = ( 10.0 + 190.0 * g * g ) / ( 1.0 + 82.3 * g * g * g );
 
  473    Q_8 = exp( -6.5 - 0.95 * log( g ) - pow( g / 0.15, 5.0 ) );
 
  474    Q_9 = log( Q_7 ) * ( Q_8 + 1.0 / 16.5 );
 
  475    Q_10 = ( Q_2 * Q_4 - Q_5 * exp( log( u_t_o ) * Q_6 * pow( u_t_o, -Q_9 ) ) ) / Q_2;
 
  478    Z0_o_0 = Z0_single * sqrt( er_eff_single / er_eff ) / ( 1.0 - sqrt( er_eff_single ) * Q_10 * Z0_single / 
TC::ZF0 );
 
 
  488    double P_1, P_2, P_3, P_4, P_5, P_6, P_7;
 
  489    double P_8, P_9, P_10, P_11, P_12, P_13, P_14, P_15;
 
  491    double er_eff, u, g, f_n;
 
  500    P_1 = 0.27488 + ( 0.6315 + 0.525 / pow( 1.0 + 0.0157 * f_n, 20.0 ) ) * u - 0.065683 * exp( -8.7513 * u );
 
  502    P_3 = 0.0363 * exp( -4.6 * u ) * ( 1.0 - exp( -pow( f_n / 38.7, 4.97 ) ) );
 
  505    P_6 = P_5 * exp( -pow( f_n / 18.0, 0.368 ) );
 
  506    P_7 = 1.0 + 4.069 * P_6 * pow( g, 0.479 ) * exp( -1.347 * pow( g, 0.595 ) - 0.17 * pow( g, 2.5 ) );
 
  508    F_e = P_1 * P_2 * pow( ( P_3 * P_4 + 0.1844 * P_7 ) * f_n, 1.5763 );
 
  516          - 0.7913 * ( 1.0 - exp( -pow( f_n / 20.0, 1.424 ) ) )
 
  519    P_11 = 0.6366 * ( exp( -0.3401 * f_n ) - 1.0 ) * atan( 1.263 * pow( u / 3.0, 1.629 ) );
 
  520    P_12 = P_9 + ( 1.0 - P_9 ) / ( 1.0 + 1.183 * pow( u, 1.376 ) );
 
  521    P_13 = 1.695 * P_10 / ( 0.414 + 1.605 * P_10 );
 
  522    P_14 = 0.8928 + 0.1072 * ( 1.0 - exp( -0.42 * pow( f_n / 20.0, 3.215 ) ) );
 
  523    P_15 = fabs( 1.0 - 0.8928 * ( 1.0 + P_11 ) * P_12 * exp( -P_13 * pow( g, 1.092 ) ) / P_14 );
 
  525    F_o = P_1 * P_2 * pow( ( P_3 * P_4 + 0.1844 ) * f_n * P_15, 1.5763 );
 
 
  642    double Q_11, Q_12, Q_13, Q_14, Q_15, Q_16, Q_17, Q_18, Q_19, Q_20, Q_21;
 
  643    double Q_22, Q_23, Q_24, Q_25, Q_26, Q_27, Q_28, Q_29;
 
  644    double r_e, q_e, p_e, d_e, C_e;
 
  645    double e_r_eff_o_f, e_r_eff_o_0;
 
  646    double e_r_eff_single_f, e_r_eff_single_0, Z0_single_f;
 
  647    double f_n, g, u, e_r;
 
  648    double R_1, R_2, R_7, R_10, R_11, R_12, R_15, R_16, tmpf;
 
  665    Q_11 = 0.893 * ( 1.0 - 0.3 / ( 1.0 + 0.7 * ( e_r - 1.0 ) ) );
 
  666    Q_12 = 2.121 * ( pow( f_n / 20.0, 4.91 ) / ( 1.0 + Q_11 * pow( f_n / 20.0, 4.91 ) ) ) * exp( -2.87 * g )
 
  668    Q_13 = 1.0 + 0.038 * pow( e_r / 8.0, 5.1 );
 
  669    Q_14 = 1.0 + 1.203 * pow( e_r / 15.0, 4.0 ) / ( 1.0 + pow( e_r / 15.0, 4.0 ) );
 
  670    Q_15 = 1.887 * exp( -1.5 * pow( g, 0.84 ) ) * pow( g, Q_14 )
 
  671           / ( 1.0 + 0.41 * pow( f_n / 15.0, 3.0 ) * pow( u, 2.0 / Q_13 ) / ( 0.125 + pow( u, 1.626 / Q_13 ) ) );
 
  672    Q_16 = ( 1.0 + 9.0 / ( 1.0 + 0.403 * pow( e_r - 1.0, 2 ) ) ) * Q_15;
 
  673    Q_17 = 0.394 * ( 1.0 - exp( -1.47 * pow( u / 7.0, 0.672 ) ) ) * ( 1.0 - exp( -4.25 * pow( f_n / 20.0, 1.87 ) ) );
 
  674    Q_18 = 0.61 * ( 1.0 - exp( -2.13 * pow( u / 8.0, 1.593 ) ) ) / ( 1.0 + 6.544 * pow( g, 4.17 ) );
 
  675    Q_19 = 0.21 * g * g * g * g
 
  676           / ( ( 1.0 + 0.18 * pow( g, 4.9 ) ) * ( 1.0 + 0.1 * u * u ) * ( 1.0 + pow( f_n / 24.0, 3.0 ) ) );
 
  677    Q_20 = ( 0.09 + 1.0 / ( 1.0 + 0.1 * pow( e_r - 1, 2.7 ) ) ) * Q_19;
 
  678    Q_21 = fabs( 1.0 - 42.54 * pow( g, 0.133 ) * exp( -0.812 * g ) * pow( u, 2.5 ) / ( 1.0 + 0.033 * pow( u, 2.5 ) ) );
 
  680    r_e = pow( f_n / 28.843, 12 );
 
  681    q_e = 0.016 + pow( 0.0514 * e_r * Q_21, 4.524 );
 
  682    p_e = 4.766 * exp( -3.228 * pow( u, 0.641 ) );
 
  683    d_e = 5.086 * q_e * ( r_e / ( 0.3838 + 0.386 * q_e ) ) * ( exp( -22.2 * pow( u, 1.92 ) ) / ( 1.0 + 1.2992 * r_e ) )
 
  684          * ( pow( e_r - 1.0, 6.0 ) / ( 1.0 + 10 * pow( e_r - 1.0, 6.0 ) ) );
 
  685    C_e = 1.0 + 1.275 * ( 1.0 - exp( -0.004625 * p_e * pow( e_r, 1.674 ) * pow( f_n / 18.365, 2.745 ) ) ) - Q_12 + Q_16
 
  686          - Q_17 + Q_18 + Q_20;
 
  689    R_1 = 0.03891 * pow( e_r, 1.4 );
 
  690    R_2 = 0.267 * pow( u, 7.0 );
 
  691    R_7 = 1.206 - 0.3144 * exp( -R_1 ) * ( 1.0 - exp( -R_2 ) );
 
  692    R_10 = 0.00044 * pow( e_r, 2.136 ) + 0.0184;
 
  693    tmpf = pow( f_n / 19.47, 6.0 );
 
  694    R_11 = tmpf / ( 1.0 + 0.0962 * tmpf );
 
  695    R_12 = 1.0 / ( 1.0 + 0.00245 * u * u );
 
  696    R_15 = 0.707 * R_10 * pow( f_n / 12.3, 1.097 );
 
  697    R_16 = 1.0 + 0.0503 * e_r * e_r * R_11 * ( 1.0 - exp( -pow( u / 15.0, 6.0 ) ) );
 
  698    Q_0 = R_7 * ( 1.0 - 1.1241 * ( R_12 / R_16 ) * exp( -0.026 * pow( f_n, 1.15656 ) - R_15 ) );
 
  702                                     / pow( ( 0.9408 - d_e ) * pow( e_r_eff_single_0, C_e ) - 0.9603, Q_0 ) );
 
  704    Q_29 = 15.16 / ( 1.0 + 0.196 * pow( e_r - 1.0, 2.0 ) );
 
  705    tmpf = pow( e_r - 1.0, 3.0 );
 
  706    Q_28 = 0.149 * tmpf / ( 94.5 + 0.038 * tmpf );
 
  707    tmpf = pow( e_r - 1.0, 1.5 );
 
  708    Q_27 = 0.4 * pow( g, 0.84 ) * ( 1.0 + 2.5 * tmpf / ( 5.0 + tmpf ) );
 
  709    tmpf = pow( ( e_r - 1.0 ) / 13.0, 12.0 );
 
  710    Q_26 = 30.0 - 22.2 * ( tmpf / ( 1.0 + 3.0 * tmpf ) ) - Q_29;
 
  711    tmpf = ( e_r - 1.0 ) * ( e_r - 1.0 );
 
  712    Q_25 = ( 0.3 * f_n * f_n / ( 10.0 + f_n * f_n ) ) * ( 1.0 + 2.333 * tmpf / ( 5.0 + tmpf ) );
 
  713    Q_24 = 2.506 * Q_28 * pow( u, 0.894 ) * pow( ( 1.0 + 1.3 * u ) * f_n / 99.25, 4.29 ) / ( 3.575 + pow( u, 0.894 ) );
 
  714    Q_23 = 1.0 + 0.005 * f_n * Q_27 / ( ( 1.0 + 0.812 * pow( f_n / 15.0, 1.9 ) ) * ( 1.0 + 0.025 * u * u ) );
 
  715    Q_22 = 0.925 * pow( f_n / Q_26, 1.536 ) / ( 1.0 + 0.3 * pow( f_n / 30.0, 1.536 ) );
 
  719                                     + ( 
Z0_o_0 * pow( e_r_eff_o_f / e_r_eff_o_0, Q_22 ) - Z0_single_f * Q_23 )
 
  720                                               / ( 1.0 + Q_24 + pow( 0.46 * g, 2.2 ) * Q_25 ) );
 
 
  748    double w_h_se, w_h_so, w_h, a, ce, co, s_h;
 
  749    double f1, f2, ft1, ft2, j11, j12, j21, j22, d_s_h, d_w_h, err;
 
  757    a = exp( 
Z0 * sqrt( e_r + 1.0 ) / 42.4 ) - 1.0;
 
  758    w_h_se = 8.0 * sqrt( a * ( ( 7.0 + 4.0 / e_r ) / 11.0 ) + ( ( 1.0 + 1.0 / e_r ) / 0.81 ) ) / a;
 
  762    a = exp( 
Z0 * sqrt( e_r + 1.0 ) / 42.4 ) - 1.0;
 
  763    w_h_so = 8.0 * sqrt( a * ( ( 7.0 + 4.0 / e_r ) / 11.0 ) + ( ( 1.0 + 1.0 / e_r ) / 0.81 ) ) / a;
 
  765    ce = cosh( 0.5 * 
M_PI * w_h_se );
 
  766    co = cosh( 0.5 * 
M_PI * w_h_so );
 
  768    s_h = ( 2.0 / 
M_PI ) * 
acosh( ( ce + co - 2.0 ) / ( co - ce ) );
 
  770    w_h = 
acosh( ( ce * co - 1.0 ) / ( co - ce ) ) / 
M_PI - s_h / 2.0;
 
  775    syn_err_fun( &f1, &f2, s_h, w_h, e_r, w_h_se, w_h_so );
 
  782        syn_err_fun( &ft1, &ft2, s_h + eps, w_h, e_r, w_h_se, w_h_so );
 
  783        j11 = ( ft1 - f1 ) / eps;
 
  784        j21 = ( ft2 - f2 ) / eps;
 
  785        syn_err_fun( &ft1, &ft2, s_h, w_h + eps, e_r, w_h_se, w_h_so );
 
  786        j12 = ( ft1 - f1 ) / eps;
 
  787        j22 = ( ft2 - f2 ) / eps;
 
  790        d_s_h = ( -f1 * j22 + f2 * j12 ) / ( j11 * j22 - j21 * j12 );
 
  791        d_w_h = ( -f2 * j11 + f1 * j21 ) / ( j11 * j22 - j21 * j12 );
 
  801        syn_err_fun( &f1, &f2, s_h, w_h, e_r, w_h_se, w_h_so );
 
  803        err = sqrt( f1 * f1 + f2 * f2 );
 
  805    } 
while( err > 1e-04 );