Average Error: 37.5 → 31.0
Time: 4.4m
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.4192043883179198 \cdot 10^{+170}:\\ \;\;\;\;\left(-R\right) \cdot \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} \cdot \frac{\phi_2}{\phi_1} + \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} + \phi_2\right)\right)\\ \mathbf{elif}\;\phi_2 \le 1.4887928748670235 \cdot 10^{+79}:\\ \;\;\;\;R \cdot \sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\left(\lambda_1 - 2 \cdot \lambda_2\right) \cdot \lambda_1 + \lambda_2 \cdot \lambda_2\right) \cdot \left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 - \phi_1\right)\\ \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.4192043883179198 \cdot 10^{+170}:\\
\;\;\;\;\left(-R\right) \cdot \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} \cdot \frac{\phi_2}{\phi_1} + \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} + \phi_2\right)\right)\\

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

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

\end{array}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r46129105 = R;
        double r46129106 = lambda1;
        double r46129107 = lambda2;
        double r46129108 = r46129106 - r46129107;
        double r46129109 = phi1;
        double r46129110 = phi2;
        double r46129111 = r46129109 + r46129110;
        double r46129112 = 2.0;
        double r46129113 = r46129111 / r46129112;
        double r46129114 = cos(r46129113);
        double r46129115 = r46129108 * r46129114;
        double r46129116 = r46129115 * r46129115;
        double r46129117 = r46129109 - r46129110;
        double r46129118 = r46129117 * r46129117;
        double r46129119 = r46129116 + r46129118;
        double r46129120 = sqrt(r46129119);
        double r46129121 = r46129105 * r46129120;
        return r46129121;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r46129122 = phi2;
        double r46129123 = -1.4192043883179198e+170;
        bool r46129124 = r46129122 <= r46129123;
        double r46129125 = R;
        double r46129126 = -r46129125;
        double r46129127 = phi1;
        double r46129128 = r46129122 + r46129127;
        double r46129129 = 0.5;
        double r46129130 = r46129128 * r46129129;
        double r46129131 = cos(r46129130);
        double r46129132 = r46129131 * r46129131;
        double r46129133 = lambda2;
        double r46129134 = r46129132 * r46129133;
        double r46129135 = lambda1;
        double r46129136 = r46129127 / r46129135;
        double r46129137 = r46129134 / r46129136;
        double r46129138 = r46129122 / r46129127;
        double r46129139 = r46129137 * r46129138;
        double r46129140 = r46129137 + r46129122;
        double r46129141 = r46129139 + r46129140;
        double r46129142 = r46129126 * r46129141;
        double r46129143 = 1.4887928748670235e+79;
        bool r46129144 = r46129122 <= r46129143;
        double r46129145 = r46129127 - r46129122;
        double r46129146 = r46129145 * r46129145;
        double r46129147 = 2.0;
        double r46129148 = r46129147 * r46129133;
        double r46129149 = r46129135 - r46129148;
        double r46129150 = r46129149 * r46129135;
        double r46129151 = r46129133 * r46129133;
        double r46129152 = r46129150 + r46129151;
        double r46129153 = r46129152 * r46129132;
        double r46129154 = r46129146 + r46129153;
        double r46129155 = sqrt(r46129154);
        double r46129156 = r46129125 * r46129155;
        double r46129157 = r46129122 - r46129127;
        double r46129158 = r46129125 * r46129157;
        double r46129159 = r46129144 ? r46129156 : r46129158;
        double r46129160 = r46129124 ? r46129142 : r46129159;
        return r46129160;
}

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.4192043883179198e+170

    1. Initial program 60.7

      \[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 inf 60.8

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

      \[\leadsto R \cdot \sqrt{\color{blue}{\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) \cdot \left(\lambda_2 \cdot \lambda_2 + \lambda_1 \cdot \left(\lambda_1 - \lambda_2 \cdot 2\right)\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    4. Using strategy rm
    5. Applied add-cube-cbrt60.7

      \[\leadsto R \cdot \sqrt{\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) \cdot \color{blue}{\left(\left(\sqrt[3]{\lambda_2 \cdot \lambda_2 + \lambda_1 \cdot \left(\lambda_1 - \lambda_2 \cdot 2\right)} \cdot \sqrt[3]{\lambda_2 \cdot \lambda_2 + \lambda_1 \cdot \left(\lambda_1 - \lambda_2 \cdot 2\right)}\right) \cdot \sqrt[3]{\lambda_2 \cdot \lambda_2 + \lambda_1 \cdot \left(\lambda_1 - \lambda_2 \cdot 2\right)}\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    6. Taylor expanded around inf 46.1

      \[\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)}\]
    7. Simplified42.0

      \[\leadsto R \cdot \color{blue}{\left(-\left(\left(\frac{\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) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} + \phi_2\right) + \frac{\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) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} \cdot \frac{\phi_2}{\phi_1}\right)\right)}\]

    if -1.4192043883179198e+170 < phi2 < 1.4887928748670235e+79

    1. Initial program 31.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 inf 31.5

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

      \[\leadsto R \cdot \sqrt{\color{blue}{\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) \cdot \left(\lambda_2 \cdot \lambda_2 + \lambda_1 \cdot \left(\lambda_1 - \lambda_2 \cdot 2\right)\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]

    if 1.4887928748670235e+79 < phi2

    1. Initial program 50.5

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

      \[\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.4192043883179198 \cdot 10^{+170}:\\ \;\;\;\;\left(-R\right) \cdot \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} \cdot \frac{\phi_2}{\phi_1} + \left(\frac{\left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right) \cdot \lambda_2}{\frac{\phi_1}{\lambda_1}} + \phi_2\right)\right)\\ \mathbf{elif}\;\phi_2 \le 1.4887928748670235 \cdot 10^{+79}:\\ \;\;\;\;R \cdot \sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\left(\lambda_1 - 2 \cdot \lambda_2\right) \cdot \lambda_1 + \lambda_2 \cdot \lambda_2\right) \cdot \left(\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)\right)}\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 - \phi_1\right)\\ \end{array}\]

Reproduce

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