\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 r23649 = phi1;
double r23650 = sin(r23649);
double r23651 = phi2;
double r23652 = sin(r23651);
double r23653 = r23650 * r23652;
double r23654 = cos(r23649);
double r23655 = cos(r23651);
double r23656 = r23654 * r23655;
double r23657 = lambda1;
double r23658 = lambda2;
double r23659 = r23657 - r23658;
double r23660 = cos(r23659);
double r23661 = r23656 * r23660;
double r23662 = r23653 + r23661;
double r23663 = acos(r23662);
double r23664 = R;
double r23665 = r23663 * r23664;
return r23665;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r23666 = phi1;
double r23667 = sin(r23666);
double r23668 = phi2;
double r23669 = sin(r23668);
double r23670 = r23667 * r23669;
double r23671 = 3.0;
double r23672 = pow(r23670, r23671);
double r23673 = cbrt(r23672);
double r23674 = cos(r23666);
double r23675 = cos(r23668);
double r23676 = r23674 * r23675;
double r23677 = lambda1;
double r23678 = cos(r23677);
double r23679 = lambda2;
double r23680 = cos(r23679);
double r23681 = r23678 * r23680;
double r23682 = sin(r23677);
double r23683 = -r23679;
double r23684 = sin(r23683);
double r23685 = r23682 * r23684;
double r23686 = r23681 - r23685;
double r23687 = r23676 * r23686;
double r23688 = r23673 + r23687;
double r23689 = acos(r23688);
double r23690 = R;
double r23691 = r23689 * r23690;
return r23691;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 17.1
rmApplied sub-neg17.1
Applied cos-sum3.8
Simplified3.8
rmApplied add-cbrt-cube3.8
Applied add-cbrt-cube3.9
Applied cbrt-unprod3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2020064
(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))