Average Error: 37.2 → 32.4
Time: 2.2m
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 -3.0662818288594446 \cdot 10^{+237}:\\ \;\;\;\;\left(\left(-\phi_2\right) - \frac{\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right) \cdot \left(\frac{\phi_2 \cdot \lambda_1}{\frac{\phi_1}{\lambda_2}} + \lambda_1 \cdot \lambda_2\right)}{\frac{\phi_1}{\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)}}\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le -1.0394759489432084 \cdot 10^{-191}:\\ \;\;\;\;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(\sqrt[3]{\left(\cos \left(\frac{\phi_1 + \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \left(\lambda_1 - \lambda_2\right)\right)}\\ \mathbf{elif}\;\phi_2 \le -1.9738092010903888 \cdot 10^{-279}:\\ \;\;\;\;\left(\lambda_1 - \lambda_2\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le 5.379067032638095 \cdot 10^{+106}:\\ \;\;\;\;\sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\lambda_2 \cdot \left(\lambda_2 - 2 \cdot \lambda_1\right) + \lambda_1 \cdot \lambda_1\right) \cdot \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 R\\ \mathbf{else}:\\ \;\;\;\;\left(\phi_2 - \phi_1\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 5 regimes
  2. if phi2 < -3.0662818288594446e+237

    1. Initial program 60.8

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

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

      \[\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 \left(\lambda_2 - 2 \cdot \lambda_1\right) + \lambda_1 \cdot \lambda_1\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    4. Taylor expanded around inf 48.0

      \[\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)}\]
    5. Simplified45.5

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

    if -3.0662818288594446e+237 < phi2 < -1.0394759489432084e-191

    1. Initial program 35.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 add-cbrt-cube35.9

      \[\leadsto 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 \color{blue}{\sqrt[3]{\left(\cos \left(\frac{\phi_1 + \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\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.0394759489432084e-191 < phi2 < -1.9738092010903888e-279

    1. Initial program 32.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)}\]
    2. Taylor expanded around inf 32.3

      \[\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. Simplified32.2

      \[\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 \left(\lambda_2 - 2 \cdot \lambda_1\right) + \lambda_1 \cdot \lambda_1\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]
    4. Taylor expanded around 0 45.9

      \[\leadsto R \cdot \color{blue}{\left(\lambda_1 - \lambda_2\right)}\]

    if -1.9738092010903888e-279 < phi2 < 5.379067032638095e+106

    1. Initial program 30.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. Taylor expanded around inf 30.2

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

      \[\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 \left(\lambda_2 - 2 \cdot \lambda_1\right) + \lambda_1 \cdot \lambda_1\right)} + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)}\]

    if 5.379067032638095e+106 < phi2

    1. Initial program 53.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. Taylor expanded around 0 18.5

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \le -3.0662818288594446 \cdot 10^{+237}:\\ \;\;\;\;\left(\left(-\phi_2\right) - \frac{\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right) \cdot \left(\frac{\phi_2 \cdot \lambda_1}{\frac{\phi_1}{\lambda_2}} + \lambda_1 \cdot \lambda_2\right)}{\frac{\phi_1}{\cos \left(\frac{1}{2} \cdot \left(\phi_1 + \phi_2\right)\right)}}\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le -1.0394759489432084 \cdot 10^{-191}:\\ \;\;\;\;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(\sqrt[3]{\left(\cos \left(\frac{\phi_1 + \phi_2}{2}\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)\right) \cdot \cos \left(\frac{\phi_1 + \phi_2}{2}\right)} \cdot \left(\lambda_1 - \lambda_2\right)\right)}\\ \mathbf{elif}\;\phi_2 \le -1.9738092010903888 \cdot 10^{-279}:\\ \;\;\;\;\left(\lambda_1 - \lambda_2\right) \cdot R\\ \mathbf{elif}\;\phi_2 \le 5.379067032638095 \cdot 10^{+106}:\\ \;\;\;\;\sqrt{\left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right) + \left(\lambda_2 \cdot \left(\lambda_2 - 2 \cdot \lambda_1\right) + \lambda_1 \cdot \lambda_1\right) \cdot \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 R\\ \mathbf{else}:\\ \;\;\;\;\left(\phi_2 - \phi_1\right) \cdot R\\ \end{array}\]

Runtime

Time bar (total: 2.2m)Debug logProfile

BaselineHerbieOracleSpan%
Regimes37.232.419.417.827.3%
herbie shell --seed 2018297 
(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))))))