\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)}\tan^{-1}_* \frac{\cos \phi_1 \cdot \left(\sin delta \cdot \sin theta\right)}{\frac{{\left(\cos delta\right)}^{3} - {\left(\sin \left(\sqrt[3]{\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right) \cdot \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right) \cdot \log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right)}\right) \cdot \sin \phi_1\right)}^{3}}{\cos delta \cdot \cos delta + \left(\cos delta \cdot \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right) + \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right) \cdot \left(\sin \left(\log \left(e^{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sin \phi_1\right)\right)}} + \lambda_1double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1718455 = lambda1;
double r1718456 = theta;
double r1718457 = sin(r1718456);
double r1718458 = delta;
double r1718459 = sin(r1718458);
double r1718460 = r1718457 * r1718459;
double r1718461 = phi1;
double r1718462 = cos(r1718461);
double r1718463 = r1718460 * r1718462;
double r1718464 = cos(r1718458);
double r1718465 = sin(r1718461);
double r1718466 = r1718465 * r1718464;
double r1718467 = r1718462 * r1718459;
double r1718468 = cos(r1718456);
double r1718469 = r1718467 * r1718468;
double r1718470 = r1718466 + r1718469;
double r1718471 = asin(r1718470);
double r1718472 = sin(r1718471);
double r1718473 = r1718465 * r1718472;
double r1718474 = r1718464 - r1718473;
double r1718475 = atan2(r1718463, r1718474);
double r1718476 = r1718455 + r1718475;
return r1718476;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r1718477 = phi1;
double r1718478 = cos(r1718477);
double r1718479 = delta;
double r1718480 = sin(r1718479);
double r1718481 = theta;
double r1718482 = sin(r1718481);
double r1718483 = r1718480 * r1718482;
double r1718484 = r1718478 * r1718483;
double r1718485 = cos(r1718479);
double r1718486 = 3.0;
double r1718487 = pow(r1718485, r1718486);
double r1718488 = sin(r1718477);
double r1718489 = r1718485 * r1718488;
double r1718490 = cos(r1718481);
double r1718491 = r1718478 * r1718480;
double r1718492 = r1718490 * r1718491;
double r1718493 = r1718489 + r1718492;
double r1718494 = asin(r1718493);
double r1718495 = exp(r1718494);
double r1718496 = log(r1718495);
double r1718497 = r1718496 * r1718496;
double r1718498 = r1718496 * r1718497;
double r1718499 = cbrt(r1718498);
double r1718500 = sin(r1718499);
double r1718501 = r1718500 * r1718488;
double r1718502 = pow(r1718501, r1718486);
double r1718503 = r1718487 - r1718502;
double r1718504 = r1718485 * r1718485;
double r1718505 = sin(r1718496);
double r1718506 = r1718505 * r1718488;
double r1718507 = r1718485 * r1718506;
double r1718508 = r1718506 * r1718506;
double r1718509 = r1718507 + r1718508;
double r1718510 = r1718504 + r1718509;
double r1718511 = r1718503 / r1718510;
double r1718512 = atan2(r1718484, r1718511);
double r1718513 = lambda1;
double r1718514 = r1718512 + r1718513;
return r1718514;
}



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-log-exp0.2
rmApplied flip3--0.2
rmApplied add-cbrt-cube0.2
Final simplification0.2
herbie shell --seed 2019153
(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))))))))))