\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 \left(\log \left(\sqrt{e^{\cos^{-1} \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)}}\right) + \log \left(\sqrt{e^{\cos^{-1} \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)}}\right)\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1527615 = phi1;
double r1527616 = sin(r1527615);
double r1527617 = phi2;
double r1527618 = sin(r1527617);
double r1527619 = r1527616 * r1527618;
double r1527620 = cos(r1527615);
double r1527621 = cos(r1527617);
double r1527622 = r1527620 * r1527621;
double r1527623 = lambda1;
double r1527624 = lambda2;
double r1527625 = r1527623 - r1527624;
double r1527626 = cos(r1527625);
double r1527627 = r1527622 * r1527626;
double r1527628 = r1527619 + r1527627;
double r1527629 = acos(r1527628);
double r1527630 = R;
double r1527631 = r1527629 * r1527630;
return r1527631;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1527632 = R;
double r1527633 = phi1;
double r1527634 = cos(r1527633);
double r1527635 = phi2;
double r1527636 = cos(r1527635);
double r1527637 = r1527634 * r1527636;
double r1527638 = lambda2;
double r1527639 = sin(r1527638);
double r1527640 = lambda1;
double r1527641 = sin(r1527640);
double r1527642 = r1527639 * r1527641;
double r1527643 = cos(r1527638);
double r1527644 = cos(r1527640);
double r1527645 = r1527643 * r1527644;
double r1527646 = r1527642 + r1527645;
double r1527647 = r1527637 * r1527646;
double r1527648 = sin(r1527635);
double r1527649 = sin(r1527633);
double r1527650 = r1527648 * r1527649;
double r1527651 = r1527647 + r1527650;
double r1527652 = acos(r1527651);
double r1527653 = exp(r1527652);
double r1527654 = sqrt(r1527653);
double r1527655 = log(r1527654);
double r1527656 = r1527655 + r1527655;
double r1527657 = r1527632 * r1527656;
return r1527657;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.8
rmApplied cos-diff3.8
rmApplied add-log-exp3.8
rmApplied add-sqr-sqrt4.0
Applied log-prod4.0
Final simplification4.0
herbie shell --seed 2019149
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))