\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)}{\cos delta - \sin \phi_1 \cdot \sin \left(\sqrt[3]{\left(\left(\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right) \cdot \sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)\right) \cdot \left(\sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)} \cdot \sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}\right)\right) \cdot \sqrt[3]{\sin^{-1} \left(\cos delta \cdot \sin \phi_1 + \cos theta \cdot \left(\cos \phi_1 \cdot \sin delta\right)\right)}}\right)}double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4287411 = lambda1;
double r4287412 = theta;
double r4287413 = sin(r4287412);
double r4287414 = delta;
double r4287415 = sin(r4287414);
double r4287416 = r4287413 * r4287415;
double r4287417 = phi1;
double r4287418 = cos(r4287417);
double r4287419 = r4287416 * r4287418;
double r4287420 = cos(r4287414);
double r4287421 = sin(r4287417);
double r4287422 = r4287421 * r4287420;
double r4287423 = r4287418 * r4287415;
double r4287424 = cos(r4287412);
double r4287425 = r4287423 * r4287424;
double r4287426 = r4287422 + r4287425;
double r4287427 = asin(r4287426);
double r4287428 = sin(r4287427);
double r4287429 = r4287421 * r4287428;
double r4287430 = r4287420 - r4287429;
double r4287431 = atan2(r4287419, r4287430);
double r4287432 = r4287411 + r4287431;
return r4287432;
}
double f(double lambda1, double phi1, double __attribute__((unused)) phi2, double delta, double theta) {
double r4287433 = lambda1;
double r4287434 = phi1;
double r4287435 = cos(r4287434);
double r4287436 = delta;
double r4287437 = sin(r4287436);
double r4287438 = theta;
double r4287439 = sin(r4287438);
double r4287440 = r4287437 * r4287439;
double r4287441 = r4287435 * r4287440;
double r4287442 = cos(r4287436);
double r4287443 = sin(r4287434);
double r4287444 = r4287442 * r4287443;
double r4287445 = cos(r4287438);
double r4287446 = r4287435 * r4287437;
double r4287447 = r4287445 * r4287446;
double r4287448 = r4287444 + r4287447;
double r4287449 = asin(r4287448);
double r4287450 = r4287449 * r4287449;
double r4287451 = cbrt(r4287449);
double r4287452 = r4287451 * r4287451;
double r4287453 = r4287450 * r4287452;
double r4287454 = r4287453 * r4287451;
double r4287455 = cbrt(r4287454);
double r4287456 = sin(r4287455);
double r4287457 = r4287443 * r4287456;
double r4287458 = r4287442 - r4287457;
double r4287459 = atan2(r4287441, r4287458);
double r4287460 = r4287433 + r4287459;
return r4287460;
}



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-cbrt-cube0.2
rmApplied add-cube-cbrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019172
(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))))))))))