double f(double lambda1, double lambda2, double phi1, double phi2) {
double r1156577 = lambda1;
double r1156578 = phi2;
double r1156579 = cos(r1156578);
double r1156580 = lambda2;
double r1156581 = r1156577 - r1156580;
double r1156582 = sin(r1156581);
double r1156583 = r1156579 * r1156582;
double r1156584 = phi1;
double r1156585 = cos(r1156584);
double r1156586 = cos(r1156581);
double r1156587 = r1156579 * r1156586;
double r1156588 = r1156585 + r1156587;
double r1156589 = atan2(r1156583, r1156588);
double r1156590 = r1156577 + r1156589;
return r1156590;
}
double f(double lambda1, double lambda2, double phi1, double phi2) {
double r1156591 = phi2;
double r1156592 = cos(r1156591);
double r1156593 = lambda1;
double r1156594 = lambda2;
double r1156595 = r1156593 - r1156594;
double r1156596 = sin(r1156595);
double r1156597 = r1156592 * r1156596;
double r1156598 = cos(r1156595);
double r1156599 = r1156592 * r1156598;
double r1156600 = phi1;
double r1156601 = cos(r1156600);
double r1156602 = r1156599 + r1156601;
double r1156603 = atan2(r1156597, r1156602);
double r1156604 = r1156603 + r1156593;
return r1156604;
}
\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1


Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Initial program 0
Final simplification0
herbie shell --seed 2019102
(FPCore (lambda1 lambda2 phi1 phi2)
:name "Midpoint on a great circle"
(+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))