\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) + \sqrt[3]{{\left({\left(\sin \phi_1\right)}^{4}\right)}^{3}} \cdot {\left(\cos delta\right)}^{2}\right)\right)}{\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)}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r110601 = lambda1;
double r110602 = theta;
double r110603 = sin(r110602);
double r110604 = delta;
double r110605 = sin(r110604);
double r110606 = r110603 * r110605;
double r110607 = phi1;
double r110608 = cos(r110607);
double r110609 = r110606 * r110608;
double r110610 = cos(r110604);
double r110611 = sin(r110607);
double r110612 = r110611 * r110610;
double r110613 = r110608 * r110605;
double r110614 = cos(r110602);
double r110615 = r110613 * r110614;
double r110616 = r110612 + r110615;
double r110617 = asin(r110616);
double r110618 = sin(r110617);
double r110619 = r110611 * r110618;
double r110620 = r110610 - r110619;
double r110621 = atan2(r110609, r110620);
double r110622 = r110601 + r110621;
return r110622;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r110623 = lambda1;
double r110624 = theta;
double r110625 = sin(r110624);
double r110626 = delta;
double r110627 = sin(r110626);
double r110628 = r110625 * r110627;
double r110629 = phi1;
double r110630 = cos(r110629);
double r110631 = r110628 * r110630;
double r110632 = cos(r110626);
double r110633 = 2.0;
double r110634 = pow(r110632, r110633);
double r110635 = pow(r110627, r110633);
double r110636 = pow(r110630, r110633);
double r110637 = cos(r110624);
double r110638 = pow(r110637, r110633);
double r110639 = sin(r110629);
double r110640 = pow(r110639, r110633);
double r110641 = r110638 * r110640;
double r110642 = r110636 * r110641;
double r110643 = r110635 * r110642;
double r110644 = 3.0;
double r110645 = pow(r110639, r110644);
double r110646 = r110632 * r110637;
double r110647 = r110645 * r110646;
double r110648 = r110630 * r110647;
double r110649 = r110627 * r110648;
double r110650 = r110633 * r110649;
double r110651 = 4.0;
double r110652 = pow(r110639, r110651);
double r110653 = pow(r110652, r110644);
double r110654 = cbrt(r110653);
double r110655 = r110654 * r110634;
double r110656 = r110650 + r110655;
double r110657 = r110643 + r110656;
double r110658 = r110634 - r110657;
double r110659 = r110639 * r110632;
double r110660 = r110630 * r110627;
double r110661 = r110660 * r110637;
double r110662 = r110659 + r110661;
double r110663 = asin(r110662);
double r110664 = sin(r110663);
double r110665 = r110639 * r110664;
double r110666 = r110632 + r110665;
double r110667 = r110658 / r110666;
double r110668 = atan2(r110631, r110667);
double r110669 = r110623 + r110668;
return r110669;
}



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-cbrt-cube0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020064
(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))))))))))