Average Error: 39.0 → 34.1
Time: 10.4s
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}\;\lambda_1 - \lambda_2 \le -1.2975233664675797 \cdot 10^{155}:\\ \;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{-1}{\lambda_1}\right)}\\ \mathbf{elif}\;\lambda_1 - \lambda_2 \le 3.69636763241291605 \cdot 10^{140}:\\ \;\;\;\;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)}\\ \mathbf{else}:\\ \;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{1}{\lambda_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}\;\lambda_1 - \lambda_2 \le -1.2975233664675797 \cdot 10^{155}:\\
\;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{-1}{\lambda_1}\right)}\\

\mathbf{elif}\;\lambda_1 - \lambda_2 \le 3.69636763241291605 \cdot 10^{140}:\\
\;\;\;\;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)}\\

\mathbf{else}:\\
\;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{1}{\lambda_1}\right)}\\

\end{array}
double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r75150 = R;
        double r75151 = lambda1;
        double r75152 = lambda2;
        double r75153 = r75151 - r75152;
        double r75154 = phi1;
        double r75155 = phi2;
        double r75156 = r75154 + r75155;
        double r75157 = 2.0;
        double r75158 = r75156 / r75157;
        double r75159 = cos(r75158);
        double r75160 = r75153 * r75159;
        double r75161 = r75160 * r75160;
        double r75162 = r75154 - r75155;
        double r75163 = r75162 * r75162;
        double r75164 = r75161 + r75163;
        double r75165 = sqrt(r75164);
        double r75166 = r75150 * r75165;
        return r75166;
}

double f(double R, double lambda1, double lambda2, double phi1, double phi2) {
        double r75167 = lambda1;
        double r75168 = lambda2;
        double r75169 = r75167 - r75168;
        double r75170 = -1.2975233664675797e+155;
        bool r75171 = r75169 <= r75170;
        double r75172 = R;
        double r75173 = 0.5;
        double r75174 = phi2;
        double r75175 = phi1;
        double r75176 = r75174 + r75175;
        double r75177 = r75173 * r75176;
        double r75178 = cos(r75177);
        double r75179 = log(r75178);
        double r75180 = -1.0;
        double r75181 = r75180 / r75167;
        double r75182 = log(r75181);
        double r75183 = r75179 - r75182;
        double r75184 = exp(r75183);
        double r75185 = r75172 * r75184;
        double r75186 = 3.696367632412916e+140;
        bool r75187 = r75169 <= r75186;
        double r75188 = r75175 + r75174;
        double r75189 = 2.0;
        double r75190 = r75188 / r75189;
        double r75191 = cos(r75190);
        double r75192 = r75169 * r75191;
        double r75193 = r75192 * r75192;
        double r75194 = r75175 - r75174;
        double r75195 = r75194 * r75194;
        double r75196 = r75193 + r75195;
        double r75197 = sqrt(r75196);
        double r75198 = r75172 * r75197;
        double r75199 = 1.0;
        double r75200 = r75199 / r75167;
        double r75201 = log(r75200);
        double r75202 = r75179 - r75201;
        double r75203 = exp(r75202);
        double r75204 = r75172 * r75203;
        double r75205 = r75187 ? r75198 : r75204;
        double r75206 = r75171 ? r75185 : r75205;
        return r75206;
}

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 (- lambda1 lambda2) < -1.2975233664675797e+155

    1. Initial program 64.0

      \[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 add-cube-cbrt64.0

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

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}}\]
    6. Using strategy rm
    7. Applied pow164.0

      \[\leadsto R \cdot e^{\log \color{blue}{\left({\left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}^{1}\right)}}\]
    8. Applied log-pow64.0

      \[\leadsto R \cdot e^{\color{blue}{1 \cdot \log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}}\]
    9. Applied exp-prod64.0

      \[\leadsto R \cdot \color{blue}{{\left(e^{1}\right)}^{\left(\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)\right)}}\]
    10. Simplified64.0

      \[\leadsto R \cdot {\color{blue}{e}}^{\left(\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)\right)}\]
    11. Taylor expanded around -inf 49.4

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{-1}{\lambda_1}\right)}}\]

    if -1.2975233664675797e+155 < (- lambda1 lambda2) < 3.696367632412916e+140

    1. Initial program 23.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)}\]

    if 3.696367632412916e+140 < (- lambda1 lambda2)

    1. Initial program 61.0

      \[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 add-cube-cbrt61.0

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

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}}\]
    6. Using strategy rm
    7. Applied pow161.2

      \[\leadsto R \cdot e^{\log \color{blue}{\left({\left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}^{1}\right)}}\]
    8. Applied log-pow61.2

      \[\leadsto R \cdot e^{\color{blue}{1 \cdot \log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)}}\]
    9. Applied exp-prod61.2

      \[\leadsto R \cdot \color{blue}{{\left(e^{1}\right)}^{\left(\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)\right)}}\]
    10. Simplified61.2

      \[\leadsto R \cdot {\color{blue}{e}}^{\left(\log \left(\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \left(\left(\sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\right) \cdot \sqrt[3]{\cos \left(\frac{\phi_1 + \phi_2}{2}\right)}\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)}\right)\right)}\]
    11. Taylor expanded around inf 50.4

      \[\leadsto R \cdot \color{blue}{e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{1}{\lambda_1}\right)}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification34.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;\lambda_1 - \lambda_2 \le -1.2975233664675797 \cdot 10^{155}:\\ \;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{-1}{\lambda_1}\right)}\\ \mathbf{elif}\;\lambda_1 - \lambda_2 \le 3.69636763241291605 \cdot 10^{140}:\\ \;\;\;\;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)}\\ \mathbf{else}:\\ \;\;\;\;R \cdot e^{\log \left(\cos \left(0.5 \cdot \left(\phi_2 + \phi_1\right)\right)\right) - \log \left(\frac{1}{\lambda_1}\right)}\\ \end{array}\]

Reproduce

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