\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(\log \left({\left(e^{\sin \phi_1}\right)}^{\left(\sin \phi_2\right)}\right) + \left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21134 = phi1;
double r21135 = sin(r21134);
double r21136 = phi2;
double r21137 = sin(r21136);
double r21138 = r21135 * r21137;
double r21139 = cos(r21134);
double r21140 = cos(r21136);
double r21141 = r21139 * r21140;
double r21142 = lambda1;
double r21143 = lambda2;
double r21144 = r21142 - r21143;
double r21145 = cos(r21144);
double r21146 = r21141 * r21145;
double r21147 = r21138 + r21146;
double r21148 = acos(r21147);
double r21149 = R;
double r21150 = r21148 * r21149;
return r21150;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r21151 = phi1;
double r21152 = sin(r21151);
double r21153 = exp(r21152);
double r21154 = phi2;
double r21155 = sin(r21154);
double r21156 = pow(r21153, r21155);
double r21157 = log(r21156);
double r21158 = cos(r21151);
double r21159 = cos(r21154);
double r21160 = r21158 * r21159;
double r21161 = lambda1;
double r21162 = cos(r21161);
double r21163 = lambda2;
double r21164 = cos(r21163);
double r21165 = r21162 * r21164;
double r21166 = sin(r21161);
double r21167 = -r21163;
double r21168 = sin(r21167);
double r21169 = r21166 * r21168;
double r21170 = r21165 - r21169;
double r21171 = r21160 * r21170;
double r21172 = r21157 + r21171;
double r21173 = acos(r21172);
double r21174 = R;
double r21175 = r21173 * r21174;
return r21175;
}



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 sub-neg16.9
Applied cos-sum3.8
Simplified3.8
rmApplied add-log-exp3.8
rmApplied add-log-exp3.8
Simplified3.8
Final simplification3.8
herbie shell --seed 2019305
(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))