Average Error: 0.8 → 0.2
Time: 34.1s
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 - \left(\sin \lambda_2 \cdot \left(\sqrt[3]{\sqrt[3]{\cos \lambda_1}} \cdot \left(\sqrt[3]{\sqrt[3]{\cos \lambda_1}} \cdot \sqrt[3]{\sqrt[3]{\cos \lambda_1}}\right)\right)\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right)}{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right) + \cos \phi_1} + \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 - \left(\sin \lambda_2 \cdot \left(\sqrt[3]{\sqrt[3]{\cos \lambda_1}} \cdot \left(\sqrt[3]{\sqrt[3]{\cos \lambda_1}} \cdot \sqrt[3]{\sqrt[3]{\cos \lambda_1}}\right)\right)\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right)\right)}{\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right) + \cos \phi_1} + \lambda_1
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2316490 = lambda1;
        double r2316491 = phi2;
        double r2316492 = cos(r2316491);
        double r2316493 = lambda2;
        double r2316494 = r2316490 - r2316493;
        double r2316495 = sin(r2316494);
        double r2316496 = r2316492 * r2316495;
        double r2316497 = phi1;
        double r2316498 = cos(r2316497);
        double r2316499 = cos(r2316494);
        double r2316500 = r2316492 * r2316499;
        double r2316501 = r2316498 + r2316500;
        double r2316502 = atan2(r2316496, r2316501);
        double r2316503 = r2316490 + r2316502;
        return r2316503;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r2316504 = phi2;
        double r2316505 = cos(r2316504);
        double r2316506 = lambda1;
        double r2316507 = sin(r2316506);
        double r2316508 = lambda2;
        double r2316509 = cos(r2316508);
        double r2316510 = r2316507 * r2316509;
        double r2316511 = sin(r2316508);
        double r2316512 = cos(r2316506);
        double r2316513 = cbrt(r2316512);
        double r2316514 = cbrt(r2316513);
        double r2316515 = r2316514 * r2316514;
        double r2316516 = r2316514 * r2316515;
        double r2316517 = r2316511 * r2316516;
        double r2316518 = r2316513 * r2316513;
        double r2316519 = r2316517 * r2316518;
        double r2316520 = r2316510 - r2316519;
        double r2316521 = r2316505 * r2316520;
        double r2316522 = r2316512 * r2316509;
        double r2316523 = r2316507 * r2316511;
        double r2316524 = r2316522 + r2316523;
        double r2316525 = r2316505 * r2316524;
        double r2316526 = phi1;
        double r2316527 = cos(r2316526);
        double r2316528 = r2316525 + r2316527;
        double r2316529 = atan2(r2316521, r2316528);
        double r2316530 = r2316529 + r2316506;
        return r2316530;
}

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 cos-diff0.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 \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  4. Using strategy rm
  5. Applied sin-diff0.2

    \[\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 \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt0.2

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

    \[\leadsto \lambda_1 + \tan^{-1}_* \frac{\cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \cos \lambda_2 - \color{blue}{\left(\sqrt[3]{\cos \lambda_1} \cdot \sqrt[3]{\cos \lambda_1}\right) \cdot \left(\sqrt[3]{\cos \lambda_1} \cdot \sin \lambda_2\right)}\right)}{\cos \phi_1 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2 + \sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  9. Using strategy rm
  10. Applied add-cube-cbrt0.2

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

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

Reproduce

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