Average Error: 13.4 → 0.4
Time: 39.2s
Precision: 64
\[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \sin \left(-\lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\sin \phi_2 \cdot \cos \phi_1 - \sqrt[3]{{\left(\sin \phi_1 \cdot \left(\left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)\right)}^{3}}}\]
\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \sin \left(-\lambda_2\right) + \cos \lambda_2 \cdot \sin \lambda_1\right)}{\sin \phi_2 \cdot \cos \phi_1 - \sqrt[3]{{\left(\sin \phi_1 \cdot \left(\left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2\right)\right)}^{3}}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r142909 = lambda1;
        double r142910 = lambda2;
        double r142911 = r142909 - r142910;
        double r142912 = sin(r142911);
        double r142913 = phi2;
        double r142914 = cos(r142913);
        double r142915 = r142912 * r142914;
        double r142916 = phi1;
        double r142917 = cos(r142916);
        double r142918 = sin(r142913);
        double r142919 = r142917 * r142918;
        double r142920 = sin(r142916);
        double r142921 = r142920 * r142914;
        double r142922 = cos(r142911);
        double r142923 = r142921 * r142922;
        double r142924 = r142919 - r142923;
        double r142925 = atan2(r142915, r142924);
        return r142925;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r142926 = phi2;
        double r142927 = cos(r142926);
        double r142928 = lambda1;
        double r142929 = cos(r142928);
        double r142930 = lambda2;
        double r142931 = -r142930;
        double r142932 = sin(r142931);
        double r142933 = r142929 * r142932;
        double r142934 = cos(r142930);
        double r142935 = sin(r142928);
        double r142936 = r142934 * r142935;
        double r142937 = r142933 + r142936;
        double r142938 = r142927 * r142937;
        double r142939 = sin(r142926);
        double r142940 = phi1;
        double r142941 = cos(r142940);
        double r142942 = r142939 * r142941;
        double r142943 = sin(r142940);
        double r142944 = r142934 * r142929;
        double r142945 = sin(r142930);
        double r142946 = r142945 * r142935;
        double r142947 = r142944 + r142946;
        double r142948 = r142947 * r142927;
        double r142949 = r142943 * r142948;
        double r142950 = 3.0;
        double r142951 = pow(r142949, r142950);
        double r142952 = cbrt(r142951);
        double r142953 = r142942 - r142952;
        double r142954 = atan2(r142938, r142953);
        return r142954;
}

Error

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 13.4

    \[\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  2. Simplified13.4

    \[\leadsto \color{blue}{\tan^{-1}_* \frac{\sin \left(\lambda_1 - \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}}\]
  3. Using strategy rm
  4. Applied sub-neg13.4

    \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)} \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  5. Applied sin-sum6.6

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \left(-\lambda_2\right) + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)} \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  6. Simplified6.6

    \[\leadsto \tan^{-1}_* \frac{\left(\color{blue}{\sin \lambda_1 \cdot \cos \lambda_2} + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  7. Simplified6.6

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \color{blue}{\sin \left(-\lambda_2\right) \cdot \cos \lambda_1}\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \cos \left(\lambda_1 - \lambda_2\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  8. Using strategy rm
  9. Applied sub-neg6.6

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \color{blue}{\left(\cos \lambda_1 \cdot \cos \left(-\lambda_2\right) - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)} \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  11. Simplified0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\color{blue}{\cos \lambda_1 \cdot \cos \lambda_2} - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  12. Simplified0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\cos \lambda_1 \cdot \cos \lambda_2 - \color{blue}{\left(-\sin \lambda_2\right) \cdot \sin \lambda_1}\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}\]
  13. Using strategy rm
  14. Applied add-cbrt-cube0.3

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \color{blue}{\sqrt[3]{\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1}}\right)}\]
  15. Applied add-cbrt-cube0.4

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\color{blue}{\sqrt[3]{\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2}} \cdot \sqrt[3]{\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1}\right)}\]
  16. Applied cbrt-unprod0.3

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right)}}}\]
  17. Applied add-cbrt-cube0.4

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \color{blue}{\sqrt[3]{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right)\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right)}} \cdot \sqrt[3]{\left(\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right)}}\]
  18. Applied cbrt-unprod0.4

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \color{blue}{\sqrt[3]{\left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right)\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \left(-\sin \lambda_2\right) \cdot \sin \lambda_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right)\right)}}}\]
  19. Simplified0.4

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \sin \left(-\lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \sqrt[3]{\color{blue}{{\left(\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_1 \cdot \sin \lambda_2\right)\right)\right)}^{3}}}}\]
  20. Final simplification0.4

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

Reproduce

herbie shell --seed 2019194 
(FPCore (lambda1 lambda2 phi1 phi2)
  :name "Bearing on a great circle"
  (atan2 (* (sin (- lambda1 lambda2)) (cos phi2)) (- (* (cos phi1) (sin phi2)) (* (* (sin phi1) (cos phi2)) (cos (- lambda1 lambda2))))))