\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 R\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 + \left(\sin \lambda_1 \cdot \left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sin \lambda_2}\right)\right) \cdot \sqrt[3]{\sin \lambda_2}\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21876 = phi1;
double r21877 = sin(r21876);
double r21878 = phi2;
double r21879 = sin(r21878);
double r21880 = r21877 * r21879;
double r21881 = cos(r21876);
double r21882 = cos(r21878);
double r21883 = r21881 * r21882;
double r21884 = lambda1;
double r21885 = lambda2;
double r21886 = r21884 - r21885;
double r21887 = cos(r21886);
double r21888 = r21883 * r21887;
double r21889 = r21880 + r21888;
double r21890 = acos(r21889);
double r21891 = R;
double r21892 = r21890 * r21891;
return r21892;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21893 = phi1;
double r21894 = sin(r21893);
double r21895 = phi2;
double r21896 = sin(r21895);
double r21897 = r21894 * r21896;
double r21898 = cos(r21893);
double r21899 = cos(r21895);
double r21900 = r21898 * r21899;
double r21901 = lambda1;
double r21902 = cos(r21901);
double r21903 = lambda2;
double r21904 = cos(r21903);
double r21905 = r21902 * r21904;
double r21906 = sin(r21901);
double r21907 = sin(r21903);
double r21908 = cbrt(r21907);
double r21909 = r21908 * r21908;
double r21910 = r21906 * r21909;
double r21911 = r21910 * r21908;
double r21912 = r21905 + r21911;
double r21913 = r21900 * r21912;
double r21914 = r21897 + r21913;
double r21915 = acos(r21914);
double r21916 = R;
double r21917 = r21915 * r21916;
return r21917;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.5
rmApplied cos-diff3.6
rmApplied add-cube-cbrt3.6
Applied associate-*r*3.6
Final simplification3.6
herbie shell --seed 2019303
(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))