\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(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \log \left(e^{\sin \lambda_2 \cdot \sin \lambda_1}\right)\right) + \sin \phi_2 \cdot \sin \phi_1\right) \cdot Rdouble f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r468965 = phi1;
double r468966 = sin(r468965);
double r468967 = phi2;
double r468968 = sin(r468967);
double r468969 = r468966 * r468968;
double r468970 = cos(r468965);
double r468971 = cos(r468967);
double r468972 = r468970 * r468971;
double r468973 = lambda1;
double r468974 = lambda2;
double r468975 = r468973 - r468974;
double r468976 = cos(r468975);
double r468977 = r468972 * r468976;
double r468978 = r468969 + r468977;
double r468979 = acos(r468978);
double r468980 = R;
double r468981 = r468979 * r468980;
return r468981;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r468982 = phi1;
double r468983 = cos(r468982);
double r468984 = phi2;
double r468985 = cos(r468984);
double r468986 = r468983 * r468985;
double r468987 = lambda2;
double r468988 = cos(r468987);
double r468989 = lambda1;
double r468990 = cos(r468989);
double r468991 = r468988 * r468990;
double r468992 = sin(r468987);
double r468993 = sin(r468989);
double r468994 = r468992 * r468993;
double r468995 = exp(r468994);
double r468996 = log(r468995);
double r468997 = r468991 + r468996;
double r468998 = r468986 * r468997;
double r468999 = sin(r468984);
double r469000 = sin(r468982);
double r469001 = r468999 * r469000;
double r469002 = r468998 + r469001;
double r469003 = acos(r469002);
double r469004 = R;
double r469005 = r469003 * r469004;
return r469005;
}



Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Results
Initial program 16.4
rmApplied cos-diff3.7
rmApplied add-log-exp3.8
Final simplification3.8
herbie shell --seed 2019142
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Spherical law of cosines"
(* (acos (+ (* (sin phi1) (sin phi2)) (* (* (cos phi1) (cos phi2)) (cos (- lambda1 lambda2))))) R))