\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(\left(\sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \left(\sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_2 \cdot \sin \lambda_1}\right) + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right) + \sin \phi_2 \cdot \sin \phi_1\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r490679 = phi1;
double r490680 = sin(r490679);
double r490681 = phi2;
double r490682 = sin(r490681);
double r490683 = r490680 * r490682;
double r490684 = cos(r490679);
double r490685 = cos(r490681);
double r490686 = r490684 * r490685;
double r490687 = lambda1;
double r490688 = lambda2;
double r490689 = r490687 - r490688;
double r490690 = cos(r490689);
double r490691 = r490686 * r490690;
double r490692 = r490683 + r490691;
double r490693 = acos(r490692);
double r490694 = R;
double r490695 = r490693 * r490694;
return r490695;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r490696 = R;
double r490697 = lambda2;
double r490698 = sin(r490697);
double r490699 = lambda1;
double r490700 = sin(r490699);
double r490701 = r490698 * r490700;
double r490702 = cbrt(r490701);
double r490703 = r490702 * r490702;
double r490704 = r490702 * r490703;
double r490705 = cos(r490697);
double r490706 = cos(r490699);
double r490707 = r490705 * r490706;
double r490708 = r490704 + r490707;
double r490709 = phi1;
double r490710 = cos(r490709);
double r490711 = phi2;
double r490712 = cos(r490711);
double r490713 = r490710 * r490712;
double r490714 = r490708 * r490713;
double r490715 = sin(r490711);
double r490716 = sin(r490709);
double r490717 = r490715 * r490716;
double r490718 = r490714 + r490717;
double r490719 = acos(r490718);
double r490720 = r490696 * r490719;
return r490720;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.9
rmApplied cos-diff4.0
rmApplied add-cube-cbrt4.1
Final simplification4.1
herbie shell --seed 2019154
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))