\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 + \sqrt[3]{{\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}}\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r20701 = phi1;
double r20702 = sin(r20701);
double r20703 = phi2;
double r20704 = sin(r20703);
double r20705 = r20702 * r20704;
double r20706 = cos(r20701);
double r20707 = cos(r20703);
double r20708 = r20706 * r20707;
double r20709 = lambda1;
double r20710 = lambda2;
double r20711 = r20709 - r20710;
double r20712 = cos(r20711);
double r20713 = r20708 * r20712;
double r20714 = r20705 + r20713;
double r20715 = acos(r20714);
double r20716 = R;
double r20717 = r20715 * r20716;
return r20717;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r20718 = phi1;
double r20719 = sin(r20718);
double r20720 = phi2;
double r20721 = sin(r20720);
double r20722 = r20719 * r20721;
double r20723 = cos(r20718);
double r20724 = cos(r20720);
double r20725 = r20723 * r20724;
double r20726 = lambda1;
double r20727 = cos(r20726);
double r20728 = lambda2;
double r20729 = cos(r20728);
double r20730 = r20727 * r20729;
double r20731 = sin(r20726);
double r20732 = sin(r20728);
double r20733 = r20731 * r20732;
double r20734 = 3.0;
double r20735 = pow(r20733, r20734);
double r20736 = cbrt(r20735);
double r20737 = r20730 + r20736;
double r20738 = r20725 * r20737;
double r20739 = r20722 + r20738;
double r20740 = acos(r20739);
double r20741 = R;
double r20742 = r20740 * r20741;
return r20742;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 17.2
rmApplied cos-diff4.1
rmApplied add-cbrt-cube4.1
Applied add-cbrt-cube4.1
Applied cbrt-unprod4.1
Simplified4.1
Final simplification4.1
herbie shell --seed 2019209
(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))