Average Error: 13.2 → 0.2
Time: 38.8s
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(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \left(\left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sin \lambda_2}} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right)\right)\right) \cdot \sqrt[3]{\sin \lambda_2}\right)\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(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \left(\left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sin \lambda_2}} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right)\right)\right) \cdot \sqrt[3]{\sin \lambda_2}\right)\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r4997944 = lambda1;
        double r4997945 = lambda2;
        double r4997946 = r4997944 - r4997945;
        double r4997947 = sin(r4997946);
        double r4997948 = phi2;
        double r4997949 = cos(r4997948);
        double r4997950 = r4997947 * r4997949;
        double r4997951 = phi1;
        double r4997952 = cos(r4997951);
        double r4997953 = sin(r4997948);
        double r4997954 = r4997952 * r4997953;
        double r4997955 = sin(r4997951);
        double r4997956 = r4997955 * r4997949;
        double r4997957 = cos(r4997946);
        double r4997958 = r4997956 * r4997957;
        double r4997959 = r4997954 - r4997958;
        double r4997960 = atan2(r4997950, r4997959);
        return r4997960;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r4997961 = lambda2;
        double r4997962 = cos(r4997961);
        double r4997963 = lambda1;
        double r4997964 = sin(r4997963);
        double r4997965 = r4997962 * r4997964;
        double r4997966 = cos(r4997963);
        double r4997967 = sin(r4997961);
        double r4997968 = r4997966 * r4997967;
        double r4997969 = r4997965 - r4997968;
        double r4997970 = phi2;
        double r4997971 = cos(r4997970);
        double r4997972 = r4997969 * r4997971;
        double r4997973 = sin(r4997970);
        double r4997974 = phi1;
        double r4997975 = cos(r4997974);
        double r4997976 = r4997973 * r4997975;
        double r4997977 = r4997962 * r4997966;
        double r4997978 = sin(r4997974);
        double r4997979 = r4997978 * r4997971;
        double r4997980 = r4997977 * r4997979;
        double r4997981 = cbrt(r4997967);
        double r4997982 = cbrt(r4997981);
        double r4997983 = r4997981 * r4997982;
        double r4997984 = r4997982 * r4997982;
        double r4997985 = r4997983 * r4997984;
        double r4997986 = r4997964 * r4997985;
        double r4997987 = r4997986 * r4997981;
        double r4997988 = r4997979 * r4997987;
        double r4997989 = r4997980 + r4997988;
        double r4997990 = r4997976 - r4997989;
        double r4997991 = atan2(r4997972, r4997990);
        return r4997991;
}

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

    \[\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 sin-diff6.8

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \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)}\]
  4. Using strategy rm
  5. Applied cos-diff0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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)}}\]
  6. Applied distribute-lft-in0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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)}}\]
  7. Using strategy rm
  8. Applied add-cube-cbrt0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \color{blue}{\left(\left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sin \lambda_2}\right) \cdot \sqrt[3]{\sin \lambda_2}\right)}\right)\right)}\]
  9. Applied associate-*r*0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\left(\left(\sin \lambda_1 \cdot \left(\sqrt[3]{\sin \lambda_2} \cdot \sqrt[3]{\sin \lambda_2}\right)\right) \cdot \sqrt[3]{\sin \lambda_2}\right)}\right)}\]
  10. Using strategy rm
  11. Applied add-cube-cbrt0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \left(\color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{\sin \lambda_2}} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right) \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right)} \cdot \sqrt[3]{\sin \lambda_2}\right)\right) \cdot \sqrt[3]{\sin \lambda_2}\right)\right)}\]
  12. Applied associate-*l*0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\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) + \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \color{blue}{\left(\left(\sqrt[3]{\sqrt[3]{\sin \lambda_2}} \cdot \sqrt[3]{\sqrt[3]{\sin \lambda_2}}\right) \cdot \left(\sqrt[3]{\sqrt[3]{\sin \lambda_2}} \cdot \sqrt[3]{\sin \lambda_2}\right)\right)}\right) \cdot \sqrt[3]{\sin \lambda_2}\right)\right)}\]
  13. Final simplification0.2

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

Reproduce

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