\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}{\frac{{\left(\cos delta\right)}^{2} - \left({\left(\sin delta\right)}^{2} \cdot \left({\left(\cos \phi_1\right)}^{2} \cdot \left({\left(\cos theta\right)}^{2} \cdot {\left(\sin \phi_1\right)}^{2}\right)\right) + \left(2 \cdot \left(\sin delta \cdot \left(\cos \phi_1 \cdot \left({\left(\sin \phi_1\right)}^{3} \cdot \left(\cos delta \cdot \cos theta\right)\right)\right)\right) + {\left(\sin \phi_1\right)}^{4} \cdot {\left(\cos delta\right)}^{2}\right)\right)}{\cos delta + \sin \phi_1 \cdot \sin \left(\left(\sqrt[3]{\sin^{-1} \left(\sin \phi_1 \cdot \cos delta + \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)} \cdot \sqrt[3]{\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^{-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 r79624 = lambda1;
double r79625 = theta;
double r79626 = sin(r79625);
double r79627 = delta;
double r79628 = sin(r79627);
double r79629 = r79626 * r79628;
double r79630 = phi1;
double r79631 = cos(r79630);
double r79632 = r79629 * r79631;
double r79633 = cos(r79627);
double r79634 = sin(r79630);
double r79635 = r79634 * r79633;
double r79636 = r79631 * r79628;
double r79637 = cos(r79625);
double r79638 = r79636 * r79637;
double r79639 = r79635 + r79638;
double r79640 = asin(r79639);
double r79641 = sin(r79640);
double r79642 = r79634 * r79641;
double r79643 = r79633 - r79642;
double r79644 = atan2(r79632, r79643);
double r79645 = r79624 + r79644;
return r79645;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r79646 = lambda1;
double r79647 = theta;
double r79648 = sin(r79647);
double r79649 = delta;
double r79650 = sin(r79649);
double r79651 = r79648 * r79650;
double r79652 = phi1;
double r79653 = cos(r79652);
double r79654 = r79651 * r79653;
double r79655 = cos(r79649);
double r79656 = 2.0;
double r79657 = pow(r79655, r79656);
double r79658 = pow(r79650, r79656);
double r79659 = pow(r79653, r79656);
double r79660 = cos(r79647);
double r79661 = pow(r79660, r79656);
double r79662 = sin(r79652);
double r79663 = pow(r79662, r79656);
double r79664 = r79661 * r79663;
double r79665 = r79659 * r79664;
double r79666 = r79658 * r79665;
double r79667 = 3.0;
double r79668 = pow(r79662, r79667);
double r79669 = r79655 * r79660;
double r79670 = r79668 * r79669;
double r79671 = r79653 * r79670;
double r79672 = r79650 * r79671;
double r79673 = r79656 * r79672;
double r79674 = 4.0;
double r79675 = pow(r79662, r79674);
double r79676 = r79675 * r79657;
double r79677 = r79673 + r79676;
double r79678 = r79666 + r79677;
double r79679 = r79657 - r79678;
double r79680 = r79662 * r79655;
double r79681 = r79653 * r79650;
double r79682 = r79681 * r79660;
double r79683 = r79680 + r79682;
double r79684 = asin(r79683);
double r79685 = cbrt(r79684);
double r79686 = r79685 * r79685;
double r79687 = r79686 * r79685;
double r79688 = sin(r79687);
double r79689 = r79662 * r79688;
double r79690 = r79655 + r79689;
double r79691 = r79679 / r79690;
double r79692 = atan2(r79654, r79691);
double r79693 = r79646 + r79692;
return r79693;
}



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 flip--0.2
Taylor expanded around inf 0.2
rmApplied add-cube-cbrt0.2
Final simplification0.2
herbie shell --seed 2020035
(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))))))))))