Average Error: 0.9 → 0.3
Time: 28.7s
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)}{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) - \cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 + \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \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)}
\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_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) - \cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 + \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1}}}
double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r1979485 = lambda1;
        double r1979486 = phi2;
        double r1979487 = cos(r1979486);
        double r1979488 = lambda2;
        double r1979489 = r1979485 - r1979488;
        double r1979490 = sin(r1979489);
        double r1979491 = r1979487 * r1979490;
        double r1979492 = phi1;
        double r1979493 = cos(r1979492);
        double r1979494 = cos(r1979489);
        double r1979495 = r1979487 * r1979494;
        double r1979496 = r1979493 + r1979495;
        double r1979497 = atan2(r1979491, r1979496);
        double r1979498 = r1979485 + r1979497;
        return r1979498;
}

double f(double lambda1, double lambda2, double phi1, double phi2) {
        double r1979499 = lambda1;
        double r1979500 = phi2;
        double r1979501 = cos(r1979500);
        double r1979502 = sin(r1979499);
        double r1979503 = lambda2;
        double r1979504 = cos(r1979503);
        double r1979505 = r1979502 * r1979504;
        double r1979506 = cos(r1979499);
        double r1979507 = sin(r1979503);
        double r1979508 = r1979506 * r1979507;
        double r1979509 = r1979505 - r1979508;
        double r1979510 = r1979501 * r1979509;
        double r1979511 = r1979507 * r1979502;
        double r1979512 = r1979501 * r1979511;
        double r1979513 = phi1;
        double r1979514 = cos(r1979513);
        double r1979515 = r1979514 * r1979514;
        double r1979516 = r1979515 * r1979514;
        double r1979517 = r1979501 * r1979504;
        double r1979518 = r1979517 * r1979506;
        double r1979519 = r1979518 * r1979518;
        double r1979520 = r1979519 * r1979518;
        double r1979521 = r1979516 + r1979520;
        double r1979522 = r1979519 - r1979515;
        double r1979523 = r1979518 * r1979522;
        double r1979524 = r1979514 + r1979518;
        double r1979525 = r1979523 / r1979524;
        double r1979526 = r1979515 + r1979525;
        double r1979527 = r1979521 / r1979526;
        double r1979528 = r1979512 + r1979527;
        double r1979529 = atan2(r1979510, r1979528);
        double r1979530 = r1979499 + r1979529;
        return r1979530;
}

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-lft-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(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)\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 + \cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}}\]
  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(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)}^{3}}{\cos \phi_1 \cdot \cos \phi_1 + \left(\left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) - \cos \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  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(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \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(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right) - \cos \phi_1 \cdot \left(\cos \phi_2 \cdot \left(\cos \lambda_1 \cdot \cos \lambda_2\right)\right)\right)} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  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(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \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_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right) - \cos \phi_1\right)}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  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(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \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_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \color{blue}{\frac{\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) - \cos \phi_1 \cdot \cos \phi_1}{\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right) + \cos \phi_1}}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  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(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \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 + \color{blue}{\frac{\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) \cdot \left(\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right)\right) - \cos \phi_1 \cdot \cos \phi_1\right)}{\cos \lambda_1 \cdot \left(\cos \lambda_2 \cdot \cos \phi_2\right) + \cos \phi_1}}} + \cos \phi_2 \cdot \left(\sin \lambda_1 \cdot \sin \lambda_2\right)}\]
  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)}{\cos \phi_2 \cdot \left(\sin \lambda_2 \cdot \sin \lambda_1\right) + \frac{\left(\cos \phi_1 \cdot \cos \phi_1\right) \cdot \cos \phi_1 + \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right)}{\cos \phi_1 \cdot \cos \phi_1 + \frac{\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) \cdot \left(\left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1\right) - \cos \phi_1 \cdot \cos \phi_1\right)}{\cos \phi_1 + \left(\cos \phi_2 \cdot \cos \lambda_2\right) \cdot \cos \lambda_1}}}\]

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)))))))