\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 \cos^{-1} \left(\sin \phi_2 \cdot \sin \phi_1 + \frac{\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) + \left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}{\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right) - \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)}\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1131160 = phi1;
double r1131161 = sin(r1131160);
double r1131162 = phi2;
double r1131163 = sin(r1131162);
double r1131164 = r1131161 * r1131163;
double r1131165 = cos(r1131160);
double r1131166 = cos(r1131162);
double r1131167 = r1131165 * r1131166;
double r1131168 = lambda1;
double r1131169 = lambda2;
double r1131170 = r1131168 - r1131169;
double r1131171 = cos(r1131170);
double r1131172 = r1131167 * r1131171;
double r1131173 = r1131164 + r1131172;
double r1131174 = acos(r1131173);
double r1131175 = R;
double r1131176 = r1131174 * r1131175;
return r1131176;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1131177 = R;
double r1131178 = phi2;
double r1131179 = sin(r1131178);
double r1131180 = phi1;
double r1131181 = sin(r1131180);
double r1131182 = r1131179 * r1131181;
double r1131183 = cos(r1131180);
double r1131184 = cos(r1131178);
double r1131185 = r1131183 * r1131184;
double r1131186 = lambda1;
double r1131187 = cos(r1131186);
double r1131188 = lambda2;
double r1131189 = cos(r1131188);
double r1131190 = r1131187 * r1131189;
double r1131191 = r1131190 * r1131190;
double r1131192 = r1131190 * r1131191;
double r1131193 = sin(r1131186);
double r1131194 = sin(r1131188);
double r1131195 = r1131193 * r1131194;
double r1131196 = r1131195 * r1131195;
double r1131197 = r1131196 * r1131195;
double r1131198 = r1131192 + r1131197;
double r1131199 = r1131185 * r1131198;
double r1131200 = r1131195 * r1131190;
double r1131201 = r1131196 - r1131200;
double r1131202 = r1131191 + r1131201;
double r1131203 = r1131199 / r1131202;
double r1131204 = r1131182 + r1131203;
double r1131205 = acos(r1131204);
double r1131206 = r1131177 * r1131205;
return r1131206;
}



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 cos-diff3.6
rmApplied flip3-+3.7
Applied associate-*r/3.7
Simplified3.7
Final simplification3.7
herbie shell --seed 2019141
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))