\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sqrt[3]{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)} \cdot \sqrt[3]{\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)}\right)\right) \cdot \frac{\sqrt[3]{\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) - \left(\sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}}{\sqrt[3]{\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)}}}double f(double lambda1, double lambda2, double phi1, double phi2) {
double r114321 = lambda1;
double r114322 = lambda2;
double r114323 = r114321 - r114322;
double r114324 = sin(r114323);
double r114325 = phi2;
double r114326 = cos(r114325);
double r114327 = r114324 * r114326;
double r114328 = phi1;
double r114329 = cos(r114328);
double r114330 = sin(r114325);
double r114331 = r114329 * r114330;
double r114332 = sin(r114328);
double r114333 = r114332 * r114326;
double r114334 = cos(r114323);
double r114335 = r114333 * r114334;
double r114336 = r114331 - r114335;
double r114337 = atan2(r114327, r114336);
return r114337;
}
double f(double lambda1, double lambda2, double phi1, double phi2) {
double r114338 = lambda1;
double r114339 = sin(r114338);
double r114340 = lambda2;
double r114341 = cos(r114340);
double r114342 = r114339 * r114341;
double r114343 = cos(r114338);
double r114344 = -r114340;
double r114345 = sin(r114344);
double r114346 = r114343 * r114345;
double r114347 = r114342 + r114346;
double r114348 = phi2;
double r114349 = cos(r114348);
double r114350 = r114347 * r114349;
double r114351 = phi1;
double r114352 = cos(r114351);
double r114353 = sin(r114348);
double r114354 = r114352 * r114353;
double r114355 = sin(r114351);
double r114356 = r114355 * r114349;
double r114357 = r114343 * r114341;
double r114358 = r114339 * r114345;
double r114359 = r114357 - r114358;
double r114360 = cbrt(r114359);
double r114361 = r114360 * r114360;
double r114362 = r114356 * r114361;
double r114363 = r114357 * r114357;
double r114364 = r114358 * r114358;
double r114365 = r114363 - r114364;
double r114366 = cbrt(r114365);
double r114367 = r114357 + r114358;
double r114368 = cbrt(r114367);
double r114369 = r114366 / r114368;
double r114370 = r114362 * r114369;
double r114371 = r114354 - r114370;
double r114372 = atan2(r114350, r114371);
return r114372;
}



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 13.1
rmApplied sub-neg13.1
Applied sin-sum6.7
Simplified6.7
rmApplied sub-neg6.7
Applied cos-sum0.2
Simplified0.2
rmApplied add-cube-cbrt0.3
Applied associate-*r*0.3
rmApplied flip--0.3
Applied cbrt-div0.2
Final simplification0.2
herbie shell --seed 2020021
(FPCore (lambda1 lambda2 phi1 phi2)
:name "Bearing on a great circle"
:precision binary64
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))