\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(\log \left({\left(e^{\sin \phi_1}\right)}^{\left(\sin \phi_2\right)}\right) + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21783 = phi1;
double r21784 = sin(r21783);
double r21785 = phi2;
double r21786 = sin(r21785);
double r21787 = r21784 * r21786;
double r21788 = cos(r21783);
double r21789 = cos(r21785);
double r21790 = r21788 * r21789;
double r21791 = lambda1;
double r21792 = lambda2;
double r21793 = r21791 - r21792;
double r21794 = cos(r21793);
double r21795 = r21790 * r21794;
double r21796 = r21787 + r21795;
double r21797 = acos(r21796);
double r21798 = R;
double r21799 = r21797 * r21798;
return r21799;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21800 = phi1;
double r21801 = sin(r21800);
double r21802 = exp(r21801);
double r21803 = phi2;
double r21804 = sin(r21803);
double r21805 = pow(r21802, r21804);
double r21806 = log(r21805);
double r21807 = cos(r21800);
double r21808 = cos(r21803);
double r21809 = r21807 * r21808;
double r21810 = lambda1;
double r21811 = cos(r21810);
double r21812 = lambda2;
double r21813 = cos(r21812);
double r21814 = r21811 * r21813;
double r21815 = sin(r21810);
double r21816 = -r21812;
double r21817 = sin(r21816);
double r21818 = r21815 * r21817;
double r21819 = r21814 - r21818;
double r21820 = r21809 * r21819;
double r21821 = r21806 + r21820;
double r21822 = acos(r21821);
double r21823 = R;
double r21824 = r21822 * r21823;
return r21824;
}



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 sub-neg16.8
Applied cos-sum3.9
Simplified3.9
rmApplied add-cbrt-cube3.9
Applied add-cbrt-cube3.9
Applied cbrt-unprod3.9
Simplified3.9
rmApplied add-log-exp3.9
Simplified3.9
Final simplification3.9
herbie shell --seed 2019294
(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))