\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(\cos^{-1} \left(\left(\left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_1\right) \cdot \cos \phi_2 + \sin \phi_2 \cdot \sin \phi_1\right)\right)} \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1239967 = phi1;
double r1239968 = sin(r1239967);
double r1239969 = phi2;
double r1239970 = sin(r1239969);
double r1239971 = r1239968 * r1239970;
double r1239972 = cos(r1239967);
double r1239973 = cos(r1239969);
double r1239974 = r1239972 * r1239973;
double r1239975 = lambda1;
double r1239976 = lambda2;
double r1239977 = r1239975 - r1239976;
double r1239978 = cos(r1239977);
double r1239979 = r1239974 * r1239978;
double r1239980 = r1239971 + r1239979;
double r1239981 = acos(r1239980);
double r1239982 = R;
double r1239983 = r1239981 * r1239982;
return r1239983;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1239984 = lambda2;
double r1239985 = sin(r1239984);
double r1239986 = lambda1;
double r1239987 = sin(r1239986);
double r1239988 = r1239985 * r1239987;
double r1239989 = cos(r1239986);
double r1239990 = cos(r1239984);
double r1239991 = r1239989 * r1239990;
double r1239992 = r1239988 + r1239991;
double r1239993 = phi1;
double r1239994 = cos(r1239993);
double r1239995 = r1239992 * r1239994;
double r1239996 = phi2;
double r1239997 = cos(r1239996);
double r1239998 = r1239995 * r1239997;
double r1239999 = sin(r1239996);
double r1240000 = sin(r1239993);
double r1240001 = r1239999 * r1240000;
double r1240002 = r1239998 + r1240001;
double r1240003 = acos(r1240002);
double r1240004 = log(r1240003);
double r1240005 = exp(r1240004);
double r1240006 = R;
double r1240007 = r1240005 * r1240006;
return r1240007;
}



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 add-exp-log3.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))