Average Error: 13.1 → 0.4
Time: 20.1s
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{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sqrt[3]{{\left(\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)}^{3}} + \left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sin \lambda_1\right) \cdot \sin \lambda_2\right)}\]
\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{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sqrt[3]{{\left(\sin \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)}^{3}} + \left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sin \lambda_1\right) \cdot \sin \lambda_2\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r98856 = lambda1;
        double r98857 = lambda2;
        double r98858 = r98856 - r98857;
        double r98859 = sin(r98858);
        double r98860 = phi2;
        double r98861 = cos(r98860);
        double r98862 = r98859 * r98861;
        double r98863 = phi1;
        double r98864 = cos(r98863);
        double r98865 = sin(r98860);
        double r98866 = r98864 * r98865;
        double r98867 = sin(r98863);
        double r98868 = r98867 * r98861;
        double r98869 = cos(r98858);
        double r98870 = r98868 * r98869;
        double r98871 = r98866 - r98870;
        double r98872 = atan2(r98862, r98871);
        return r98872;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r98873 = lambda1;
        double r98874 = sin(r98873);
        double r98875 = lambda2;
        double r98876 = cos(r98875);
        double r98877 = r98874 * r98876;
        double r98878 = cos(r98873);
        double r98879 = -r98875;
        double r98880 = sin(r98879);
        double r98881 = r98878 * r98880;
        double r98882 = r98877 + r98881;
        double r98883 = phi2;
        double r98884 = cos(r98883);
        double r98885 = r98882 * r98884;
        double r98886 = phi1;
        double r98887 = cos(r98886);
        double r98888 = sin(r98883);
        double r98889 = r98887 * r98888;
        double r98890 = sin(r98886);
        double r98891 = r98878 * r98876;
        double r98892 = r98884 * r98891;
        double r98893 = r98890 * r98892;
        double r98894 = 3.0;
        double r98895 = pow(r98893, r98894);
        double r98896 = cbrt(r98895);
        double r98897 = r98890 * r98884;
        double r98898 = r98897 * r98874;
        double r98899 = sin(r98875);
        double r98900 = r98898 * r98899;
        double r98901 = r98896 + r98900;
        double r98902 = r98889 - r98901;
        double r98903 = atan2(r98885, r98902);
        return r98903;
}

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

    \[\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. Using strategy rm
  3. Applied sub-neg13.1

    \[\leadsto \tan^{-1}_* \frac{\sin \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\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)}\]
  4. Applied sin-sum6.5

    \[\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}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  5. Simplified6.5

    \[\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}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  6. Using strategy rm
  7. Applied cos-diff0.2

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

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

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

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

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

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

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

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

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

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

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

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

Reproduce

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