Average Error: 0.9 → 0.3
Time: 31.0s
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)}{\frac{\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)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\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) - \cos \phi_1 \cdot \cos \phi_1\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)}{\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2}} + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}\]
\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)}{\frac{\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)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\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) - \cos \phi_1 \cdot \cos \phi_1\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)}{\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2}} + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2171856 = lambda1;
        double r2171857 = phi2;
        double r2171858 = cos(r2171857);
        double r2171859 = lambda2;
        double r2171860 = r2171856 - r2171859;
        double r2171861 = sin(r2171860);
        double r2171862 = r2171858 * r2171861;
        double r2171863 = phi1;
        double r2171864 = cos(r2171863);
        double r2171865 = cos(r2171860);
        double r2171866 = r2171858 * r2171865;
        double r2171867 = r2171864 + r2171866;
        double r2171868 = atan2(r2171862, r2171867);
        double r2171869 = r2171856 + r2171868;
        return r2171869;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2171870 = lambda1;
        double r2171871 = phi2;
        double r2171872 = cos(r2171871);
        double r2171873 = sin(r2171870);
        double r2171874 = lambda2;
        double r2171875 = cos(r2171874);
        double r2171876 = r2171873 * r2171875;
        double r2171877 = cos(r2171870);
        double r2171878 = sin(r2171874);
        double r2171879 = r2171877 * r2171878;
        double r2171880 = r2171876 - r2171879;
        double r2171881 = r2171872 * r2171880;
        double r2171882 = phi1;
        double r2171883 = cos(r2171882);
        double r2171884 = r2171883 * r2171883;
        double r2171885 = r2171884 * r2171883;
        double r2171886 = r2171877 * r2171872;
        double r2171887 = r2171886 * r2171875;
        double r2171888 = r2171887 * r2171887;
        double r2171889 = r2171888 * r2171887;
        double r2171890 = r2171885 + r2171889;
        double r2171891 = r2171888 - r2171884;
        double r2171892 = r2171891 * r2171887;
        double r2171893 = r2171883 + r2171887;
        double r2171894 = r2171892 / r2171893;
        double r2171895 = r2171884 + r2171894;
        double r2171896 = r2171890 / r2171895;
        double r2171897 = r2171878 * r2171873;
        double r2171898 = r2171897 * r2171872;
        double r2171899 = r2171896 + r2171898;
        double r2171900 = atan2(r2171881, r2171899);
        double r2171901 = r2171870 + r2171900;
        return r2171901;
}

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 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(\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}\]
  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 \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)}}{\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}\]
  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 \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)}{\color{blue}{\cos \phi_1 \cdot \cos \phi_1 + \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right) - \cos \phi_1\right)}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  12. Using strategy rm
  13. Applied flip--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)}{\frac{\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)}{\cos \phi_1 \cdot \cos \phi_1 + \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \color{blue}{\frac{\left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) - \cos \phi_1 \cdot \cos \phi_1}{\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right) + \cos \phi_1}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  14. 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)}{\frac{\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)}{\cos \phi_1 \cdot \cos \phi_1 + \color{blue}{\frac{\left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) - \cos \phi_1 \cdot \cos \phi_1\right)}{\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right) + \cos \phi_1}}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  15. 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)}{\frac{\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)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\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) - \cos \phi_1 \cdot \cos \phi_1\right) \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right)}{\cos \phi_1 + \left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2}} + \left(\sin \lambda_2 \cdot \sin \lambda_1\right) \cdot \cos \phi_2}\]

Reproduce

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