\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(\sqrt[3]{{\left(\sin \phi_1 \cdot \sin \phi_2\right)}^{3}} + \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 r20632 = phi1;
double r20633 = sin(r20632);
double r20634 = phi2;
double r20635 = sin(r20634);
double r20636 = r20633 * r20635;
double r20637 = cos(r20632);
double r20638 = cos(r20634);
double r20639 = r20637 * r20638;
double r20640 = lambda1;
double r20641 = lambda2;
double r20642 = r20640 - r20641;
double r20643 = cos(r20642);
double r20644 = r20639 * r20643;
double r20645 = r20636 + r20644;
double r20646 = acos(r20645);
double r20647 = R;
double r20648 = r20646 * r20647;
return r20648;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r20649 = phi1;
double r20650 = sin(r20649);
double r20651 = phi2;
double r20652 = sin(r20651);
double r20653 = r20650 * r20652;
double r20654 = 3.0;
double r20655 = pow(r20653, r20654);
double r20656 = cbrt(r20655);
double r20657 = cos(r20649);
double r20658 = cos(r20651);
double r20659 = r20657 * r20658;
double r20660 = lambda1;
double r20661 = cos(r20660);
double r20662 = lambda2;
double r20663 = cos(r20662);
double r20664 = r20661 * r20663;
double r20665 = sin(r20660);
double r20666 = -r20662;
double r20667 = sin(r20666);
double r20668 = r20665 * r20667;
double r20669 = r20664 - r20668;
double r20670 = r20659 * r20669;
double r20671 = r20656 + r20670;
double r20672 = acos(r20671);
double r20673 = R;
double r20674 = r20672 * r20673;
return r20674;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.6
rmApplied sub-neg16.6
Applied cos-sum3.8
Simplified3.8
rmApplied add-cbrt-cube3.8
Applied add-cbrt-cube3.8
Applied cbrt-unprod3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2019291
(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))