\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(\left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \left(\sqrt[3]{\sin \lambda_1} \cdot \sin \lambda_2\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 r660658 = phi1;
double r660659 = sin(r660658);
double r660660 = phi2;
double r660661 = sin(r660660);
double r660662 = r660659 * r660661;
double r660663 = cos(r660658);
double r660664 = cos(r660660);
double r660665 = r660663 * r660664;
double r660666 = lambda1;
double r660667 = lambda2;
double r660668 = r660666 - r660667;
double r660669 = cos(r660668);
double r660670 = r660665 * r660669;
double r660671 = r660662 + r660670;
double r660672 = acos(r660671);
double r660673 = R;
double r660674 = r660672 * r660673;
return r660674;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r660675 = R;
double r660676 = lambda1;
double r660677 = sin(r660676);
double r660678 = cbrt(r660677);
double r660679 = r660678 * r660678;
double r660680 = lambda2;
double r660681 = sin(r660680);
double r660682 = r660678 * r660681;
double r660683 = r660679 * r660682;
double r660684 = cos(r660680);
double r660685 = cos(r660676);
double r660686 = r660684 * r660685;
double r660687 = r660683 + r660686;
double r660688 = phi1;
double r660689 = cos(r660688);
double r660690 = phi2;
double r660691 = cos(r660690);
double r660692 = r660689 * r660691;
double r660693 = r660687 * r660692;
double r660694 = sin(r660690);
double r660695 = sin(r660688);
double r660696 = r660694 * r660695;
double r660697 = r660693 + r660696;
double r660698 = acos(r660697);
double r660699 = r660675 * r660698;
return r660699;
}



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-diff3.7
rmApplied add-cube-cbrt3.8
Applied associate-*l*3.8
Final simplification3.8
herbie shell --seed 2019139
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))