\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 - \log \left({\left(e^{\sin \lambda_1}\right)}^{\left(\sin \left(-\lambda_2\right)\right)}\right)\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r26706 = phi1;
double r26707 = sin(r26706);
double r26708 = phi2;
double r26709 = sin(r26708);
double r26710 = r26707 * r26709;
double r26711 = cos(r26706);
double r26712 = cos(r26708);
double r26713 = r26711 * r26712;
double r26714 = lambda1;
double r26715 = lambda2;
double r26716 = r26714 - r26715;
double r26717 = cos(r26716);
double r26718 = r26713 * r26717;
double r26719 = r26710 + r26718;
double r26720 = acos(r26719);
double r26721 = R;
double r26722 = r26720 * r26721;
return r26722;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r26723 = phi1;
double r26724 = sin(r26723);
double r26725 = phi2;
double r26726 = sin(r26725);
double r26727 = r26724 * r26726;
double r26728 = cos(r26723);
double r26729 = cos(r26725);
double r26730 = r26728 * r26729;
double r26731 = lambda1;
double r26732 = cos(r26731);
double r26733 = lambda2;
double r26734 = cos(r26733);
double r26735 = r26732 * r26734;
double r26736 = sin(r26731);
double r26737 = exp(r26736);
double r26738 = -r26733;
double r26739 = sin(r26738);
double r26740 = pow(r26737, r26739);
double r26741 = log(r26740);
double r26742 = r26735 - r26741;
double r26743 = r26730 * r26742;
double r26744 = r26727 + r26743;
double r26745 = acos(r26744);
double r26746 = R;
double r26747 = r26745 * r26746;
return r26747;
}



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 sub-neg16.9
Applied cos-sum3.9
Simplified3.9
rmApplied add-log-exp3.9
rmApplied add-log-exp3.9
Simplified3.9
Final simplification3.9
herbie shell --seed 2019350
(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))