\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)}{\frac{\sqrt[3]{\left(\left(\cos delta \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\cos delta - \sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right) \cdot \left(\cos delta \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right)\right)\right)}}{\sqrt[3]{\left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta\right) \cdot \left(\sin \phi_1 \cdot \sin \left(\sin^{-1} \left(\cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right) + \sin \phi_1 \cdot \cos delta\right)\right) + \cos delta\right)}}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4738621 = lambda1;
double r4738622 = theta;
double r4738623 = sin(r4738622);
double r4738624 = delta;
double r4738625 = sin(r4738624);
double r4738626 = r4738623 * r4738625;
double r4738627 = phi1;
double r4738628 = cos(r4738627);
double r4738629 = r4738626 * r4738628;
double r4738630 = cos(r4738624);
double r4738631 = sin(r4738627);
double r4738632 = r4738631 * r4738630;
double r4738633 = r4738628 * r4738625;
double r4738634 = cos(r4738622);
double r4738635 = r4738633 * r4738634;
double r4738636 = r4738632 + r4738635;
double r4738637 = asin(r4738636);
double r4738638 = sin(r4738637);
double r4738639 = r4738631 * r4738638;
double r4738640 = r4738630 - r4738639;
double r4738641 = atan2(r4738629, r4738640);
double r4738642 = r4738621 + r4738641;
return r4738642;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4738643 = lambda1;
double r4738644 = phi1;
double r4738645 = cos(r4738644);
double r4738646 = delta;
double r4738647 = sin(r4738646);
double r4738648 = theta;
double r4738649 = sin(r4738648);
double r4738650 = r4738647 * r4738649;
double r4738651 = r4738645 * r4738650;
double r4738652 = cos(r4738646);
double r4738653 = r4738652 * r4738652;
double r4738654 = sin(r4738644);
double r4738655 = cos(r4738648);
double r4738656 = r4738645 * r4738647;
double r4738657 = r4738655 * r4738656;
double r4738658 = r4738654 * r4738652;
double r4738659 = r4738657 + r4738658;
double r4738660 = asin(r4738659);
double r4738661 = sin(r4738660);
double r4738662 = r4738654 * r4738661;
double r4738663 = r4738662 * r4738662;
double r4738664 = r4738653 - r4738663;
double r4738665 = r4738652 - r4738662;
double r4738666 = r4738664 * r4738665;
double r4738667 = r4738666 * r4738664;
double r4738668 = cbrt(r4738667);
double r4738669 = r4738662 + r4738652;
double r4738670 = r4738669 * r4738669;
double r4738671 = cbrt(r4738670);
double r4738672 = r4738668 / r4738671;
double r4738673 = atan2(r4738651, r4738672);
double r4738674 = r4738643 + r4738673;
return r4738674;
}



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 flip--0.2
Applied flip--0.2
Applied associate-*l/0.2
Applied frac-times0.2
Applied cbrt-div0.2
Final simplification0.2
herbie shell --seed 2019168
(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))))))))))