Average Error: 13.5 → 0.2
Time: 42.7s
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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\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{\left(\sin \lambda_1 \cdot \cos \lambda_2 + \cos \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \cos \phi_2}{\left(\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r94539 = lambda1;
        double r94540 = lambda2;
        double r94541 = r94539 - r94540;
        double r94542 = sin(r94541);
        double r94543 = phi2;
        double r94544 = cos(r94543);
        double r94545 = r94542 * r94544;
        double r94546 = phi1;
        double r94547 = cos(r94546);
        double r94548 = sin(r94543);
        double r94549 = r94547 * r94548;
        double r94550 = sin(r94546);
        double r94551 = r94550 * r94544;
        double r94552 = cos(r94541);
        double r94553 = r94551 * r94552;
        double r94554 = r94549 - r94553;
        double r94555 = atan2(r94545, r94554);
        return r94555;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r94556 = lambda1;
        double r94557 = sin(r94556);
        double r94558 = lambda2;
        double r94559 = cos(r94558);
        double r94560 = r94557 * r94559;
        double r94561 = cos(r94556);
        double r94562 = -r94558;
        double r94563 = sin(r94562);
        double r94564 = r94561 * r94563;
        double r94565 = r94560 + r94564;
        double r94566 = phi2;
        double r94567 = cos(r94566);
        double r94568 = r94565 * r94567;
        double r94569 = phi1;
        double r94570 = cos(r94569);
        double r94571 = sin(r94566);
        double r94572 = r94570 * r94571;
        double r94573 = sin(r94569);
        double r94574 = r94573 * r94567;
        double r94575 = r94559 * r94574;
        double r94576 = r94561 * r94575;
        double r94577 = r94572 - r94576;
        double r94578 = sin(r94558);
        double r94579 = r94578 * r94557;
        double r94580 = 3.0;
        double r94581 = pow(r94579, r94580);
        double r94582 = cbrt(r94581);
        double r94583 = r94574 * r94582;
        double r94584 = r94577 - r94583;
        double r94585 = atan2(r94568, r94584);
        return r94585;
}

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

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

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

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

    \[\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. 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}{\color{blue}{\left(\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\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  10. 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}{\color{blue}{\left(\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)} - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \lambda_1 \cdot \color{blue}{\sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\color{blue}{\sqrt[3]{\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1}} \cdot \sqrt[3]{\left(\sin \lambda_2 \cdot \sin \lambda_2\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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\sin \lambda_1 \cdot \sin \lambda_1\right) \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_2\right) \cdot \sin \lambda_2\right)}}}\]
  15. 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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sqrt[3]{\color{blue}{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}}\]
  16. Using strategy rm
  17. Applied associate-*l*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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \color{blue}{\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}\]
  18. 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}{\left(\cos \phi_1 \cdot \sin \phi_2 - \cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)\right) - \left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \sqrt[3]{{\left(\sin \lambda_2 \cdot \sin \lambda_1\right)}^{3}}}\]

Reproduce

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