Average Error: 0.9 → 0.3
Time: 29.9s
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)}{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right)}}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2 - \cos \phi_1\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)}{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right)}}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2 - \cos \phi_1\right)}}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2096671 = lambda1;
        double r2096672 = phi2;
        double r2096673 = cos(r2096672);
        double r2096674 = lambda2;
        double r2096675 = r2096671 - r2096674;
        double r2096676 = sin(r2096675);
        double r2096677 = r2096673 * r2096676;
        double r2096678 = phi1;
        double r2096679 = cos(r2096678);
        double r2096680 = cos(r2096675);
        double r2096681 = r2096673 * r2096680;
        double r2096682 = r2096679 + r2096681;
        double r2096683 = atan2(r2096677, r2096682);
        double r2096684 = r2096671 + r2096683;
        return r2096684;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2096685 = lambda1;
        double r2096686 = phi2;
        double r2096687 = cos(r2096686);
        double r2096688 = sin(r2096685);
        double r2096689 = lambda2;
        double r2096690 = cos(r2096689);
        double r2096691 = r2096688 * r2096690;
        double r2096692 = cos(r2096685);
        double r2096693 = sin(r2096689);
        double r2096694 = r2096692 * r2096693;
        double r2096695 = r2096691 - r2096694;
        double r2096696 = r2096687 * r2096695;
        double r2096697 = r2096693 * r2096688;
        double r2096698 = r2096687 * r2096697;
        double r2096699 = phi1;
        double r2096700 = cos(r2096699);
        double r2096701 = r2096692 * r2096687;
        double r2096702 = r2096701 * r2096690;
        double r2096703 = r2096700 + r2096702;
        double r2096704 = r2096703 * r2096703;
        double r2096705 = r2096700 * r2096700;
        double r2096706 = r2096705 * r2096700;
        double r2096707 = r2096702 * r2096702;
        double r2096708 = r2096707 * r2096702;
        double r2096709 = r2096706 + r2096708;
        double r2096710 = r2096704 * r2096709;
        double r2096711 = cbrt(r2096710);
        double r2096712 = r2096702 - r2096700;
        double r2096713 = r2096702 * r2096712;
        double r2096714 = r2096705 + r2096713;
        double r2096715 = cbrt(r2096714);
        double r2096716 = r2096711 / r2096715;
        double r2096717 = r2096698 + r2096716;
        double r2096718 = atan2(r2096696, r2096717);
        double r2096719 = r2096685 + r2096718;
        return r2096719;
}

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 cos-diff0.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 \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  6. Applied distribute-rgt-in0.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 + \color{blue}{\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2 + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2\right)}}\]
  7. Applied associate-+r+0.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)}{\color{blue}{\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}}\]
  8. Using strategy rm
  9. Applied add-cbrt-cube0.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}{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  10. Using strategy rm
  11. Applied flip3-+0.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)}{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right) \cdot \color{blue}{\frac{{\left(\cos \phi_1\right)}^{3} + {\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)}^{3}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) - \cos \phi_1 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right)}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  12. Applied associate-*r/0.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)}{\sqrt[3]{\color{blue}{\frac{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right) \cdot \left({\left(\cos \phi_1\right)}^{3} + {\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)}^{3}\right)}{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) - \cos \phi_1 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right)}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  13. Applied cbrt-div0.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}{\frac{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right) \cdot \left({\left(\cos \phi_1\right)}^{3} + {\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)}^{3}\right)}}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) - \cos \phi_1 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right)}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  14. 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)}{\frac{\color{blue}{\sqrt[3]{\left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)\right) \cdot \left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right)}}}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right) - \cos \phi_1 \cdot \left(\left(\cos \lambda_1 \cdot \cos \lambda_2\right) \cdot \cos \phi_2\right)\right)}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  15. 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)}{\frac{\sqrt[3]{\left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)\right) \cdot \left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right)}}{\color{blue}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2 - \cos \phi_1\right)}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  16. 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)}{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\sqrt[3]{\left(\left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)\right)}}{\sqrt[3]{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2 - \cos \phi_1\right)}}}\]

Reproduce

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