\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\log \left(e^{\cos^{-1} \left(\left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \cos \phi_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)}\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1306841 = phi1;
double r1306842 = sin(r1306841);
double r1306843 = phi2;
double r1306844 = sin(r1306843);
double r1306845 = r1306842 * r1306844;
double r1306846 = cos(r1306841);
double r1306847 = cos(r1306843);
double r1306848 = r1306846 * r1306847;
double r1306849 = lambda1;
double r1306850 = lambda2;
double r1306851 = r1306849 - r1306850;
double r1306852 = cos(r1306851);
double r1306853 = r1306848 * r1306852;
double r1306854 = r1306845 + r1306853;
double r1306855 = acos(r1306854);
double r1306856 = R;
double r1306857 = r1306855 * r1306856;
return r1306857;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1306858 = lambda1;
double r1306859 = sin(r1306858);
double r1306860 = lambda2;
double r1306861 = sin(r1306860);
double r1306862 = r1306859 * r1306861;
double r1306863 = cos(r1306858);
double r1306864 = cos(r1306860);
double r1306865 = r1306863 * r1306864;
double r1306866 = r1306862 + r1306865;
double r1306867 = phi2;
double r1306868 = cos(r1306867);
double r1306869 = phi1;
double r1306870 = cos(r1306869);
double r1306871 = r1306868 * r1306870;
double r1306872 = r1306866 * r1306871;
double r1306873 = sin(r1306867);
double r1306874 = sin(r1306869);
double r1306875 = r1306873 * r1306874;
double r1306876 = r1306872 + r1306875;
double r1306877 = acos(r1306876);
double r1306878 = exp(r1306877);
double r1306879 = log(r1306878);
double r1306880 = R;
double r1306881 = r1306879 * r1306880;
return r1306881;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 17.0
rmApplied cos-diff3.7
rmApplied add-log-exp3.7
rmApplied *-commutative3.7
Final simplification3.7
herbie shell --seed 2019165
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))