Average Error: 24.4 → 24.3
Time: 1.1m
Precision: 64
\[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
\[2 \cdot \left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sqrt[3]{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)} + \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_1 \cdot \log \left(e^{\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)}\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right)}} \cdot R\right)\]
R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)
2 \cdot \left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sqrt[3]{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)} + \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_1 \cdot \log \left(e^{\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)}\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right)}} \cdot R\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3253806 = R;
        double r3253807 = 2.0;
        double r3253808 = phi1;
        double r3253809 = phi2;
        double r3253810 = r3253808 - r3253809;
        double r3253811 = r3253810 / r3253807;
        double r3253812 = sin(r3253811);
        double r3253813 = pow(r3253812, r3253807);
        double r3253814 = cos(r3253808);
        double r3253815 = cos(r3253809);
        double r3253816 = r3253814 * r3253815;
        double r3253817 = lambda1;
        double r3253818 = lambda2;
        double r3253819 = r3253817 - r3253818;
        double r3253820 = r3253819 / r3253807;
        double r3253821 = sin(r3253820);
        double r3253822 = r3253816 * r3253821;
        double r3253823 = r3253822 * r3253821;
        double r3253824 = r3253813 + r3253823;
        double r3253825 = sqrt(r3253824);
        double r3253826 = 1.0;
        double r3253827 = r3253826 - r3253824;
        double r3253828 = sqrt(r3253827);
        double r3253829 = atan2(r3253825, r3253828);
        double r3253830 = r3253807 * r3253829;
        double r3253831 = r3253806 * r3253830;
        return r3253831;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3253832 = 2.0;
        double r3253833 = phi1;
        double r3253834 = phi2;
        double r3253835 = r3253833 - r3253834;
        double r3253836 = r3253835 / r3253832;
        double r3253837 = sin(r3253836);
        double r3253838 = r3253837 * r3253837;
        double r3253839 = r3253837 * r3253838;
        double r3253840 = cbrt(r3253839);
        double r3253841 = r3253837 * r3253840;
        double r3253842 = lambda1;
        double r3253843 = lambda2;
        double r3253844 = r3253842 - r3253843;
        double r3253845 = r3253844 / r3253832;
        double r3253846 = sin(r3253845);
        double r3253847 = cos(r3253834);
        double r3253848 = r3253846 * r3253847;
        double r3253849 = cos(r3253833);
        double r3253850 = r3253849 * r3253846;
        double r3253851 = r3253848 * r3253850;
        double r3253852 = r3253841 + r3253851;
        double r3253853 = sqrt(r3253852);
        double r3253854 = cos(r3253836);
        double r3253855 = r3253854 * r3253854;
        double r3253856 = r3253843 / r3253832;
        double r3253857 = cos(r3253856);
        double r3253858 = r3253842 / r3253832;
        double r3253859 = sin(r3253858);
        double r3253860 = r3253857 * r3253859;
        double r3253861 = cos(r3253858);
        double r3253862 = sin(r3253856);
        double r3253863 = r3253861 * r3253862;
        double r3253864 = r3253860 - r3253863;
        double r3253865 = exp(r3253864);
        double r3253866 = log(r3253865);
        double r3253867 = r3253849 * r3253866;
        double r3253868 = r3253847 * r3253864;
        double r3253869 = r3253867 * r3253868;
        double r3253870 = r3253855 - r3253869;
        double r3253871 = sqrt(r3253870);
        double r3253872 = atan2(r3253853, r3253871);
        double r3253873 = R;
        double r3253874 = r3253872 * r3253873;
        double r3253875 = r3253832 * r3253874;
        return r3253875;
}

Error

Bits error versus R

Bits error versus lambda1

Bits error versus lambda2

Bits error versus phi1

Bits error versus phi2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 24.4

    \[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  2. Simplified24.3

    \[\leadsto \color{blue}{2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right)}}\right)}\]
  3. Using strategy rm
  4. Applied add-log-exp24.3

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\color{blue}{\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)} \cdot \cos \phi_1\right)}}\right)\]
  5. Using strategy rm
  6. Applied div-sub24.3

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \sin \color{blue}{\left(\frac{\lambda_1}{2} - \frac{\lambda_2}{2}\right)}\right) \cdot \left(\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_1\right)}}\right)\]
  7. Applied sin-diff24.5

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \color{blue}{\left(\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)}\right) \cdot \left(\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \cos \phi_1\right)}}\right)\]
  8. Using strategy rm
  9. Applied div-sub24.5

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \left(\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right) \cdot \left(\log \left(e^{\sin \color{blue}{\left(\frac{\lambda_1}{2} - \frac{\lambda_2}{2}\right)}}\right) \cdot \cos \phi_1\right)}}\right)\]
  10. Applied sin-diff24.1

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \left(\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right) \cdot \left(\log \left(e^{\color{blue}{\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)}}\right) \cdot \cos \phi_1\right)}}\right)\]
  11. Using strategy rm
  12. Applied add-cbrt-cube24.3

    \[\leadsto 2 \cdot \left(R \cdot \tan^{-1}_* \frac{\sqrt{\left(\cos \phi_2 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_1\right) + \color{blue}{\sqrt[3]{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}} \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_2 \cdot \left(\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right) \cdot \left(\log \left(e^{\sin \left(\frac{\lambda_1}{2}\right) \cdot \cos \left(\frac{\lambda_2}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)}\right) \cdot \cos \phi_1\right)}}\right)\]
  13. Final simplification24.3

    \[\leadsto 2 \cdot \left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sqrt[3]{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)} + \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}{\sqrt{\cos \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\right) - \left(\cos \phi_1 \cdot \log \left(e^{\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)}\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \left(\frac{\lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1}{2}\right) - \cos \left(\frac{\lambda_1}{2}\right) \cdot \sin \left(\frac{\lambda_2}{2}\right)\right)\right)}} \cdot R\right)\]

Reproduce

herbie shell --seed 2019163 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Distance on a great circle"
  (* R (* 2 (atan2 (sqrt (+ (pow (sin (/ (- phi1 phi2) 2)) 2) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2))) (sin (/ (- lambda1 lambda2) 2))))) (sqrt (- 1 (+ (pow (sin (/ (- phi1 phi2) 2)) 2) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2))) (sin (/ (- lambda1 lambda2) 2))))))))))