Average Error: 13.6 → 0.2
Time: 34.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 - \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right) + \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right)}{\left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) - \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) + \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\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 - \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right) + \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right)}{\left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) - \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) + \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r3783939 = lambda1;
        double r3783940 = lambda2;
        double r3783941 = r3783939 - r3783940;
        double r3783942 = sin(r3783941);
        double r3783943 = phi2;
        double r3783944 = cos(r3783943);
        double r3783945 = r3783942 * r3783944;
        double r3783946 = phi1;
        double r3783947 = cos(r3783946);
        double r3783948 = sin(r3783943);
        double r3783949 = r3783947 * r3783948;
        double r3783950 = sin(r3783946);
        double r3783951 = r3783950 * r3783944;
        double r3783952 = cos(r3783941);
        double r3783953 = r3783951 * r3783952;
        double r3783954 = r3783949 - r3783953;
        double r3783955 = atan2(r3783945, r3783954);
        return r3783955;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r3783956 = lambda2;
        double r3783957 = cos(r3783956);
        double r3783958 = lambda1;
        double r3783959 = sin(r3783958);
        double r3783960 = r3783957 * r3783959;
        double r3783961 = cos(r3783958);
        double r3783962 = cbrt(r3783961);
        double r3783963 = sin(r3783956);
        double r3783964 = r3783962 * r3783963;
        double r3783965 = r3783962 * r3783962;
        double r3783966 = r3783964 * r3783965;
        double r3783967 = r3783960 - r3783966;
        double r3783968 = phi2;
        double r3783969 = cos(r3783968);
        double r3783970 = r3783967 * r3783969;
        double r3783971 = phi1;
        double r3783972 = cos(r3783971);
        double r3783973 = sin(r3783968);
        double r3783974 = r3783972 * r3783973;
        double r3783975 = sin(r3783971);
        double r3783976 = r3783969 * r3783975;
        double r3783977 = r3783963 * r3783959;
        double r3783978 = r3783977 * r3783977;
        double r3783979 = r3783977 * r3783978;
        double r3783980 = r3783957 * r3783961;
        double r3783981 = r3783980 * r3783980;
        double r3783982 = r3783981 * r3783980;
        double r3783983 = r3783979 + r3783982;
        double r3783984 = r3783976 * r3783983;
        double r3783985 = r3783977 * r3783980;
        double r3783986 = r3783978 - r3783985;
        double r3783987 = r3783986 + r3783981;
        double r3783988 = r3783984 / r3783987;
        double r3783989 = r3783974 - r3783988;
        double r3783990 = atan2(r3783970, r3783989);
        return r3783990;
}

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

    \[\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-diff7.0

    \[\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. Using strategy rm
  7. Applied add-cube-cbrt0.2

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

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

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

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

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

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

Reproduce

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