\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)\right) \cdot Re^{\log \left({\left(\log \left(e^{\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right)}\right)\right)}^{1}\right)} \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r24223 = phi1;
double r24224 = sin(r24223);
double r24225 = phi2;
double r24226 = sin(r24225);
double r24227 = r24224 * r24226;
double r24228 = cos(r24223);
double r24229 = cos(r24225);
double r24230 = r24228 * r24229;
double r24231 = lambda1;
double r24232 = lambda2;
double r24233 = r24231 - r24232;
double r24234 = cos(r24233);
double r24235 = r24230 * r24234;
double r24236 = r24227 + r24235;
double r24237 = acos(r24236);
double r24238 = R;
double r24239 = r24237 * r24238;
return r24239;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r24240 = phi1;
double r24241 = sin(r24240);
double r24242 = phi2;
double r24243 = sin(r24242);
double r24244 = r24241 * r24243;
double r24245 = cos(r24240);
double r24246 = cos(r24242);
double r24247 = r24245 * r24246;
double r24248 = lambda1;
double r24249 = cos(r24248);
double r24250 = lambda2;
double r24251 = cos(r24250);
double r24252 = r24249 * r24251;
double r24253 = sin(r24248);
double r24254 = -r24250;
double r24255 = sin(r24254);
double r24256 = r24253 * r24255;
double r24257 = r24252 - r24256;
double r24258 = r24247 * r24257;
double r24259 = r24244 + r24258;
double r24260 = acos(r24259);
double r24261 = exp(r24260);
double r24262 = log(r24261);
double r24263 = 1.0;
double r24264 = pow(r24262, r24263);
double r24265 = log(r24264);
double r24266 = exp(r24265);
double r24267 = R;
double r24268 = r24266 * r24267;
return r24268;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.8
rmApplied sub-neg16.8
Applied cos-sum3.5
Simplified3.5
rmApplied add-exp-log3.5
rmApplied add-log-exp3.5
rmApplied pow13.5
Final simplification3.5
herbie shell --seed 2020025
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
:precision binary64
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))