Average Error: 37.6 → 31.0
Time: 44.2s
Precision: 64
\[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
\[\begin{array}{l} \mathbf{if}\;\phi_2 \le -1.3363728798813314 \cdot 10^{+154}:\\ \;\;\;\;\left(-R\right) \cdot \left(\frac{\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)}{\frac{\phi_1}{\lambda_1 \cdot \lambda_2}} + \left(\phi_2 + \frac{\lambda_2 \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right)}{\phi_1} \cdot \frac{\phi_2 \cdot \lambda_1}{\phi_1}\right)\right)\\ \mathbf{elif}\;\phi_2 \le 1.9145520666455147 \cdot 10^{+74}:\\ \;\;\;\;R \cdot \sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\phi_2 - \phi_1\right) \cdot R\\ \end{array}\]
R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}
\begin{array}{l}
\mathbf{if}\;\phi_2 \le -1.3363728798813314 \cdot 10^{+154}:\\
\;\;\;\;\left(-R\right) \cdot \left(\frac{\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)}{\frac{\phi_1}{\lambda_1 \cdot \lambda_2}} + \left(\phi_2 + \frac{\lambda_2 \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right)}{\phi_1} \cdot \frac{\phi_2 \cdot \lambda_1}{\phi_1}\right)\right)\\

\mathbf{elif}\;\phi_2 \le 1.9145520666455147 \cdot 10^{+74}:\\
\;\;\;\;R \cdot \sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)}\\

\mathbf{else}:\\
\;\;\;\;\left(\phi_2 - \phi_1\right) \cdot R\\

