Average Error: 12.9 → 0.4
Time: 41.0s
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 - \sqrt[3]{\frac{{\left(\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(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}^{3}}{{\left(\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2\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}{\cos \phi_1 \cdot \sin \phi_2 - \sqrt[3]{\frac{{\left(\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(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}^{3}}{{\left(\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2\right)}^{3}}}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r79734 = lambda1;
        double r79735 = lambda2;
        double r79736 = r79734 - r79735;
        double r79737 = sin(r79736);
        double r79738 = phi2;
        double r79739 = cos(r79738);
        double r79740 = r79737 * r79739;
        double r79741 = phi1;
        double r79742 = cos(r79741);
        double r79743 = sin(r79738);
        double r79744 = r79742 * r79743;
        double r79745 = sin(r79741);
        double r79746 = r79745 * r79739;
        double r79747 = cos(r79736);
        double r79748 = r79746 * r79747;
        double r79749 = r79744 - r79748;
        double r79750 = atan2(r79740, r79749);
        return r79750;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r79751 = lambda1;
        double r79752 = sin(r79751);
        double r79753 = lambda2;
        double r79754 = cos(r79753);
        double r79755 = r79752 * r79754;
        double r79756 = cos(r79751);
        double r79757 = -r79753;
        double r79758 = sin(r79757);
        double r79759 = r79756 * r79758;
        double r79760 = r79755 + r79759;
        double r79761 = phi2;
        double r79762 = cos(r79761);
        double r79763 = r79760 * r79762;
        double r79764 = phi1;
        double r79765 = cos(r79764);
        double r79766 = sin(r79761);
        double r79767 = r79765 * r79766;
        double r79768 = sin(r79753);
        double r79769 = r79752 * r79768;
        double r79770 = r79769 * r79769;
        double r79771 = r79756 * r79754;
        double r79772 = r79771 * r79771;
        double r79773 = r79770 - r79772;
        double r79774 = sin(r79764);
        double r79775 = r79774 * r79762;
        double r79776 = r79773 * r79775;
        double r79777 = 3.0;
        double r79778 = pow(r79776, r79777);
        double r79779 = r79769 - r79771;
        double r79780 = pow(r79779, r79777);
        double r79781 = r79778 / r79780;
        double r79782 = cbrt(r79781);
        double r79783 = r79767 - r79782;
        double r79784 = atan2(r79763, r79783);
        return r79784;
}

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 12.9

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

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

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

    \[\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 sub-neg6.4

    \[\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 \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)}}\]
  8. Applied cos-sum0.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 \left(-\lambda_2\right) - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\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(\color{blue}{\cos \lambda_2 \cdot \cos \lambda_1} - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\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 \color{blue}{\sqrt[3]{\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\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 \color{blue}{\sqrt[3]{\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2}}\right) \cdot \sqrt[3]{\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}}\]
  13. Applied add-cbrt-cube0.4

    \[\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(\color{blue}{\sqrt[3]{\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1}} \cdot \sqrt[3]{\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2}\right) \cdot \sqrt[3]{\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}}\]
  14. Applied cbrt-unprod0.4

    \[\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}{\sqrt[3]{\left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2\right)}} \cdot \sqrt[3]{\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}}\]
  15. Applied cbrt-unprod0.4

    \[\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}{\sqrt[3]{\left(\left(\left(\sin \phi_1 \cdot \sin \phi_1\right) \cdot \sin \phi_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_2\right) \cdot \cos \phi_2\right)\right) \cdot \left(\left(\left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1 - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)\right)}}}\]
  16. Simplified0.4

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

    \[\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 - \sqrt[3]{{\left(\color{blue}{\frac{\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(\cos \lambda_1 \cdot \cos \lambda_2\right)}{\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2}} \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}^{3}}}\]
  19. Applied associate-*l/0.4

    \[\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 - \sqrt[3]{{\color{blue}{\left(\frac{\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(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}{\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2}\right)}}^{3}}}\]
  20. Applied cube-div0.4

    \[\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 - \sqrt[3]{\color{blue}{\frac{{\left(\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(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}^{3}}{{\left(\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2\right)}^{3}}}}}\]
  21. Final simplification0.4

    \[\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 - \sqrt[3]{\frac{{\left(\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(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}^{3}}{{\left(\sin \lambda_1 \cdot \sin \lambda_2 - \cos \lambda_1 \cdot \cos \lambda_2\right)}^{3}}}}\]

Reproduce

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