\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 Re^{\log \left(\log \left(e^{\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 + \sin \lambda_1 \cdot \sin \lambda_2\right)\right)}\right)\right)} \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r23092 = phi1;
double r23093 = sin(r23092);
double r23094 = phi2;
double r23095 = sin(r23094);
double r23096 = r23093 * r23095;
double r23097 = cos(r23092);
double r23098 = cos(r23094);
double r23099 = r23097 * r23098;
double r23100 = lambda1;
double r23101 = lambda2;
double r23102 = r23100 - r23101;
double r23103 = cos(r23102);
double r23104 = r23099 * r23103;
double r23105 = r23096 + r23104;
double r23106 = acos(r23105);
double r23107 = R;
double r23108 = r23106 * r23107;
return r23108;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r23109 = phi1;
double r23110 = sin(r23109);
double r23111 = phi2;
double r23112 = sin(r23111);
double r23113 = r23110 * r23112;
double r23114 = cos(r23109);
double r23115 = cos(r23111);
double r23116 = r23114 * r23115;
double r23117 = lambda1;
double r23118 = cos(r23117);
double r23119 = lambda2;
double r23120 = cos(r23119);
double r23121 = r23118 * r23120;
double r23122 = sin(r23117);
double r23123 = sin(r23119);
double r23124 = r23122 * r23123;
double r23125 = r23121 + r23124;
double r23126 = r23116 * r23125;
double r23127 = r23113 + r23126;
double r23128 = acos(r23127);
double r23129 = exp(r23128);
double r23130 = log(r23129);
double r23131 = log(r23130);
double r23132 = exp(r23131);
double r23133 = R;
double r23134 = r23132 * r23133;
return r23134;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.9
rmApplied cos-diff3.9
rmApplied add-exp-log3.9
rmApplied add-log-exp3.9
Final simplification3.9
herbie shell --seed 2019352
(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))