Average Error: 0.8 → 0.3
Time: 29.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{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\log \left(e^{\cos \phi_1 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\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{\left(\sin \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \cos \lambda_1\right) \cdot \cos \phi_2}{\log \left(e^{\cos \phi_1 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\right)}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r43929 = lambda1;
        double r43930 = phi2;
        double r43931 = cos(r43930);
        double r43932 = lambda2;
        double r43933 = r43929 - r43932;
        double r43934 = sin(r43933);
        double r43935 = r43931 * r43934;
        double r43936 = phi1;
        double r43937 = cos(r43936);
        double r43938 = cos(r43933);
        double r43939 = r43931 * r43938;
        double r43940 = r43937 + r43939;
        double r43941 = atan2(r43935, r43940);
        double r43942 = r43929 + r43941;
        return r43942;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r43943 = lambda1;
        double r43944 = sin(r43943);
        double r43945 = lambda2;
        double r43946 = cos(r43945);
        double r43947 = r43944 * r43946;
        double r43948 = sin(r43945);
        double r43949 = cos(r43943);
        double r43950 = r43948 * r43949;
        double r43951 = r43947 - r43950;
        double r43952 = phi2;
        double r43953 = cos(r43952);
        double r43954 = r43951 * r43953;
        double r43955 = phi1;
        double r43956 = cos(r43955);
        double r43957 = r43949 * r43946;
        double r43958 = r43944 * r43948;
        double r43959 = r43957 + r43958;
        double r43960 = r43953 * r43959;
        double r43961 = r43956 + r43960;
        double r43962 = exp(r43961);
        double r43963 = log(r43962);
        double r43964 = atan2(r43954, r43963);
        double r43965 = r43943 + r43964;
        return r43965;
}

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

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

    \[\leadsto \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_2 \cdot \cos \left(\lambda_1 - \lambda_2\right) + \cos \phi_1} + \lambda_1\]
  5. Simplified0.7

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

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

    \[\leadsto \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \sin \lambda_2 \cdot \cos \lambda_1\right)}{\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)} + \cos \phi_1} + \lambda_1\]
  9. Applied associate-+l+0.2

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

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

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

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

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

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

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

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

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

Reproduce

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