\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(\log \left(e^{\sqrt[3]{{\left(\sin \phi_1\right)}^{3} \cdot {\left(\sin \phi_2\right)}^{3}}}\right) + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r22580 = phi1;
double r22581 = sin(r22580);
double r22582 = phi2;
double r22583 = sin(r22582);
double r22584 = r22581 * r22583;
double r22585 = cos(r22580);
double r22586 = cos(r22582);
double r22587 = r22585 * r22586;
double r22588 = lambda1;
double r22589 = lambda2;
double r22590 = r22588 - r22589;
double r22591 = cos(r22590);
double r22592 = r22587 * r22591;
double r22593 = r22584 + r22592;
double r22594 = acos(r22593);
double r22595 = R;
double r22596 = r22594 * r22595;
return r22596;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r22597 = phi1;
double r22598 = sin(r22597);
double r22599 = 3.0;
double r22600 = pow(r22598, r22599);
double r22601 = phi2;
double r22602 = sin(r22601);
double r22603 = pow(r22602, r22599);
double r22604 = r22600 * r22603;
double r22605 = cbrt(r22604);
double r22606 = exp(r22605);
double r22607 = log(r22606);
double r22608 = cos(r22597);
double r22609 = cos(r22601);
double r22610 = r22608 * r22609;
double r22611 = lambda1;
double r22612 = cos(r22611);
double r22613 = lambda2;
double r22614 = cos(r22613);
double r22615 = r22612 * r22614;
double r22616 = sin(r22611);
double r22617 = sin(r22613);
double r22618 = r22616 * r22617;
double r22619 = r22615 + r22618;
double r22620 = r22610 * r22619;
double r22621 = r22607 + r22620;
double r22622 = acos(r22621);
double r22623 = R;
double r22624 = r22622 * r22623;
return r22624;
}



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 cos-diff3.8
rmApplied add-cbrt-cube3.8
Applied add-cbrt-cube3.8
Applied cbrt-unprod3.8
Simplified3.8
rmApplied unpow-prod-down3.8
rmApplied add-log-exp3.8
Final simplification3.8
herbie shell --seed 2020024
(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))