Average Error: 0.9 → 0.3
Time: 24.5s
Precision: 64
\[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
\[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \left({e}^{\left(\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1\right)}\right)}\]
\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}
\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \left({e}^{\left(\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1\right)}\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r39611 = lambda1;
        double r39612 = phi2;
        double r39613 = cos(r39612);
        double r39614 = lambda2;
        double r39615 = r39611 - r39614;
        double r39616 = sin(r39615);
        double r39617 = r39613 * r39616;
        double r39618 = phi1;
        double r39619 = cos(r39618);
        double r39620 = cos(r39615);
        double r39621 = r39613 * r39620;
        double r39622 = r39619 + r39621;
        double r39623 = atan2(r39617, r39622);
        double r39624 = r39611 + r39623;
        return r39624;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r39625 = lambda1;
        double r39626 = phi2;
        double r39627 = cos(r39626);
        double r39628 = sin(r39625);
        double r39629 = lambda2;
        double r39630 = cos(r39629);
        double r39631 = r39628 * r39630;
        double r39632 = cos(r39625);
        double r39633 = sin(r39629);
        double r39634 = r39632 * r39633;
        double r39635 = r39631 - r39634;
        double r39636 = r39627 * r39635;
        double r39637 = exp(1.0);
        double r39638 = r39633 * r39628;
        double r39639 = r39632 * r39630;
        double r39640 = r39638 + r39639;
        double r39641 = r39627 * r39640;
        double r39642 = phi1;
        double r39643 = cos(r39642);
        double r39644 = r39641 + r39643;
        double r39645 = pow(r39637, r39644);
        double r39646 = log(r39645);
        double r39647 = atan2(r39636, r39646);
        double r39648 = r39625 + r39647;
        return r39648;
}

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 0.9

    \[\lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  2. Using strategy rm
  3. Applied sin-diff0.8

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \color{blue}{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}}{\cos \phi_1 + \cos \phi_2 \cdot \cos \left(\lambda_1 - \lambda_2\right)}\]
  4. Using strategy rm
  5. Applied sub-neg0.8

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \cos \color{blue}{\left(\lambda_1 + \left(-\lambda_2\right)\right)}}\]
  6. Applied cos-sum0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \color{blue}{\left(\cos \lambda_1 \cdot \cos \left(-\lambda_2\right) - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}}\]
  7. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \left(\color{blue}{\cos \lambda_1 \cdot \cos \lambda_2} - \sin \lambda_1 \cdot \sin \left(-\lambda_2\right)\right)}\]
  8. Simplified0.2

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \color{blue}{\sin \left(-\lambda_2\right) \cdot \sin \lambda_1}\right)}\]
  9. Using strategy rm
  10. Applied add-log-exp0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\cos \phi_1 + \color{blue}{\log \left(e^{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right)}\right)}}\]
  11. Applied add-log-exp0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\color{blue}{\log \left(e^{\cos \phi_1}\right)} + \log \left(e^{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right)}\right)}\]
  12. Applied sum-log0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\color{blue}{\log \left(e^{\cos \phi_1} \cdot e^{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right)}\right)}}\]
  13. Simplified0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \color{blue}{\left(e^{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1}\right)}}\]
  14. Using strategy rm
  15. Applied *-un-lft-identity0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \left(e^{\color{blue}{1 \cdot \left(\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1\right)}}\right)}\]
  16. Applied exp-prod0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \color{blue}{\left({\left(e^{1}\right)}^{\left(\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1\right)}\right)}}\]
  17. Simplified0.3

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \cos \lambda_1 \cdot \sin \lambda_2\right)}{\log \left({\color{blue}{e}}^{\left(\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1 + \cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_1\right)}\right)}\]
  18. Final simplification0.3

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

Reproduce

herbie shell --seed 2019209 
(FPCore (lambda1 lambda2 phi1 phi2)
  :name "Midpoint on a great circle"
  :precision binary64
  (+ lambda1 (atan2 (* (cos phi2) (sin (- lambda1 lambda2))) (+ (cos phi1) (* (cos phi2) (cos (- lambda1 lambda2)))))))