Average Error: 24.5 → 24.5
Time: 49.0s
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)\]
\[\left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}}}{\sqrt{1 - \left(\left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right)} + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}\right)}} \cdot 2\right) \cdot R\]
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)
\left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}}}{\sqrt{1 - \left(\left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right)} + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}\right)}} \cdot 2\right) \cdot R
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3074749 = R;
        double r3074750 = 2.0;
        double r3074751 = phi1;
        double r3074752 = phi2;
        double r3074753 = r3074751 - r3074752;
        double r3074754 = r3074753 / r3074750;
        double r3074755 = sin(r3074754);
        double r3074756 = pow(r3074755, r3074750);
        double r3074757 = cos(r3074751);
        double r3074758 = cos(r3074752);
        double r3074759 = r3074757 * r3074758;
        double r3074760 = lambda1;
        double r3074761 = lambda2;
        double r3074762 = r3074760 - r3074761;
        double r3074763 = r3074762 / r3074750;
        double r3074764 = sin(r3074763);
        double r3074765 = r3074759 * r3074764;
        double r3074766 = r3074765 * r3074764;
        double r3074767 = r3074756 + r3074766;
        double r3074768 = sqrt(r3074767);
        double r3074769 = 1.0;
        double r3074770 = r3074769 - r3074767;
        double r3074771 = sqrt(r3074770);
        double r3074772 = atan2(r3074768, r3074771);
        double r3074773 = r3074750 * r3074772;
        double r3074774 = r3074749 * r3074773;
        return r3074774;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3074775 = lambda1;
        double r3074776 = lambda2;
        double r3074777 = r3074775 - r3074776;
        double r3074778 = 2.0;
        double r3074779 = r3074777 / r3074778;
        double r3074780 = sin(r3074779);
        double r3074781 = phi2;
        double r3074782 = cos(r3074781);
        double r3074783 = phi1;
        double r3074784 = cos(r3074783);
        double r3074785 = r3074782 * r3074784;
        double r3074786 = r3074785 * r3074780;
        double r3074787 = r3074780 * r3074786;
        double r3074788 = r3074783 - r3074781;
        double r3074789 = r3074788 / r3074778;
        double r3074790 = sin(r3074789);
        double r3074791 = pow(r3074790, r3074778);
        double r3074792 = r3074787 + r3074791;
        double r3074793 = sqrt(r3074792);
        double r3074794 = 1.0;
        double r3074795 = cbrt(r3074780);
        double r3074796 = r3074795 * r3074795;
        double r3074797 = r3074795 * r3074796;
        double r3074798 = r3074797 * r3074780;
        double r3074799 = r3074780 * r3074798;
        double r3074800 = cbrt(r3074799);
        double r3074801 = r3074785 * r3074800;
        double r3074802 = exp(r3074780);
        double r3074803 = log(r3074802);
        double r3074804 = r3074780 * r3074803;
        double r3074805 = r3074780 * r3074804;
        double r3074806 = cbrt(r3074805);
        double r3074807 = r3074801 * r3074806;
        double r3074808 = r3074807 + r3074791;
        double r3074809 = r3074794 - r3074808;
        double r3074810 = sqrt(r3074809);
        double r3074811 = atan2(r3074793, r3074810);
        double r3074812 = r3074811 * r3074778;
        double r3074813 = R;
        double r3074814 = r3074812 * r3074813;
        return r3074814;
}

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.5

    \[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. Using strategy rm
  3. Applied add-cbrt-cube24.5

    \[\leadsto 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 \color{blue}{\sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  4. Using strategy rm
  5. Applied add-cube-cbrt24.5

    \[\leadsto 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 \sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  6. Using strategy rm
  7. Applied add-cbrt-cube24.5

    \[\leadsto 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 \sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \color{blue}{\sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{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)\]
  8. Using strategy rm
  9. Applied add-log-exp24.5

    \[\leadsto 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 \sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)} \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right) \cdot \sqrt[3]{\left(\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \color{blue}{\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)}}\right)\]
  10. Final simplification24.5

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

Reproduce

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