\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_2 \cdot \sin \phi_1 + \left(\cos \phi_2 \cdot \left(\cos \phi_1 \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}\right) + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 \cdot \cos \phi_2\right)\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1346132 = phi1;
double r1346133 = sin(r1346132);
double r1346134 = phi2;
double r1346135 = sin(r1346134);
double r1346136 = r1346133 * r1346135;
double r1346137 = cos(r1346132);
double r1346138 = cos(r1346134);
double r1346139 = r1346137 * r1346138;
double r1346140 = lambda1;
double r1346141 = lambda2;
double r1346142 = r1346140 - r1346141;
double r1346143 = cos(r1346142);
double r1346144 = r1346139 * r1346143;
double r1346145 = r1346136 + r1346144;
double r1346146 = acos(r1346145);
double r1346147 = R;
double r1346148 = r1346146 * r1346147;
return r1346148;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1346149 = phi2;
double r1346150 = sin(r1346149);
double r1346151 = phi1;
double r1346152 = sin(r1346151);
double r1346153 = r1346150 * r1346152;
double r1346154 = cos(r1346149);
double r1346155 = cos(r1346151);
double r1346156 = lambda2;
double r1346157 = sin(r1346156);
double r1346158 = lambda1;
double r1346159 = sin(r1346158);
double r1346160 = r1346157 * r1346159;
double r1346161 = r1346160 * r1346160;
double r1346162 = r1346160 * r1346161;
double r1346163 = cbrt(r1346162);
double r1346164 = r1346155 * r1346163;
double r1346165 = r1346154 * r1346164;
double r1346166 = cos(r1346158);
double r1346167 = cos(r1346156);
double r1346168 = r1346166 * r1346167;
double r1346169 = r1346155 * r1346154;
double r1346170 = r1346168 * r1346169;
double r1346171 = r1346165 + r1346170;
double r1346172 = r1346153 + r1346171;
double r1346173 = acos(r1346172);
double r1346174 = R;
double r1346175 = r1346173 * r1346174;
return r1346175;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 17.0
rmApplied cos-diff3.7
Applied distribute-rgt-in3.7
rmApplied associate-*r*3.7
rmApplied add-cbrt-cube3.7
Applied add-cbrt-cube3.7
Applied cbrt-unprod3.7
Simplified3.7
Final simplification3.7
herbie shell --seed 2019168
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))