Average Error: 13.3 → 0.2
Time: 53.5s
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(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}\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(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r96237 = lambda1;
        double r96238 = lambda2;
        double r96239 = r96237 - r96238;
        double r96240 = sin(r96239);
        double r96241 = phi2;
        double r96242 = cos(r96241);
        double r96243 = r96240 * r96242;
        double r96244 = phi1;
        double r96245 = cos(r96244);
        double r96246 = sin(r96241);
        double r96247 = r96245 * r96246;
        double r96248 = sin(r96244);
        double r96249 = r96248 * r96242;
        double r96250 = cos(r96239);
        double r96251 = r96249 * r96250;
        double r96252 = r96247 - r96251;
        double r96253 = atan2(r96243, r96252);
        return r96253;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r96254 = lambda1;
        double r96255 = sin(r96254);
        double r96256 = lambda2;
        double r96257 = cos(r96256);
        double r96258 = r96255 * r96257;
        double r96259 = cos(r96254);
        double r96260 = -r96256;
        double r96261 = sin(r96260);
        double r96262 = r96259 * r96261;
        double r96263 = r96258 + r96262;
        double r96264 = phi2;
        double r96265 = cos(r96264);
        double r96266 = r96263 * r96265;
        double r96267 = phi1;
        double r96268 = cos(r96267);
        double r96269 = sin(r96264);
        double r96270 = r96268 * r96269;
        double r96271 = sin(r96267);
        double r96272 = r96271 * r96265;
        double r96273 = r96257 * r96259;
        double r96274 = sin(r96256);
        double r96275 = r96274 * r96255;
        double r96276 = 3.0;
        double r96277 = pow(r96275, r96276);
        double r96278 = cbrt(r96277);
        double r96279 = r96273 + r96278;
        double r96280 = r96272 * r96279;
        double r96281 = r96270 - r96280;
        double r96282 = atan2(r96266, r96281);
        return r96282;
}

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.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)}\]
  2. Using strategy rm
  3. Applied sub-neg13.3

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

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

    \[\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. Simplified0.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 \left(\color{blue}{\cos \lambda_2 \cdot \cos \lambda_1} + \sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  9. Simplified0.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 \left(\cos \lambda_2 \cdot \cos \lambda_1 + \color{blue}{\sin \lambda_2 \cdot \sin \lambda_1}\right)}\]
  10. Using strategy rm
  11. 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(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sin \lambda_2 \cdot \color{blue}{\sqrt[3]{\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}}\right)}\]
  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(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \color{blue}{\sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2}} \cdot \sqrt[3]{\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}\right)}\]
  13. 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(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 + \color{blue}{\sqrt[3]{\left(\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2\right) \cdot \left(\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1\right)}}\right)}\]
  14. Simplified0.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 \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{\color{blue}{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}\right)}\]
  15. Final simplification0.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 \left(\cos \lambda_2 \cdot \cos \lambda_1 + \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}\right)}\]

Reproduce

herbie shell --seed 2019199 +o rules:numerics
(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))))))