\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\log \left(e^{\cos^{-1} \left(\left(\sqrt[3]{\sin \lambda_2} \cdot \left(\sin \lambda_1 \cdot \left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sin \lambda_2}\right)\right) + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right) + \sin \phi_2 \cdot \sin \phi_1\right)}\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r648552 = phi1;
double r648553 = sin(r648552);
double r648554 = phi2;
double r648555 = sin(r648554);
double r648556 = r648553 * r648555;
double r648557 = cos(r648552);
double r648558 = cos(r648554);
double r648559 = r648557 * r648558;
double r648560 = lambda1;
double r648561 = lambda2;
double r648562 = r648560 - r648561;
double r648563 = cos(r648562);
double r648564 = r648559 * r648563;
double r648565 = r648556 + r648564;
double r648566 = acos(r648565);
double r648567 = R;
double r648568 = r648566 * r648567;
return r648568;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r648569 = lambda2;
double r648570 = sin(r648569);
double r648571 = cbrt(r648570);
double r648572 = lambda1;
double r648573 = sin(r648572);
double r648574 = r648571 * r648571;
double r648575 = r648573 * r648574;
double r648576 = r648571 * r648575;
double r648577 = cos(r648569);
double r648578 = cos(r648572);
double r648579 = r648577 * r648578;
double r648580 = r648576 + r648579;
double r648581 = phi1;
double r648582 = cos(r648581);
double r648583 = phi2;
double r648584 = cos(r648583);
double r648585 = r648582 * r648584;
double r648586 = r648580 * r648585;
double r648587 = sin(r648583);
double r648588 = sin(r648581);
double r648589 = r648587 * r648588;
double r648590 = r648586 + r648589;
double r648591 = acos(r648590);
double r648592 = exp(r648591);
double r648593 = log(r648592);
double r648594 = R;
double r648595 = r648593 * r648594;
return r648595;
}



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.7
rmApplied add-log-exp3.7
rmApplied add-cube-cbrt3.8
Applied associate-*r*3.8
Final simplification3.8
herbie shell --seed 2019133
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))