Average Error: 13.5 → 0.2
Time: 33.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(\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 + \left(2 \cdot \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right) + \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)\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(\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 + \left(2 \cdot \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right) + \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)\right)\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r76662 = lambda1;
        double r76663 = lambda2;
        double r76664 = r76662 - r76663;
        double r76665 = sin(r76664);
        double r76666 = phi2;
        double r76667 = cos(r76666);
        double r76668 = r76665 * r76667;
        double r76669 = phi1;
        double r76670 = cos(r76669);
        double r76671 = sin(r76666);
        double r76672 = r76670 * r76671;
        double r76673 = sin(r76669);
        double r76674 = r76673 * r76667;
        double r76675 = cos(r76664);
        double r76676 = r76674 * r76675;
        double r76677 = r76672 - r76676;
        double r76678 = atan2(r76668, r76677);
        return r76678;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r76679 = lambda1;
        double r76680 = sin(r76679);
        double r76681 = lambda2;
        double r76682 = cos(r76681);
        double r76683 = r76680 * r76682;
        double r76684 = cos(r76679);
        double r76685 = -r76681;
        double r76686 = sin(r76685);
        double r76687 = r76684 * r76686;
        double r76688 = r76683 + r76687;
        double r76689 = phi2;
        double r76690 = cos(r76689);
        double r76691 = r76688 * r76690;
        double r76692 = phi1;
        double r76693 = cos(r76692);
        double r76694 = sin(r76689);
        double r76695 = r76693 * r76694;
        double r76696 = sin(r76692);
        double r76697 = r76696 * r76690;
        double r76698 = r76682 * r76684;
        double r76699 = 2.0;
        double r76700 = sin(r76681);
        double r76701 = r76700 * r76680;
        double r76702 = exp(r76701);
        double r76703 = cbrt(r76702);
        double r76704 = log(r76703);
        double r76705 = r76699 * r76704;
        double r76706 = r76705 + r76704;
        double r76707 = r76698 + r76706;
        double r76708 = r76697 * r76707;
        double r76709 = r76695 - r76708;
        double r76710 = atan2(r76691, r76709);
        return r76710;
}

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

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

    \[\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-log-exp0.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}{\log \left(e^{\sin \lambda_2 \cdot \sin \lambda_1}\right)}\right)}\]
  12. Using strategy rm
  13. Applied add-cube-cbrt0.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 + \log \color{blue}{\left(\left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}} \cdot \sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right) \cdot \sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)}\right)}\]
  14. Applied log-prod0.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}{\left(\log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}} \cdot \sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right) + \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)\right)}\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}{\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 + \left(\color{blue}{2 \cdot \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)} + \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)\right)\right)}\]
  16. 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 + \left(2 \cdot \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right) + \log \left(\sqrt[3]{e^{\sin \lambda_2 \cdot \sin \lambda_1}}\right)\right)\right)}\]

Reproduce

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