\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(\cos theta \cdot \sin delta\right) \cdot \cos \phi_1\right)\right)}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r2959796 = lambda1;
double r2959797 = theta;
double r2959798 = sin(r2959797);
double r2959799 = delta;
double r2959800 = sin(r2959799);
double r2959801 = r2959798 * r2959800;
double r2959802 = phi1;
double r2959803 = cos(r2959802);
double r2959804 = r2959801 * r2959803;
double r2959805 = cos(r2959799);
double r2959806 = sin(r2959802);
double r2959807 = r2959806 * r2959805;
double r2959808 = r2959803 * r2959800;
double r2959809 = cos(r2959797);
double r2959810 = r2959808 * r2959809;
double r2959811 = r2959807 + r2959810;
double r2959812 = asin(r2959811);
double r2959813 = sin(r2959812);
double r2959814 = r2959806 * r2959813;
double r2959815 = r2959805 - r2959814;
double r2959816 = atan2(r2959804, r2959815);
double r2959817 = r2959796 + r2959816;
return r2959817;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r2959818 = lambda1;
double r2959819 = phi1;
double r2959820 = cos(r2959819);
double r2959821 = delta;
double r2959822 = sin(r2959821);
double r2959823 = theta;
double r2959824 = sin(r2959823);
double r2959825 = r2959822 * r2959824;
double r2959826 = r2959820 * r2959825;
double r2959827 = cos(r2959821);
double r2959828 = sin(r2959819);
double r2959829 = r2959827 * r2959828;
double r2959830 = r2959828 * r2959829;
double r2959831 = cos(r2959823);
double r2959832 = r2959831 * r2959822;
double r2959833 = r2959832 * r2959820;
double r2959834 = r2959828 * r2959833;
double r2959835 = r2959830 + r2959834;
double r2959836 = r2959827 - r2959835;
double r2959837 = atan2(r2959826, r2959836);
double r2959838 = r2959818 + r2959837;
return r2959838;
}



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
Taylor expanded around -inf 0.2
rmApplied distribute-lft-in0.2
Final simplification0.2
herbie shell --seed 2019151
(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))))))))))