Average Error: 25.0 → 25.1
Time: 54.3s
Precision: 64
\[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
\[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}}}{\sqrt{1 - \left(\left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \left(\left(\log \left(\sqrt{\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}}\right) + \log \left(\sqrt{\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}}\right)\right) + \log \left(\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right)\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}\right)}}\right)\]
R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)
R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}}}{\sqrt{1 - \left(\left(\left(\cos \phi_2 \cdot \cos \phi_1\right) \cdot \left(\left(\log \left(\sqrt{\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}}\right) + \log \left(\sqrt{\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}}\right)\right) + \log \left(\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right)\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right) + {\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2}\right)}}\right)
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r4077297 = R;
        double r4077298 = 2.0;
        double r4077299 = phi1;
        double r4077300 = phi2;
        double r4077301 = r4077299 - r4077300;
        double r4077302 = r4077301 / r4077298;
        double r4077303 = sin(r4077302);
        double r4077304 = pow(r4077303, r4077298);
        double r4077305 = cos(r4077299);
        double r4077306 = cos(r4077300);
        double r4077307 = r4077305 * r4077306;
        double r4077308 = lambda1;
        double r4077309 = lambda2;
        double r4077310 = r4077308 - r4077309;
        double r4077311 = r4077310 / r4077298;
        double r4077312 = sin(r4077311);
        double r4077313 = r4077307 * r4077312;
        double r4077314 = r4077313 * r4077312;
        double r4077315 = r4077304 + r4077314;
        double r4077316 = sqrt(r4077315);
        double r4077317 = 1.0;
        double r4077318 = r4077317 - r4077315;
        double r4077319 = sqrt(r4077318);
        double r4077320 = atan2(r4077316, r4077319);
        double r4077321 = r4077298 * r4077320;
        double r4077322 = r4077297 * r4077321;
        return r4077322;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r4077323 = R;
        double r4077324 = 2.0;
        double r4077325 = lambda1;
        double r4077326 = lambda2;
        double r4077327 = r4077325 - r4077326;
        double r4077328 = r4077327 / r4077324;
        double r4077329 = sin(r4077328);
        double r4077330 = phi2;
        double r4077331 = cos(r4077330);
        double r4077332 = phi1;
        double r4077333 = cos(r4077332);
        double r4077334 = r4077331 * r4077333;
        double r4077335 = r4077334 * r4077329;
        double r4077336 = r4077329 * r4077335;
        double r4077337 = r4077332 - r4077330;
        double r4077338 = r4077337 / r4077324;
        double r4077339 = sin(r4077338);
        double r4077340 = pow(r4077339, r4077324);
        double r4077341 = r4077336 + r4077340;
        double r4077342 = sqrt(r4077341);
        double r4077343 = 1.0;
        double r4077344 = exp(r4077329);
        double r4077345 = sqrt(r4077344);
        double r4077346 = sqrt(r4077345);
        double r4077347 = log(r4077346);
        double r4077348 = r4077347 + r4077347;
        double r4077349 = log(r4077345);
        double r4077350 = r4077348 + r4077349;
        double r4077351 = r4077334 * r4077350;
        double r4077352 = r4077351 * r4077329;
        double r4077353 = r4077352 + r4077340;
        double r4077354 = r4077343 - r4077353;
        double r4077355 = sqrt(r4077354);
        double r4077356 = atan2(r4077342, r4077355);
        double r4077357 = r4077324 * r4077356;
        double r4077358 = r4077323 * r4077357;
        return r4077358;
}

Error

Bits error versus R

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 25.0

    \[R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  2. Using strategy rm
  3. Applied add-log-exp25.0

    \[\leadsto R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\log \left(e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt25.1

    \[\leadsto R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \log \color{blue}{\left(\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}} \cdot \sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  6. Applied log-prod25.1

    \[\leadsto R \cdot \left(2 \cdot \tan^{-1}_* \frac{\sqrt{{\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}{\sqrt{1 - \left({\left(\sin \left(\frac{\phi_1 - \phi_2}{2}\right)\right)}^{2} + \left(\left(\cos \phi_1 \cdot \cos \phi_2\right) \cdot \color{blue}{\left(\log \left(\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right) + \log \left(\sqrt{e^{\sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)}}\right)\right)}\right) \cdot \sin \left(\frac{\lambda_1 - \lambda_2}{2}\right)\right)}}\right)\]
  7. Using strategy rm
  8. Applied add-sqr-sqrt25.1

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

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

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

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

Reproduce

herbie shell --seed 2019170 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Distance on a great circle"
  (* R (* 2.0 (atan2 (sqrt (+ (pow (sin (/ (- phi1 phi2) 2.0)) 2.0) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2.0))) (sin (/ (- lambda1 lambda2) 2.0))))) (sqrt (- 1.0 (+ (pow (sin (/ (- phi1 phi2) 2.0)) 2.0) (* (* (* (cos phi1) (cos phi2)) (sin (/ (- lambda1 lambda2) 2.0))) (sin (/ (- lambda1 lambda2) 2.0))))))))))