\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 - \left(\sqrt[3]{\sin \lambda_1} \cdot \sqrt[3]{\sin \lambda_1}\right) \cdot \left(\sqrt[3]{\sin \lambda_1} \cdot \sin \left(-\lambda_2\right)\right)\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r26539 = phi1;
double r26540 = sin(r26539);
double r26541 = phi2;
double r26542 = sin(r26541);
double r26543 = r26540 * r26542;
double r26544 = cos(r26539);
double r26545 = cos(r26541);
double r26546 = r26544 * r26545;
double r26547 = lambda1;
double r26548 = lambda2;
double r26549 = r26547 - r26548;
double r26550 = cos(r26549);
double r26551 = r26546 * r26550;
double r26552 = r26543 + r26551;
double r26553 = acos(r26552);
double r26554 = R;
double r26555 = r26553 * r26554;
return r26555;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r26556 = phi1;
double r26557 = sin(r26556);
double r26558 = phi2;
double r26559 = sin(r26558);
double r26560 = r26557 * r26559;
double r26561 = cos(r26556);
double r26562 = cos(r26558);
double r26563 = r26561 * r26562;
double r26564 = lambda1;
double r26565 = cos(r26564);
double r26566 = lambda2;
double r26567 = cos(r26566);
double r26568 = r26565 * r26567;
double r26569 = sin(r26564);
double r26570 = cbrt(r26569);
double r26571 = r26570 * r26570;
double r26572 = -r26566;
double r26573 = sin(r26572);
double r26574 = r26570 * r26573;
double r26575 = r26571 * r26574;
double r26576 = r26568 - r26575;
double r26577 = r26563 * r26576;
double r26578 = r26560 + r26577;
double r26579 = acos(r26578);
double r26580 = R;
double r26581 = r26579 * r26580;
return r26581;
}



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-sum4.0
Simplified4.0
rmApplied add-cube-cbrt4.0
Applied associate-*l*4.0
Final simplification4.0
herbie shell --seed 2020027
(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))