Average Error: 0.8 → 0.3
Time: 28.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)}\]
\[\tan^{-1}_* \frac{\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \sin \lambda_1 + \left(-\sin \lambda_2 \cdot \left(\cos \phi_2 \cdot \cos \lambda_1\right)\right)}{\frac{{\left(\cos \phi_1\right)}^{3} + {\left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}^{3}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) - \cos \phi_1\right) \cdot \left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\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{\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \sin \lambda_1 + \left(-\sin \lambda_2 \cdot \left(\cos \phi_2 \cdot \cos \lambda_1\right)\right)}{\frac{{\left(\cos \phi_1\right)}^{3} + {\left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}^{3}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right) - \cos \phi_1\right) \cdot \left(\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2 + \cos \lambda_2 \cdot \cos \lambda_1\right)\right)}} + \lambda_1
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r51850 = lambda1;
        double r51851 = phi2;
        double r51852 = cos(r51851);
        double r51853 = lambda2;
        double r51854 = r51850 - r51853;
        double r51855 = sin(r51854);
        double r51856 = r51852 * r51855;
        double r51857 = phi1;
        double r51858 = cos(r51857);
        double r51859 = cos(r51854);
        double r51860 = r51852 * r51859;
        double r51861 = r51858 + r51860;
        double r51862 = atan2(r51856, r51861);
        double r51863 = r51850 + r51862;
        return r51863;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r51864 = phi2;
        double r51865 = cos(r51864);
        double r51866 = lambda2;
        double r51867 = cos(r51866);
        double r51868 = r51865 * r51867;
        double r51869 = lambda1;
        double r51870 = sin(r51869);
        double r51871 = r51868 * r51870;
        double r51872 = sin(r51866);
        double r51873 = cos(r51869);
        double r51874 = r51865 * r51873;
        double r51875 = r51872 * r51874;
        double r51876 = -r51875;
        double r51877 = r51871 + r51876;
        double r51878 = phi1;
        double r51879 = cos(r51878);
        double r51880 = 3.0;
        double r51881 = pow(r51879, r51880);
        double r51882 = r51870 * r51872;
        double r51883 = r51867 * r51873;
        double r51884 = r51882 + r51883;
        double r51885 = r51865 * r51884;
        double r51886 = pow(r51885, r51880);
        double r51887 = r51881 + r51886;
        double r51888 = r51879 * r51879;
        double r51889 = r51885 - r51879;
        double r51890 = r51889 * r51885;
        double r51891 = r51888 + r51890;
        double r51892 = r51887 / r51891;
        double r51893 = atan2(r51877, r51892);
        double r51894 = r51893 + r51869;
        return r51894;
}

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

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \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)}}\]
  5. Simplified0.8

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \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)}\]
  6. Simplified0.8

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \sin \left(\lambda_1 - \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)}\]
  7. Using strategy rm
  8. Applied sub-neg0.8

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

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

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

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\left(\cos \lambda_2 \cdot \cos \phi_2\right) \cdot \sin \lambda_1 + \color{blue}{\left(-\sin \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)}}{\cos \phi_1 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 - \sin \left(-\lambda_2\right) \cdot \sin \lambda_1\right)}\]
  13. Using strategy rm
  14. Applied flip3-+0.3

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

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

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

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

Reproduce

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