\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 + \sqrt[3]{{\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}}\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r22155 = phi1;
double r22156 = sin(r22155);
double r22157 = phi2;
double r22158 = sin(r22157);
double r22159 = r22156 * r22158;
double r22160 = cos(r22155);
double r22161 = cos(r22157);
double r22162 = r22160 * r22161;
double r22163 = lambda1;
double r22164 = lambda2;
double r22165 = r22163 - r22164;
double r22166 = cos(r22165);
double r22167 = r22162 * r22166;
double r22168 = r22159 + r22167;
double r22169 = acos(r22168);
double r22170 = R;
double r22171 = r22169 * r22170;
return r22171;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r22172 = phi1;
double r22173 = sin(r22172);
double r22174 = phi2;
double r22175 = sin(r22174);
double r22176 = r22173 * r22175;
double r22177 = cos(r22172);
double r22178 = cos(r22174);
double r22179 = r22177 * r22178;
double r22180 = lambda1;
double r22181 = cos(r22180);
double r22182 = lambda2;
double r22183 = cos(r22182);
double r22184 = r22181 * r22183;
double r22185 = sin(r22180);
double r22186 = sin(r22182);
double r22187 = r22185 * r22186;
double r22188 = 3.0;
double r22189 = pow(r22187, r22188);
double r22190 = cbrt(r22189);
double r22191 = r22184 + r22190;
double r22192 = r22179 * r22191;
double r22193 = r22176 + r22192;
double r22194 = acos(r22193);
double r22195 = R;
double r22196 = r22194 * r22195;
return r22196;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.5
rmApplied cos-diff3.8
rmApplied add-cbrt-cube3.8
Applied add-cbrt-cube3.8
Applied cbrt-unprod3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2019323
(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))