Average Error: 24.6 → 24.6
Time: 49.8s
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{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\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{\left(\sqrt[3]{\log \left(e^{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)} \cdot \left(\sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\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)}} \cdot R\right) \cdot 2\]
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{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\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{\left(\sqrt[3]{\log \left(e^{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)} \cdot \left(\sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\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)}} \cdot R\right) \cdot 2
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3467775 = R;
        double r3467776 = 2.0;
        double r3467777 = phi1;
        double r3467778 = phi2;
        double r3467779 = r3467777 - r3467778;
        double r3467780 = r3467779 / r3467776;
        double r3467781 = sin(r3467780);
        double r3467782 = pow(r3467781, r3467776);
        double r3467783 = cos(r3467777);
        double r3467784 = cos(r3467778);
        double r3467785 = r3467783 * r3467784;
        double r3467786 = lambda1;
        double r3467787 = lambda2;
        double r3467788 = r3467786 - r3467787;
        double r3467789 = r3467788 / r3467776;
        double r3467790 = sin(r3467789);
        double r3467791 = r3467785 * r3467790;
        double r3467792 = r3467791 * r3467790;
        double r3467793 = r3467782 + r3467792;
        double r3467794 = sqrt(r3467793);
        double r3467795 = 1.0;
        double r3467796 = r3467795 - r3467793;
        double r3467797 = sqrt(r3467796);
        double r3467798 = atan2(r3467794, r3467797);
        double r3467799 = r3467776 * r3467798;
        double r3467800 = r3467775 * r3467799;
        return r3467800;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r3467801 = phi1;
        double r3467802 = phi2;
        double r3467803 = r3467801 - r3467802;
        double r3467804 = 2.0;
        double r3467805 = r3467803 / r3467804;
        double r3467806 = sin(r3467805);
        double r3467807 = r3467806 * r3467806;
        double r3467808 = lambda1;
        double r3467809 = lambda2;
        double r3467810 = r3467808 - r3467809;
        double r3467811 = r3467810 / r3467804;
        double r3467812 = sin(r3467811);
        double r3467813 = cos(r3467802);
        double r3467814 = r3467812 * r3467813;
        double r3467815 = cos(r3467801);
        double r3467816 = r3467815 * r3467812;
        double r3467817 = r3467814 * r3467816;
        double r3467818 = r3467807 + r3467817;
        double r3467819 = sqrt(r3467818);
        double r3467820 = cos(r3467805);
        double r3467821 = exp(r3467820);
        double r3467822 = log(r3467821);
        double r3467823 = cbrt(r3467822);
        double r3467824 = cbrt(r3467820);
        double r3467825 = r3467824 * r3467824;
        double r3467826 = r3467823 * r3467825;
        double r3467827 = r3467826 * r3467820;
        double r3467828 = r3467827 - r3467817;
        double r3467829 = sqrt(r3467828);
        double r3467830 = atan2(r3467819, r3467829);
        double r3467831 = R;
        double r3467832 = r3467830 * r3467831;
        double r3467833 = r3467832 * r3467804;
        return r3467833;
}

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

    \[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.6

    \[\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-cube-cbrt24.6

    \[\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{\color{blue}{\left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\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)\]
  5. Using strategy rm
  6. Applied add-log-exp24.6

    \[\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{\left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\color{blue}{\log \left(e^{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)}}\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)\]
  7. Final simplification24.6

    \[\leadsto \left(\tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\phi_1 - \phi_2}{2}\right) \cdot \sin \left(\frac{\phi_1 - \phi_2}{2}\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{\left(\sqrt[3]{\log \left(e^{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)} \cdot \left(\sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 - \phi_2}{2}\right)}\right)\right) \cdot \cos \left(\frac{\phi_1 - \phi_2}{2}\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)}} \cdot R\right) \cdot 2\]

Reproduce

herbie shell --seed 2019168 
(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))))))))))