\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(\cos \phi_2 \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \left(\left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \sin \lambda_2\right) + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1229838 = phi1;
double r1229839 = sin(r1229838);
double r1229840 = phi2;
double r1229841 = sin(r1229840);
double r1229842 = r1229839 * r1229841;
double r1229843 = cos(r1229838);
double r1229844 = cos(r1229840);
double r1229845 = r1229843 * r1229844;
double r1229846 = lambda1;
double r1229847 = lambda2;
double r1229848 = r1229846 - r1229847;
double r1229849 = cos(r1229848);
double r1229850 = r1229845 * r1229849;
double r1229851 = r1229842 + r1229850;
double r1229852 = acos(r1229851);
double r1229853 = R;
double r1229854 = r1229852 * r1229853;
return r1229854;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1229855 = R;
double r1229856 = phi2;
double r1229857 = cos(r1229856);
double r1229858 = lambda1;
double r1229859 = sin(r1229858);
double r1229860 = cbrt(r1229859);
double r1229861 = r1229860 * r1229860;
double r1229862 = lambda2;
double r1229863 = sin(r1229862);
double r1229864 = r1229861 * r1229863;
double r1229865 = r1229860 * r1229864;
double r1229866 = cos(r1229858);
double r1229867 = cos(r1229862);
double r1229868 = r1229866 * r1229867;
double r1229869 = r1229865 + r1229868;
double r1229870 = phi1;
double r1229871 = cos(r1229870);
double r1229872 = r1229869 * r1229871;
double r1229873 = r1229857 * r1229872;
double r1229874 = sin(r1229856);
double r1229875 = sin(r1229870);
double r1229876 = r1229874 * r1229875;
double r1229877 = r1229873 + r1229876;
double r1229878 = acos(r1229877);
double r1229879 = r1229855 * r1229878;
return r1229879;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.7
rmApplied cos-diff3.8
rmApplied *-un-lft-identity3.8
Applied associate-*r*3.8
Simplified3.8
rmApplied add-cube-cbrt3.8
Applied associate-*r*3.8
Final simplification3.8
herbie shell --seed 2019172
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))