\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 RR \cdot \log \left(e^{\cos^{-1} \left(\sin \phi_1 \cdot \sin \phi_2 + \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \cos \phi_1\right)\right)}\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r2733187 = phi1;
double r2733188 = sin(r2733187);
double r2733189 = phi2;
double r2733190 = sin(r2733189);
double r2733191 = r2733188 * r2733190;
double r2733192 = cos(r2733187);
double r2733193 = cos(r2733189);
double r2733194 = r2733192 * r2733193;
double r2733195 = lambda1;
double r2733196 = lambda2;
double r2733197 = r2733195 - r2733196;
double r2733198 = cos(r2733197);
double r2733199 = r2733194 * r2733198;
double r2733200 = r2733191 + r2733199;
double r2733201 = acos(r2733200);
double r2733202 = R;
double r2733203 = r2733201 * r2733202;
return r2733203;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r2733204 = R;
double r2733205 = phi1;
double r2733206 = sin(r2733205);
double r2733207 = phi2;
double r2733208 = sin(r2733207);
double r2733209 = r2733206 * r2733208;
double r2733210 = lambda1;
double r2733211 = sin(r2733210);
double r2733212 = lambda2;
double r2733213 = sin(r2733212);
double r2733214 = r2733211 * r2733213;
double r2733215 = cos(r2733212);
double r2733216 = cos(r2733210);
double r2733217 = r2733215 * r2733216;
double r2733218 = r2733214 + r2733217;
double r2733219 = cos(r2733207);
double r2733220 = cos(r2733205);
double r2733221 = r2733219 * r2733220;
double r2733222 = r2733218 * r2733221;
double r2733223 = r2733209 + r2733222;
double r2733224 = acos(r2733223);
double r2733225 = exp(r2733224);
double r2733226 = log(r2733225);
double r2733227 = r2733204 * r2733226;
return r2733227;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.4
rmApplied cos-diff3.7
Applied distribute-rgt-in3.7
Taylor expanded around -inf 3.7
Simplified3.7
rmApplied add-cbrt-cube3.8
rmApplied add-log-exp3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2019125
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))