\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{\left(\sin theta \cdot \sin delta\right) \cdot \cos \phi_1}{\cos delta - \left(\sin \phi_1 \cdot \left(\sqrt[3]{\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)} \cdot \sqrt[3]{\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right)\right) \cdot \sqrt[3]{\sin \left(\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r73772 = lambda1;
double r73773 = theta;
double r73774 = sin(r73773);
double r73775 = delta;
double r73776 = sin(r73775);
double r73777 = r73774 * r73776;
double r73778 = phi1;
double r73779 = cos(r73778);
double r73780 = r73777 * r73779;
double r73781 = cos(r73775);
double r73782 = sin(r73778);
double r73783 = r73782 * r73781;
double r73784 = r73779 * r73776;
double r73785 = cos(r73773);
double r73786 = r73784 * r73785;
double r73787 = r73783 + r73786;
double r73788 = asin(r73787);
double r73789 = sin(r73788);
double r73790 = r73782 * r73789;
double r73791 = r73781 - r73790;
double r73792 = atan2(r73780, r73791);
double r73793 = r73772 + r73792;
return r73793;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r73794 = lambda1;
double r73795 = theta;
double r73796 = sin(r73795);
double r73797 = delta;
double r73798 = sin(r73797);
double r73799 = r73796 * r73798;
double r73800 = phi1;
double r73801 = cos(r73800);
double r73802 = r73799 * r73801;
double r73803 = cos(r73797);
double r73804 = sin(r73800);
double r73805 = r73804 * r73803;
double r73806 = r73801 * r73798;
double r73807 = cos(r73795);
double r73808 = r73806 * r73807;
double r73809 = r73805 + r73808;
double r73810 = asin(r73809);
double r73811 = sin(r73810);
double r73812 = cbrt(r73811);
double r73813 = r73812 * r73812;
double r73814 = r73804 * r73813;
double r73815 = r73814 * r73812;
double r73816 = r73803 - r73815;
double r73817 = atan2(r73802, r73816);
double r73818 = r73794 + r73817;
return r73818;
}



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
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2020043
(FPCore (lambda1 phi1 phi2 delta theta)
:name "Destination given bearing on a great circle"
:precision binary64
(+ lambda1 (atan2 (* (* (sin theta) (sin delta)) (cos phi1)) (- (cos delta) (* (sin phi1) (sin (asin (+ (* (sin phi1) (cos delta)) (* (* (cos phi1) (sin delta)) (cos theta))))))))))