\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 - \sin \phi_1 \cdot \sin \left(\sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right) \cdot \left(\sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)} \cdot \left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right) \cdot \left(\sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right)\right)}\right)}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4061767 = lambda1;
double r4061768 = theta;
double r4061769 = sin(r4061768);
double r4061770 = delta;
double r4061771 = sin(r4061770);
double r4061772 = r4061769 * r4061771;
double r4061773 = phi1;
double r4061774 = cos(r4061773);
double r4061775 = r4061772 * r4061774;
double r4061776 = cos(r4061770);
double r4061777 = sin(r4061773);
double r4061778 = r4061777 * r4061776;
double r4061779 = r4061774 * r4061771;
double r4061780 = cos(r4061768);
double r4061781 = r4061779 * r4061780;
double r4061782 = r4061778 + r4061781;
double r4061783 = asin(r4061782);
double r4061784 = sin(r4061783);
double r4061785 = r4061777 * r4061784;
double r4061786 = r4061776 - r4061785;
double r4061787 = atan2(r4061775, r4061786);
double r4061788 = r4061767 + r4061787;
return r4061788;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4061789 = lambda1;
double r4061790 = phi1;
double r4061791 = cos(r4061790);
double r4061792 = delta;
double r4061793 = sin(r4061792);
double r4061794 = theta;
double r4061795 = sin(r4061794);
double r4061796 = r4061793 * r4061795;
double r4061797 = r4061791 * r4061796;
double r4061798 = cos(r4061792);
double r4061799 = sin(r4061790);
double r4061800 = r4061798 * r4061799;
double r4061801 = cos(r4061794);
double r4061802 = r4061791 * r4061793;
double r4061803 = r4061801 * r4061802;
double r4061804 = r4061800 + r4061803;
double r4061805 = asin(r4061804);
double r4061806 = cbrt(r4061805);
double r4061807 = r4061806 * r4061806;
double r4061808 = r4061805 * r4061807;
double r4061809 = r4061806 * r4061808;
double r4061810 = r4061805 * r4061809;
double r4061811 = cbrt(r4061810);
double r4061812 = sin(r4061811);
double r4061813 = r4061799 * r4061812;
double r4061814 = r4061798 - r4061813;
double r4061815 = atan2(r4061797, r4061814);
double r4061816 = r4061789 + r4061815;
return r4061816;
}



Bits error versus lambda1



Bits error versus phi1



Bits error versus phi2



Bits error versus delta



Bits error versus theta
Results
Initial program 0.2
rmApplied add-cbrt-cube0.2
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019172
(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))))))))))