Average Error: 0.9 → 0.3
Time: 30.2s
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 \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)\right) \cdot \left(\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)\right)} \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \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 - \cos \phi_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 \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)\right) \cdot \left(\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)\right)} \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \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 - \cos \phi_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 r2411434 = lambda1;
        double r2411435 = phi2;
        double r2411436 = cos(r2411435);
        double r2411437 = lambda2;
        double r2411438 = r2411434 - r2411437;
        double r2411439 = sin(r2411438);
        double r2411440 = r2411436 * r2411439;
        double r2411441 = phi1;
        double r2411442 = cos(r2411441);
        double r2411443 = cos(r2411438);
        double r2411444 = r2411436 * r2411443;
        double r2411445 = r2411442 + r2411444;
        double r2411446 = atan2(r2411440, r2411445);
        double r2411447 = r2411434 + r2411446;
        return r2411447;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2411448 = phi2;
        double r2411449 = cos(r2411448);
        double r2411450 = lambda1;
        double r2411451 = sin(r2411450);
        double r2411452 = lambda2;
        double r2411453 = cos(r2411452);
        double r2411454 = r2411451 * r2411453;
        double r2411455 = cos(r2411450);
        double r2411456 = sin(r2411452);
        double r2411457 = r2411455 * r2411456;
        double r2411458 = r2411454 - r2411457;
        double r2411459 = r2411449 * r2411458;
        double r2411460 = r2411455 * r2411449;
        double r2411461 = r2411460 * r2411453;
        double r2411462 = r2411461 * r2411461;
        double r2411463 = r2411462 * r2411461;
        double r2411464 = r2411463 * r2411463;
        double r2411465 = cbrt(r2411464);
        double r2411466 = r2411465 * r2411461;
        double r2411467 = phi1;
        double r2411468 = cos(r2411467);
        double r2411469 = r2411468 * r2411468;
        double r2411470 = r2411468 * r2411469;
        double r2411471 = r2411466 + r2411470;
        double r2411472 = r2411461 - r2411468;
        double r2411473 = r2411461 * r2411472;
        double r2411474 = r2411469 + r2411473;
        double r2411475 = r2411471 / r2411474;
        double r2411476 = r2411456 * r2411451;
        double r2411477 = r2411449 * r2411476;
        double r2411478 = r2411475 + r2411477;
        double r2411479 = atan2(r2411459, r2411478);
        double r2411480 = r2411479 + r2411450;
        return r2411480;
}

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

    \[\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.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}{\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.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)}{\frac{\color{blue}{\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)\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.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)}{\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)\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) - \cos \phi_1\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)}} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  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(\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 \color{blue}{\sqrt[3]{\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)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\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) - \cos \phi_1\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  14. 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(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \left(\color{blue}{\sqrt[3]{\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)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)}} \cdot \sqrt[3]{\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)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\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) - \cos \phi_1\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  15. Applied cbrt-unprod0.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 \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right) \cdot \color{blue}{\sqrt[3]{\left(\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)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)\right) \cdot \left(\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)\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\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) - \cos \phi_1\right) \cdot \left(\cos \lambda_2 \cdot \left(\cos \lambda_1 \cdot \cos \phi_2\right)\right)} + \left(\sin \lambda_1 \cdot \sin \lambda_2\right) \cdot \cos \phi_2}\]
  16. 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 \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)\right) \cdot \left(\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)\right)} \cdot \left(\left(\cos \lambda_1 \cdot \cos \phi_2\right) \cdot \cos \lambda_2\right) + \cos \phi_1 \cdot \left(\cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \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 - \cos \phi_1\right)} + \cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right)} + \lambda_1\]

Reproduce

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