\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 RR \cdot \log \left(e^{\cos^{-1} \left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \sin \lambda_1\right) + \sin \phi_2 \cdot \sin \phi_1\right)}\right)double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1433867 = phi1;
double r1433868 = sin(r1433867);
double r1433869 = phi2;
double r1433870 = sin(r1433869);
double r1433871 = r1433868 * r1433870;
double r1433872 = cos(r1433867);
double r1433873 = cos(r1433869);
double r1433874 = r1433872 * r1433873;
double r1433875 = lambda1;
double r1433876 = lambda2;
double r1433877 = r1433875 - r1433876;
double r1433878 = cos(r1433877);
double r1433879 = r1433874 * r1433878;
double r1433880 = r1433871 + r1433879;
double r1433881 = acos(r1433880);
double r1433882 = R;
double r1433883 = r1433881 * r1433882;
return r1433883;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r1433884 = R;
double r1433885 = phi2;
double r1433886 = cos(r1433885);
double r1433887 = phi1;
double r1433888 = cos(r1433887);
double r1433889 = r1433886 * r1433888;
double r1433890 = lambda2;
double r1433891 = cos(r1433890);
double r1433892 = lambda1;
double r1433893 = cos(r1433892);
double r1433894 = r1433891 * r1433893;
double r1433895 = sin(r1433890);
double r1433896 = sin(r1433892);
double r1433897 = r1433895 * r1433896;
double r1433898 = r1433894 + r1433897;
double r1433899 = r1433889 * r1433898;
double r1433900 = sin(r1433885);
double r1433901 = sin(r1433887);
double r1433902 = r1433900 * r1433901;
double r1433903 = r1433899 + r1433902;
double r1433904 = acos(r1433903);
double r1433905 = exp(r1433904);
double r1433906 = log(r1433905);
double r1433907 = r1433884 * r1433906;
return r1433907;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.7
rmApplied cos-diff4.1
rmApplied add-log-exp4.1
rmApplied *-commutative4.1
Final simplification4.1
herbie shell --seed 2019158
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))