Average Error: 13.2 → 0.2
Time: 58.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(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right) + \sqrt[3]{\left(\sqrt[3]{\left(\left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right)} \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\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(\cos \lambda_2 \cdot \sin \lambda_1 - \cos \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}{\sin \phi_2 \cdot \cos \phi_1 - \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right) + \sqrt[3]{\left(\sqrt[3]{\left(\left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \sin \phi_1\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right)} \cdot \left(\cos \phi_2 \cdot \sin \phi_1\right)\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)\right)}\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r4412687 = lambda1;
        double r4412688 = lambda2;
        double r4412689 = r4412687 - r4412688;
        double r4412690 = sin(r4412689);
        double r4412691 = phi2;
        double r4412692 = cos(r4412691);
        double r4412693 = r4412690 * r4412692;
        double r4412694 = phi1;
        double r4412695 = cos(r4412694);
        double r4412696 = sin(r4412691);
        double r4412697 = r4412695 * r4412696;
        double r4412698 = sin(r4412694);
        double r4412699 = r4412698 * r4412692;
        double r4412700 = cos(r4412689);
        double r4412701 = r4412699 * r4412700;
        double r4412702 = r4412697 - r4412701;
        double r4412703 = atan2(r4412693, r4412702);
        return r4412703;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r4412704 = lambda2;
        double r4412705 = cos(r4412704);
        double r4412706 = lambda1;
        double r4412707 = sin(r4412706);
        double r4412708 = r4412705 * r4412707;
        double r4412709 = cos(r4412706);
        double r4412710 = sin(r4412704);
        double r4412711 = r4412709 * r4412710;
        double r4412712 = r4412708 - r4412711;
        double r4412713 = phi2;
        double r4412714 = cos(r4412713);
        double r4412715 = r4412712 * r4412714;
        double r4412716 = sin(r4412713);
        double r4412717 = phi1;
        double r4412718 = cos(r4412717);
        double r4412719 = r4412716 * r4412718;
        double r4412720 = r4412705 * r4412709;
        double r4412721 = sin(r4412717);
        double r4412722 = r4412714 * r4412721;
        double r4412723 = r4412720 * r4412722;
        double r4412724 = r4412722 * r4412722;
        double r4412725 = r4412724 * r4412722;
        double r4412726 = r4412725 * r4412725;
        double r4412727 = cbrt(r4412726);
        double r4412728 = r4412727 * r4412722;
        double r4412729 = r4412710 * r4412707;
        double r4412730 = r4412729 * r4412729;
        double r4412731 = r4412729 * r4412730;
        double r4412732 = r4412728 * r4412731;
        double r4412733 = cbrt(r4412732);
        double r4412734 = r4412723 + r4412733;
        double r4412735 = r4412719 - r4412734;
        double r4412736 = atan2(r4412715, r4412735);
        return r4412736;
}

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

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

    \[\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. Applied distribute-rgt-in0.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 - \color{blue}{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}}\]
  7. Using strategy rm
  8. Applied add-cbrt-cube0.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(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}}\right)}\]
  9. Applied add-cbrt-cube0.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(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \color{blue}{\sqrt[3]{\left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}} \cdot \sqrt[3]{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right)}\]
  10. Applied cbrt-unprod0.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(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \color{blue}{\sqrt[3]{\left(\left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}}\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 \lambda_2\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \sqrt[3]{\left(\left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}}\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\right)}\]
  13. Applied add-cbrt-cube0.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(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \sqrt[3]{\left(\left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\left(\color{blue}{\sqrt[3]{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}} \cdot \sqrt[3]{\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)}\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\right)}\]
  14. Applied cbrt-unprod0.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(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right) + \sqrt[3]{\left(\left(\left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\right) \cdot \left(\color{blue}{\sqrt[3]{\left(\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\left(\sin \phi_1 \cdot \cos \phi_2\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right) \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}} \cdot \left(\sin \phi_1 \cdot \cos \phi_2\right)\right)}\right)}\]
  15. Final simplification0.2

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

Reproduce

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