Average Error: 12.7 → 0.2
Time: 33.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{\sqrt[3]{\cos \phi_2} \cdot \left({\left(\cos \phi_2 \cdot \cos \phi_2\right)}^{\frac{1}{3}} \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_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{\sqrt[3]{\cos \phi_2} \cdot \left({\left(\cos \phi_2 \cdot \cos \phi_2\right)}^{\frac{1}{3}} \cdot \left(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right)\right)}{\cos \phi_1 \cdot \sin \phi_2 - \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2137751 = lambda1;
        double r2137752 = lambda2;
        double r2137753 = r2137751 - r2137752;
        double r2137754 = sin(r2137753);
        double r2137755 = phi2;
        double r2137756 = cos(r2137755);
        double r2137757 = r2137754 * r2137756;
        double r2137758 = phi1;
        double r2137759 = cos(r2137758);
        double r2137760 = sin(r2137755);
        double r2137761 = r2137759 * r2137760;
        double r2137762 = sin(r2137758);
        double r2137763 = r2137762 * r2137756;
        double r2137764 = cos(r2137753);
        double r2137765 = r2137763 * r2137764;
        double r2137766 = r2137761 - r2137765;
        double r2137767 = atan2(r2137757, r2137766);
        return r2137767;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2137768 = phi2;
        double r2137769 = cos(r2137768);
        double r2137770 = cbrt(r2137769);
        double r2137771 = r2137769 * r2137769;
        double r2137772 = 0.3333333333333333;
        double r2137773 = pow(r2137771, r2137772);
        double r2137774 = lambda2;
        double r2137775 = cos(r2137774);
        double r2137776 = lambda1;
        double r2137777 = sin(r2137776);
        double r2137778 = r2137775 * r2137777;
        double r2137779 = cos(r2137776);
        double r2137780 = sin(r2137774);
        double r2137781 = r2137779 * r2137780;
        double r2137782 = r2137778 - r2137781;
        double r2137783 = r2137773 * r2137782;
        double r2137784 = r2137770 * r2137783;
        double r2137785 = phi1;
        double r2137786 = cos(r2137785);
        double r2137787 = sin(r2137768);
        double r2137788 = r2137786 * r2137787;
        double r2137789 = r2137780 * r2137777;
        double r2137790 = r2137775 * r2137779;
        double r2137791 = r2137789 + r2137790;
        double r2137792 = sin(r2137785);
        double r2137793 = r2137769 * r2137792;
        double r2137794 = r2137791 * r2137793;
        double r2137795 = r2137788 - r2137794;
        double r2137796 = atan2(r2137784, r2137795);
        return r2137796;
}

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

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

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\cos \phi_2} \cdot \sqrt[3]{\cos \phi_2}\right) \cdot \sqrt[3]{\cos \phi_2}\right)}}{\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-*r*0.4

    \[\leadsto \tan^{-1}_* \frac{\color{blue}{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \phi_2} \cdot \sqrt[3]{\cos \phi_2}\right)\right) \cdot \sqrt[3]{\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 pow1/315.6

    \[\leadsto \tan^{-1}_* \frac{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \phi_2} \cdot \color{blue}{{\left(\cos \phi_2\right)}^{\frac{1}{3}}}\right)\right) \cdot \sqrt[3]{\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)}\]
  11. Applied pow1/315.6

    \[\leadsto \tan^{-1}_* \frac{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\color{blue}{{\left(\cos \phi_2\right)}^{\frac{1}{3}}} \cdot {\left(\cos \phi_2\right)}^{\frac{1}{3}}\right)\right) \cdot \sqrt[3]{\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)}\]
  12. Applied pow-prod-down0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \color{blue}{{\left(\cos \phi_2 \cdot \cos \phi_2\right)}^{\frac{1}{3}}}\right) \cdot \sqrt[3]{\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)}\]
  13. Final simplification0.2

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

Reproduce

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