\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 \log \left(\frac{\sqrt{e^{\pi}}}{e^{\sin^{-1} \left(\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2\right) \cdot \cos \phi_1 + \sin \phi_1 \cdot \sin \phi_2\right)}}\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r2766595 = phi1;
double r2766596 = sin(r2766595);
double r2766597 = phi2;
double r2766598 = sin(r2766597);
double r2766599 = r2766596 * r2766598;
double r2766600 = cos(r2766595);
double r2766601 = cos(r2766597);
double r2766602 = r2766600 * r2766601;
double r2766603 = lambda1;
double r2766604 = lambda2;
double r2766605 = r2766603 - r2766604;
double r2766606 = cos(r2766605);
double r2766607 = r2766602 * r2766606;
double r2766608 = r2766599 + r2766607;
double r2766609 = acos(r2766608);
double r2766610 = R;
double r2766611 = r2766609 * r2766610;
return r2766611;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r2766612 = R;
double r2766613 = atan2(1.0, 0.0);
double r2766614 = exp(r2766613);
double r2766615 = sqrt(r2766614);
double r2766616 = lambda2;
double r2766617 = cos(r2766616);
double r2766618 = lambda1;
double r2766619 = cos(r2766618);
double r2766620 = r2766617 * r2766619;
double r2766621 = sin(r2766618);
double r2766622 = sin(r2766616);
double r2766623 = r2766621 * r2766622;
double r2766624 = r2766620 + r2766623;
double r2766625 = phi2;
double r2766626 = cos(r2766625);
double r2766627 = r2766624 * r2766626;
double r2766628 = phi1;
double r2766629 = cos(r2766628);
double r2766630 = r2766627 * r2766629;
double r2766631 = sin(r2766628);
double r2766632 = sin(r2766625);
double r2766633 = r2766631 * r2766632;
double r2766634 = r2766630 + r2766633;
double r2766635 = asin(r2766634);
double r2766636 = exp(r2766635);
double r2766637 = r2766615 / r2766636;
double r2766638 = log(r2766637);
double r2766639 = r2766612 * r2766638;
return r2766639;
}



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 cos-diff3.9
Taylor expanded around -inf 3.9
Simplified3.9
rmApplied add-log-exp3.9
rmApplied acos-asin4.0
Applied exp-diff4.0
Simplified4.0
Final simplification4.0
herbie shell --seed 2019128
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))