\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)}^{3} - \sqrt[3]{{\left({\left({\left(\sin \phi_1\right)}^{2} \cdot \cos delta + \sin \phi_1 \cdot \left(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right)}^{3}\right)}^{3}}}{\left({\left(\sin \phi_1\right)}^{2} \cdot \cos delta + \sin \phi_1 \cdot \left(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right) \cdot \left(\left({\left(\sin \phi_1\right)}^{2} \cdot \cos delta + \sin \phi_1 \cdot \left(\cos \phi_1 \cdot \left(\cos theta \cdot \sin delta\right)\right)\right) + \cos delta\right) + \cos delta \cdot \cos delta}}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r91320 = lambda1;
double r91321 = theta;
double r91322 = sin(r91321);
double r91323 = delta;
double r91324 = sin(r91323);
double r91325 = r91322 * r91324;
double r91326 = phi1;
double r91327 = cos(r91326);
double r91328 = r91325 * r91327;
double r91329 = cos(r91323);
double r91330 = sin(r91326);
double r91331 = r91330 * r91329;
double r91332 = r91327 * r91324;
double r91333 = cos(r91321);
double r91334 = r91332 * r91333;
double r91335 = r91331 + r91334;
double r91336 = asin(r91335);
double r91337 = sin(r91336);
double r91338 = r91330 * r91337;
double r91339 = r91329 - r91338;
double r91340 = atan2(r91328, r91339);
double r91341 = r91320 + r91340;
return r91341;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r91342 = lambda1;
double r91343 = theta;
double r91344 = sin(r91343);
double r91345 = delta;
double r91346 = sin(r91345);
double r91347 = r91344 * r91346;
double r91348 = phi1;
double r91349 = cos(r91348);
double r91350 = r91347 * r91349;
double r91351 = cos(r91345);
double r91352 = 3.0;
double r91353 = pow(r91351, r91352);
double r91354 = sin(r91348);
double r91355 = 2.0;
double r91356 = pow(r91354, r91355);
double r91357 = r91356 * r91351;
double r91358 = cos(r91343);
double r91359 = r91358 * r91346;
double r91360 = r91349 * r91359;
double r91361 = r91354 * r91360;
double r91362 = r91357 + r91361;
double r91363 = pow(r91362, r91352);
double r91364 = pow(r91363, r91352);
double r91365 = cbrt(r91364);
double r91366 = r91353 - r91365;
double r91367 = r91362 + r91351;
double r91368 = r91362 * r91367;
double r91369 = r91351 * r91351;
double r91370 = r91368 + r91369;
double r91371 = r91366 / r91370;
double r91372 = atan2(r91350, r91371);
double r91373 = r91342 + r91372;
return r91373;
}



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-cube-cbrt0.2
Taylor expanded around inf 0.2
Simplified0.2
rmApplied flip3--0.2
Simplified0.2
rmApplied add-cbrt-cube0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020034
(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))))))))))