Average Error: 0.8 → 0.3
Time: 31.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)}\]
\[\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(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)} \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\left(\cos \phi_1 - \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)} + \cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)} + \lambda_1\]
\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)}
\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(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)} \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\left(\cos \phi_1 - \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)} + \cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)} + \lambda_1
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2078682 = lambda1;
        double r2078683 = phi2;
        double r2078684 = cos(r2078683);
        double r2078685 = lambda2;
        double r2078686 = r2078682 - r2078685;
        double r2078687 = sin(r2078686);
        double r2078688 = r2078684 * r2078687;
        double r2078689 = phi1;
        double r2078690 = cos(r2078689);
        double r2078691 = cos(r2078686);
        double r2078692 = r2078684 * r2078691;
        double r2078693 = r2078690 + r2078692;
        double r2078694 = atan2(r2078688, r2078693);
        double r2078695 = r2078682 + r2078694;
        return r2078695;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2078696 = phi2;
        double r2078697 = cos(r2078696);
        double r2078698 = lambda1;
        double r2078699 = sin(r2078698);
        double r2078700 = lambda2;
        double r2078701 = cos(r2078700);
        double r2078702 = r2078699 * r2078701;
        double r2078703 = cos(r2078698);
        double r2078704 = sin(r2078700);
        double r2078705 = r2078703 * r2078704;
        double r2078706 = r2078702 - r2078705;
        double r2078707 = r2078697 * r2078706;
        double r2078708 = r2078697 * r2078701;
        double r2078709 = r2078708 * r2078703;
        double r2078710 = r2078709 * r2078709;
        double r2078711 = r2078710 * r2078710;
        double r2078712 = r2078711 * r2078710;
        double r2078713 = cbrt(r2078712);
        double r2078714 = r2078713 * r2078709;
        double r2078715 = phi1;
        double r2078716 = cos(r2078715);
        double r2078717 = r2078716 * r2078716;
        double r2078718 = r2078716 * r2078717;
        double r2078719 = r2078714 + r2078718;
        double r2078720 = r2078716 - r2078709;
        double r2078721 = r2078720 * r2078716;
        double r2078722 = r2078721 + r2078710;
        double r2078723 = r2078719 / r2078722;
        double r2078724 = r2078704 * r2078699;
        double r2078725 = r2078697 * r2078724;
        double r2078726 = r2078723 + r2078725;
        double r2078727 = atan2(r2078707, r2078726);
        double r2078728 = r2078727 + r2078698;
        return r2078728;
}

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

    \[\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-lft-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(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\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 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  8. Using strategy rm
  9. 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)}{\color{blue}{\frac{{\left(\cos \phi_1\right)}^{3} + {\left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)}^{3}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) - \cos \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  10. 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}{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) - \cos \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  11. 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{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\color{blue}{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) + \cos \phi_1 \cdot \left(\cos \phi_1 - \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  12. Using strategy rm
  13. 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)}{\frac{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \color{blue}{\sqrt[3]{\left(\left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)}} + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) + \cos \phi_1 \cdot \left(\cos \phi_1 - \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  14. Final simplification0.3

    \[\leadsto \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(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right)} \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\left(\cos \phi_1 - \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)} + \cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)} + \lambda_1\]

Reproduce

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