Average Error: 37.8 → 34.5
Time: 4.6m
Precision: 64
Internal Precision: 1344
\[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 -2.163601029164273 \cdot 10^{+154}:\\ \;\;\;\;\left(\left(-\phi_2\right) - \frac{\left(\lambda_1 \cdot \lambda_2 + \frac{\lambda_1 \cdot \phi_2}{\frac{\phi_1}{\lambda_2}}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)}{\frac{\phi_1}{\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)}}\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le 1.606746732861342 \cdot 10^{+143}:\\ \;\;\;\;\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_2 + \phi_1}{2}\right)\right) \cdot \left(\left(\log \left(\sqrt{e^{\cos \left(\frac{\phi_2 + \phi_1}{2}\right)}}\right) + \log \left(\sqrt{e^{\cos \left(\frac{\phi_2 + \phi_1}{2}\right)}}\right)\right) \cdot \left(\lambda_1 - \lambda_2\right)\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\frac{\lambda_2}{\frac{\phi_1}{\lambda_1}} + \frac{\left(\phi_2 \cdot \lambda_2\right) \cdot \frac{\lambda_1}{\phi_1}}{\phi_1}\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) + \phi_2\right) \cdot R\\ \end{array}\]

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 < -2.163601029164273e+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. Initial simplification60.9

      \[\leadsto \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_2 + \phi_1}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\right)} \cdot R\]
    3. Using strategy rm
    4. Applied add-log-exp60.9

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

      \[\leadsto \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)} \cdot R\]
    6. Simplified46.1

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

    if -2.163601029164273e+154 < phi2 < 1.606746732861342e+143

    1. Initial program 31.3

      \[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. Initial simplification31.3

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

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

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

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

    if 1.606746732861342e+143 < phi2

    1. Initial program 59.1

      \[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. Initial simplification59.1

      \[\leadsto \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_2 + \phi_1}{2}\right)\right) \cdot \left(\left(\lambda_1 - \lambda_2\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\right)} \cdot R\]
    3. Using strategy rm
    4. Applied add-log-exp59.1

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

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

      \[\leadsto \color{blue}{\left(\phi_2 + \left(\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right) \cdot \cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)\right) \cdot \left(\frac{\frac{\lambda_1}{\phi_1} \cdot \left(\lambda_2 \cdot \phi_2\right)}{\phi_1} + \frac{\lambda_2}{\frac{\phi_1}{\lambda_1}}\right)\right)} \cdot R\]
  3. Recombined 3 regimes into one program.
  4. Final simplification34.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \le -2.163601029164273 \cdot 10^{+154}:\\ \;\;\;\;\left(\left(-\phi_2\right) - \frac{\left(\lambda_1 \cdot \lambda_2 + \frac{\lambda_1 \cdot \phi_2}{\frac{\phi_1}{\lambda_2}}\right) \cdot \cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)}{\frac{\phi_1}{\cos \left(\left(\phi_2 + \phi_1\right) \cdot \frac{1}{2}\right)}}\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le 1.606746732861342 \cdot 10^{+143}:\\ \;\;\;\;\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_2 + \phi_1}{2}\right)\right) \cdot \left(\left(\log \left(\sqrt{e^{\cos \left(\frac{\phi_2 + \phi_1}{2}\right)}}\right) + \log \left(\sqrt{e^{\cos \left(\frac{\phi_2 + \phi_1}{2}\right)}}\right)\right) \cdot \left(\lambda_1 - \lambda_2\right)\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\frac{\lambda_2}{\frac{\phi_1}{\lambda_1}} + \frac{\left(\phi_2 \cdot \lambda_2\right) \cdot \frac{\lambda_1}{\phi_1}}{\phi_1}\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) + \phi_2\right) \cdot R\\ \end{array}\]

Runtime

Time bar (total: 4.6m)Debug logProfile

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