double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r12784883 = R;
double r12784884 = lambda1;
double r12784885 = lambda2;
double r12784886 = r12784884 - r12784885;
double r12784887 = phi1;
double r12784888 = phi2;
double r12784889 = r12784887 + r12784888;
double r12784890 = 2.0;
double r12784891 = r12784889 / r12784890;
double r12784892 = cos(r12784891);
double r12784893 = r12784886 * r12784892;
double r12784894 = r12784893 * r12784893;
double r12784895 = r12784887 - r12784888;
double r12784896 = r12784895 * r12784895;
double r12784897 = r12784894 + r12784896;
double r12784898 = sqrt(r12784897);
double r12784899 = r12784883 * r12784898;
return r12784899;
}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
double r12784900 = lambda1;
double r12784901 = lambda2;
double r12784902 = r12784900 - r12784901;
double r12784903 = phi1;
double r12784904 = phi2;
double r12784905 = r12784903 + r12784904;
double r12784906 = 2.0;
double r12784907 = r12784905 / r12784906;
double r12784908 = cos(r12784907);
double r12784909 = r12784902 * r12784908;
double r12784910 = r12784903 - r12784904;
double r12784911 = hypot(r12784909, r12784910);
double r12784912 = R;
double r12784913 = r12784911 * r12784912;
return r12784913;
}
R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)^2 + \left(\phi_1 - \phi_2\right)^2}^* \cdot R


Bits error versus R



Bits error versus lambda1



Bits error versus lambda2



Bits error versus phi1



Bits error versus phi2
Initial program 37.8
Simplified3.6
rmApplied *-commutative3.6
Final simplification3.6
herbie shell --seed 2019102 +o rules:numerics
(FPCore (R lambda1 lambda2 phi1 phi2)
:name "Equirectangular approximation to distance on a great circle"
(* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))