\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 - \frac{\left({\left(\cos \lambda_2 \cdot \cos \lambda_1\right)}^{3} - {\left(\sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right)}^{3}\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}{\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right) + \left(\log \left(e^{\sin \left(-\lambda_2\right) \cdot \sin \lambda_1}\right) \cdot \log \left(e^{\sin \left(-\lambda_2\right) \cdot \sin \lambda_1}\right) + \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \log \left(e^{\sin \left(-\lambda_2\right) \cdot \sin \lambda_1}\right)\right)}}double f(double lambda1, double lambda2, double phi1, double phi2) {
double r119360 = lambda1;
double r119361 = lambda2;
double r119362 = r119360 - r119361;
double r119363 = sin(r119362);
double r119364 = phi2;
double r119365 = cos(r119364);
double r119366 = r119363 * r119365;
double r119367 = phi1;
double r119368 = cos(r119367);
double r119369 = sin(r119364);
double r119370 = r119368 * r119369;
double r119371 = sin(r119367);
double r119372 = r119371 * r119365;
double r119373 = cos(r119362);
double r119374 = r119372 * r119373;
double r119375 = r119370 - r119374;
double r119376 = atan2(r119366, r119375);
return r119376;
}
double f(double lambda1, double lambda2, double phi1, double phi2) {
double r119377 = lambda1;
double r119378 = sin(r119377);
double r119379 = lambda2;
double r119380 = cos(r119379);
double r119381 = r119378 * r119380;
double r119382 = cos(r119377);
double r119383 = -r119379;
double r119384 = sin(r119383);
double r119385 = r119382 * r119384;
double r119386 = r119381 + r119385;
double r119387 = phi2;
double r119388 = cos(r119387);
double r119389 = r119386 * r119388;
double r119390 = phi1;
double r119391 = cos(r119390);
double r119392 = sin(r119387);
double r119393 = r119391 * r119392;
double r119394 = r119380 * r119382;
double r119395 = 3.0;
double r119396 = pow(r119394, r119395);
double r119397 = r119384 * r119378;
double r119398 = pow(r119397, r119395);
double r119399 = r119396 - r119398;
double r119400 = sin(r119390);
double r119401 = r119400 * r119388;
double r119402 = r119399 * r119401;
double r119403 = r119394 * r119394;
double r119404 = exp(r119397);
double r119405 = log(r119404);
double r119406 = r119405 * r119405;
double r119407 = r119394 * r119405;
double r119408 = r119406 + r119407;
double r119409 = r119403 + r119408;
double r119410 = r119402 / r119409;
double r119411 = r119393 - r119410;
double r119412 = atan2(r119389, r119411);
return r119412;
}



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 13.3
rmApplied sub-neg13.3
Applied sin-sum6.7
Simplified6.7
rmApplied sub-neg6.7
Applied cos-sum0.2
Simplified0.2
Simplified0.2
rmApplied add-log-exp0.2
rmApplied flip3--0.2
Applied associate-*r/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019199
(FPCore (lambda1 lambda2 phi1 phi2)
:name "Bearing on a great circle"
(atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))