from numpy import * import scipy as sp def gha1(re, phi_p1, lambda_p1, A_p1, s): psi_p1 = re.phi2psi(phi_p1) A_0 = arcsin(cos(psi_p1) * sin(A_p1)) temp = sin(psi_p1) / cos(A_0) sigma_p1 = arcsin(sin(psi_p1) / cos(A_0)) sqrt_sigma = lambda sigma: sqrt(1 + re.e_ ** 2 * cos(A_0) ** 2 * sin(sigma) ** 2) int_sqrt_sigma = lambda sigma: sp.integrate.quad(sqrt_sigma, sigma_p1, sigma)[0] f_sigma_p2i = lambda sigma_p2i: (int_sqrt_sigma(sigma_p2i) - s / re.b) sigma_p2_0 = sigma_p1 + s / re.a sigma_p2 = sp.optimize.newton(f_sigma_p2i, sigma_p2_0) psi_p2 = arcsin(cos(A_0) * sin(sigma_p2)) phi_p2 = re.psi2phi(psi_p2) A_p2 = arcsin(sin(A_0) / cos(psi_p2)) f_d_lambda = lambda sigma: sin(A_0) * sqrt_sigma(sigma) / (1 - cos(A_0)**2 * sin(sigma)**2) d_lambda = sqrt(1-re.e**2) * sp.integrate.quad(f_d_lambda, sigma_p1, sigma_p2)[0] lambda_p2 = lambda_p1 + d_lambda return phi_p2, lambda_p2, A_p2