\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 r21811 = phi1;
double r21812 = sin(r21811);
double r21813 = phi2;
double r21814 = sin(r21813);
double r21815 = r21812 * r21814;
double r21816 = cos(r21811);
double r21817 = cos(r21813);
double r21818 = r21816 * r21817;
double r21819 = lambda1;
double r21820 = lambda2;
double r21821 = r21819 - r21820;
double r21822 = cos(r21821);
double r21823 = r21818 * r21822;
double r21824 = r21815 + r21823;
double r21825 = acos(r21824);
double r21826 = R;
double r21827 = r21825 * r21826;
return r21827;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21828 = phi1;
double r21829 = sin(r21828);
double r21830 = phi2;
double r21831 = sin(r21830);
double r21832 = r21829 * r21831;
double r21833 = cos(r21828);
double r21834 = cos(r21830);
double r21835 = r21833 * r21834;
double r21836 = lambda1;
double r21837 = cos(r21836);
double r21838 = lambda2;
double r21839 = cos(r21838);
double r21840 = r21837 * r21839;
double r21841 = sin(r21836);
double r21842 = sin(r21838);
double r21843 = cbrt(r21842);
double r21844 = r21843 * r21843;
double r21845 = r21841 * r21844;
double r21846 = r21845 * r21843;
double r21847 = r21840 + r21846;
double r21848 = r21835 * r21847;
double r21849 = r21832 + r21848;
double r21850 = acos(r21849);
double r21851 = R;
double r21852 = r21850 * r21851;
return r21852;
}



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))