\end{array}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r2102376 = R;
        double r2102377 = lambda1;
        double r2102378 = lambda2;
        double r2102379 = r2102377 - r2102378;
        double r2102380 = phi1;
        double r2102381 = phi2;
        double r2102382 = r2102380 + r2102381;
        double r2102383 = 2.0;
        double r2102384 = r2102382 / r2102383;
        double r2102385 = cos(r2102384);
        double r2102386 = r2102379 * r2102385;
        double r2102387 = r2102386 * r2102386;
        double r2102388 = r2102380 - r2102381;
        double r2102389 = r2102388 * r2102388;
        double r2102390 = r2102387 + r2102389;
        double r2102391 = sqrt(r2102390);
        double r2102392 = r2102376 * r2102391;
        return r2102392;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r2102393 = phi2;
        double r2102394 = -1.3363728798813314e+154;
        bool r2102395 = r2102393 <= r2102394;
        double r2102396 = R;
        double r2102397 = -r2102396;
        double r2102398 = phi1;
        double r2102399 = r2102398 + r2102393;
        double r2102400 = 0.5;
        double r2102401 = r2102399 * r2102400;
        double r2102402 = cos(r2102401);
        double r2102403 = r2102402 * r2102402;
        double r2102404 = lambda1;
        double r2102405 = lambda2;
        double r2102406 = r2102404 * r2102405;
        double r2102407 = r2102398 / r2102406;
        double r2102408 = r2102403 / r2102407;
        double r2102409 = r2102405 * r2102403;
        double r2102410 = r2102409 / r2102398;
        double r2102411 = r2102393 * r2102404;
        double r2102412 = r2102411 / r2102398;
        double r2102413 = r2102410 * r2102412;
        double r2102414 = r2102393 + r2102413;
        double r2102415 = r2102408 + r2102414;
        double r2102416 = r2102397 * r2102415;
        double r2102417 = 1.9145520666455147e+74;
        bool r2102418 = r2102393 <= r2102417;
        double r2102419 = r2102398 - r2102393;
        double r2102420 = r2102419 * r2102419;
        double r2102421 = r2102404 - r2102405;
        double r2102422 = 2.0;
        double r2102423 = r2102399 / r2102422;
        double r2102424 = cos(r2102423);
        double r2102425 = r2102421 * r2102424;
        double r2102426 = r2102425 * r2102425;
        double r2102427 = r2102420 + r2102426;
        double r2102428 = sqrt(r2102427);
        double r2102429 = r2102396 * r2102428;
        double r2102430 = r2102393 - r2102398;
        double r2102431 = r2102430 * r2102396;
        double r2102432 = r2102418 ? r2102429 : r2102431;
        double r2102433 = r2102395 ? r2102416 : r2102432;
        return r2102433;
}

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. Split input into 3 regimes
  2. if phi2 < -1.3363728798813314e+154

    1. Initial program 60.9

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    2. Using strategy rm
    3. Applied flip--61.0

      \[\leadsto R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\color{blue}{\frac{\lambda_1 \cdot \lambda_1 - \lambda_2 \cdot \lambda_2}{\lambda_1 + \lambda_2}} \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    4. Applied associate-*l/61.0

      \[\leadsto R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \color{blue}{\frac{\left(\lambda_1 \cdot \lambda_1 - \lambda_2 \cdot \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)}{\lambda_1 + \lambda_2}} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    5. Applied associate-*r/61.0

      \[\leadsto R \cdot \sqrt{\color{blue}{\frac{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 \cdot \lambda_1 - \lambda_2 \cdot \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)}{\lambda_1 + \lambda_2}} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    6. Simplified60.9

      \[\leadsto R \cdot \sqrt{\frac{\color{blue}{\left(\cos \left(\frac{\phi_1 + \phi_2}{2}\right) \cdot \left(\left(\lambda_2 + \lambda_1\right) \cdot \left(\lambda_1 - \lambda_2\right)\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)}}{\lambda_1 + \lambda_2} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    7. Taylor expanded around inf 47.6

      \[\leadsto R \cdot \color{blue}{\left(-\left(\frac{{\left(\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)\right)}^{2} \cdot \left(\lambda_2 \cdot \lambda_1\right)}{\phi_1} + \left(\frac{{\left(\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)\right)}^{2} \cdot \left(\lambda_2 \cdot \left(\lambda_1 \cdot \phi_2\right)\right)}{{\phi_1}^{2}} + \phi_2\right)\right)\right)}\]
    8. Simplified45.7

      \[\leadsto R \cdot \color{blue}{\left(-\left(\frac{\cos \left(\frac{1}{2} \cdot \left(\phi_2 + \phi_1\right)\right) \cdot \cos \left(\frac{1}{2} \cdot \left(\phi_2 + \phi_1\right)\right)}{\frac{\phi_1}{\lambda_1 \cdot \lambda_2}} + \left(\phi_2 + \frac{\left(\cos \left(\frac{1}{2} \cdot \left(\phi_2 + \phi_1\right)\right) \cdot \cos \left(\frac{1}{2} \cdot \left(\phi_2 + \phi_1\right)\right)\right) \cdot \lambda_2}{\phi_1} \cdot \frac{\phi_2 \cdot \lambda_1}{\phi_1}\right)\right)\right)}\]

    if -1.3363728798813314e+154 < phi2 < 1.9145520666455147e+74

    1. Initial program 31.2

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]

    if 1.9145520666455147e+74 < phi2

    1. Initial program 49.4

      \[R \cdot \sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    2. Taylor expanded around 0 21.2

      \[\leadsto R \cdot \color{blue}{\left(\phi_2 - \phi_1\right)}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification31.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \le -1.3363728798813314 \cdot 10^{+154}:\\ \;\;\;\;\left(-R\right) \cdot \left(\frac{\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)}{\frac{\phi_1}{\lambda_1 \cdot \lambda_2}} + \left(\phi_2 + \frac{\lambda_2 \cdot \left(\cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_1 + \phi_2\right) \cdot \frac{1}{2}\right)\right)}{\phi_1} \cdot \frac{\phi_2 \cdot \lambda_1}{\phi_1}\right)\right)\\ \mathbf{elif}\;\phi_2 \le 1.9145520666455147 \cdot 10^{+74}:\\ \;\;\;\;R \cdot \sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\phi_2 - \phi_1\right) \cdot R\\ \end{array}\]

Reproduce

herbie shell --seed 2019155 
(FPCore (R lambda1 lambda2 phi1 phi2)
  :name "Equirectangular approximation to distance on a great circle"
  (* R (sqrt (+ (* (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2))) (* (- lambda1 lambda2) (cos (/ (+ phi1 phi2) 2)))) (* (- phi1 phi2) (- phi1 phi2))))))