\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{\cos delta \cdot \cos delta - \left(\sin \phi_1 \cdot \sin \left(\sqrt[3]{\log \left(e^{\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right) \cdot \left(\log \left(e^{\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right) \cdot \log \left(e^{\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right)\right)}\right)\right) \cdot \left(\sin \left(\log \left(e^{\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right)\right) \cdot \sin \phi_1\right)}{\cos delta + \sin \left(\log \left(e^{\sin^{-1} \left(\mathsf{fma}\left(\sin \phi_1, \cos delta, \left(\cos \phi_1 \cdot \sin delta\right) \cdot \cos theta\right)\right)}\right)\right) \cdot \sin \phi_1}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r2300481 = lambda1;
double r2300482 = theta;
double r2300483 = sin(r2300482);
double r2300484 = delta;
double r2300485 = sin(r2300484);
double r2300486 = r2300483 * r2300485;
double r2300487 = phi1;
double r2300488 = cos(r2300487);
double r2300489 = r2300486 * r2300488;
double r2300490 = cos(r2300484);
double r2300491 = sin(r2300487);
double r2300492 = r2300491 * r2300490;
double r2300493 = r2300488 * r2300485;
double r2300494 = cos(r2300482);
double r2300495 = r2300493 * r2300494;
double r2300496 = r2300492 + r2300495;
double r2300497 = asin(r2300496);
double r2300498 = sin(r2300497);
double r2300499 = r2300491 * r2300498;
double r2300500 = r2300490 - r2300499;
double r2300501 = atan2(r2300489, r2300500);
double r2300502 = r2300481 + r2300501;
return r2300502;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r2300503 = lambda1;
double r2300504 = phi1;
double r2300505 = cos(r2300504);
double r2300506 = delta;
double r2300507 = sin(r2300506);
double r2300508 = theta;
double r2300509 = sin(r2300508);
double r2300510 = r2300507 * r2300509;
double r2300511 = r2300505 * r2300510;
double r2300512 = cos(r2300506);
double r2300513 = r2300512 * r2300512;
double r2300514 = sin(r2300504);
double r2300515 = r2300505 * r2300507;
double r2300516 = cos(r2300508);
double r2300517 = r2300515 * r2300516;
double r2300518 = fma(r2300514, r2300512, r2300517);
double r2300519 = asin(r2300518);
double r2300520 = exp(r2300519);
double r2300521 = log(r2300520);
double r2300522 = r2300521 * r2300521;
double r2300523 = r2300521 * r2300522;
double r2300524 = cbrt(r2300523);
double r2300525 = sin(r2300524);
double r2300526 = r2300514 * r2300525;
double r2300527 = sin(r2300521);
double r2300528 = r2300527 * r2300514;
double r2300529 = r2300526 * r2300528;
double r2300530 = r2300513 - r2300529;
double r2300531 = r2300512 + r2300528;
double r2300532 = r2300530 / r2300531;
double r2300533 = atan2(r2300511, r2300532);
double r2300534 = r2300503 + r2300533;
return r2300534;
}



Bits error versus lambda1



Bits error versus phi1



Bits error versus phi2



Bits error versus delta



Bits error versus theta
Initial program 0.2
rmApplied add-log-exp0.2
Simplified0.2
rmApplied flip--0.2
rmApplied add-cbrt-cube0.2
Final simplification0.2
herbie shell --seed 2019153 +o rules:numerics
(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))))))))))