\lambda_1 + \tan^{-1}_* \frac{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\lambda_1 + \tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\cos delta - \left(\sin \phi_1 \cdot \left(\cos delta \cdot \sin \phi_1\right) + \sin \phi_1 \cdot \left(\left(\sin delta \cdot \cos theta\right) \cdot \cos \phi_1\right)\right)}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4486757 = lambda1;
double r4486758 = theta;
double r4486759 = sin(r4486758);
double r4486760 = delta;
double r4486761 = sin(r4486760);
double r4486762 = r4486759 * r4486761;
double r4486763 = phi1;
double r4486764 = cos(r4486763);
double r4486765 = r4486762 * r4486764;
double r4486766 = cos(r4486760);
double r4486767 = sin(r4486763);
double r4486768 = r4486767 * r4486766;
double r4486769 = r4486764 * r4486761;
double r4486770 = cos(r4486758);
double r4486771 = r4486769 * r4486770;
double r4486772 = r4486768 + r4486771;
double r4486773 = asin(r4486772);
double r4486774 = sin(r4486773);
double r4486775 = r4486767 * r4486774;
double r4486776 = r4486766 - r4486775;
double r4486777 = atan2(r4486765, r4486776);
double r4486778 = r4486757 + r4486777;
return r4486778;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4486779 = lambda1;
double r4486780 = phi1;
double r4486781 = cos(r4486780);
double r4486782 = delta;
double r4486783 = sin(r4486782);
double r4486784 = theta;
double r4486785 = sin(r4486784);
double r4486786 = r4486783 * r4486785;
double r4486787 = r4486781 * r4486786;
double r4486788 = cos(r4486782);
double r4486789 = sin(r4486780);
double r4486790 = r4486788 * r4486789;
double r4486791 = r4486789 * r4486790;
double r4486792 = cos(r4486784);
double r4486793 = r4486783 * r4486792;
double r4486794 = r4486793 * r4486781;
double r4486795 = r4486789 * r4486794;
double r4486796 = r4486791 + r4486795;
double r4486797 = r4486788 - r4486796;
double r4486798 = atan2(r4486787, r4486797);
double r4486799 = r4486779 + r4486798;
return r4486799;
}



Bits error versus lambda1



Bits error versus phi1



Bits error versus phi2



Bits error versus delta



Bits error versus theta
Results
Initial program 0.1
Taylor expanded around -inf 0.1
rmApplied distribute-rgt-in0.1
Final simplification0.1
herbie shell --seed 2019162
(FPCore (lambda1 phi1 phi2 delta theta)
:name "Destination given bearing on a great circle"
(+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))