Average Error: 13.6 → 0.2
Time: 40.1s
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 - \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\sin \phi_1 \cdot \cos \phi_2\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) + \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right)}{\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right) + \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) - \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\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 - \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \lambda_2\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right) \cdot \cos \phi_2}{\cos \phi_1 \cdot \sin \phi_2 - \frac{\left(\sin \phi_1 \cdot \cos \phi_2\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) + \left(\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right)\right)}{\left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\cos \lambda_2 \cdot \cos \lambda_1\right) + \left(\left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) - \left(\cos \lambda_2 \cdot \cos \lambda_1\right) \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)\right)}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r3876549 = lambda1;
        double r3876550 = lambda2;
        double r3876551 = r3876549 - r3876550;
        double r3876552 = sin(r3876551);
        double r3876553 = phi2;
        double r3876554 = cos(r3876553);
        double r3876555 = r3876552 * r3876554;
        double r3876556 = phi1;
        double r3876557 = cos(r3876556);
        double r3876558 = sin(r3876553);
        double r3876559 = r3876557 * r3876558;
        double r3876560 = sin(r3876556);
        double r3876561 = r3876560 * r3876554;
        double r3876562 = cos(r3876551);
        double r3876563 = r3876561 * r3876562;
        double r3876564 = r3876559 - r3876563;
        double r3876565 = atan2(r3876555, r3876564);
        return r3876565;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r3876566 = lambda2;
        double r3876567 = cos(r3876566);
        double r3876568 = lambda1;
        double r3876569 = sin(r3876568);
        double r3876570 = r3876567 * r3876569;
        double r3876571 = cos(r3876568);
        double r3876572 = cbrt(r3876571);
        double r3876573 = sin(r3876566);
        double r3876574 = r3876572 * r3876573;
        double r3876575 = r3876572 * r3876572;
        double r3876576 = r3876574 * r3876575;
        double r3876577 = r3876570 - r3876576;
        double r3876578 = phi2;
        double r3876579 = cos(r3876578);
        double r3876580 = r3876577 * r3876579;
        double r3876581 = phi1;
        double r3876582 = cos(r3876581);
        double r3876583 = sin(r3876578);
        double r3876584 = r3876582 * r3876583;
        double r3876585 = sin(r3876581);
        double r3876586 = r3876585 * r3876579;
        double r3876587 = r3876573 * r3876569;
        double r3876588 = r3876587 * r3876587;
        double r3876589 = r3876587 * r3876588;
        double r3876590 = r3876567 * r3876571;
        double r3876591 = r3876590 * r3876590;
        double r3876592 = r3876591 * r3876590;
        double r3876593 = r3876589 + r3876592;
        double r3876594 = r3876586 * r3876593;
        double r3876595 = r3876590 * r3876587;
        double r3876596 = r3876588 - r3876595;
        double r3876597 = r3876591 + r3876596;
        double r3876598 = r3876594 / r3876597;
        double r3876599 = r3876584 - r3876598;
        double r3876600 = atan2(r3876580, r3876599);
        return r3876600;
}

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

    \[\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-diff7.0

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

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \color{blue}{\left(\left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right) \cdot \sqrt[3]{\cos \lambda_1}\right)} \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 \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  8. Applied associate-*l*0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \color{blue}{\left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \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_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  9. Using strategy rm
  10. Applied flip3-+0.2

    \[\leadsto \tan^{-1}_* \frac{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \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}{\frac{{\left(\cos \lambda_1 \cdot \cos \lambda_2\right)}^{3} + {\left(\sin \lambda_1 \cdot \sin \lambda_2\right)}^{3}}{\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \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(\sin \lambda_1 \cdot \sin \lambda_2\right)\right)}}}\]
  11. Applied associate-*r/0.2

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

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

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

Reproduce

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