Average Error: 36.9 → 33.4
Time: 6.3m
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 -1.3482533530799334 \cdot 10^{+160}:\\ \;\;\;\;\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.0835111535701816 \cdot 10^{+154}:\\ \;\;\;\;\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \sqrt[3]{\left(\cos \left(\frac{\phi_2 + \phi_1}{2}\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\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) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 + \left(\frac{\frac{\lambda_1}{\phi_1} \cdot \left(\phi_2 \cdot \lambda_2\right)}{\phi_1} + \frac{\lambda_2}{\frac{\phi_1}{\lambda_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)\right)\\ \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 < -1.3482533530799334e+160

    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. Initial simplification60.8

      \[\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. Taylor expanded around inf 45.3

      \[\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\]
    4. Simplified43.0

      \[\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 -1.3482533530799334e+160 < phi2 < 1.0835111535701816e+154

    1. Initial program 30.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. Initial simplification30.5

      \[\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-cbrt-cube30.5

      \[\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}{\sqrt[3]{\left(\cos \left(\frac{\phi_2 + \phi_1}{2}\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)}}\right)} \cdot R\]

    if 1.0835111535701816e+154 < phi2

    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. Initial simplification60.8

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

      \[\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}{\sqrt[3]{\left(\cos \left(\frac{\phi_2 + \phi_1}{2}\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\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.8

      \[\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 simplification33.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\phi_2 \le -1.3482533530799334 \cdot 10^{+160}:\\ \;\;\;\;\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.0835111535701816 \cdot 10^{+154}:\\ \;\;\;\;\sqrt{\left(\left(\lambda_1 - \lambda_2\right) \cdot \sqrt[3]{\left(\cos \left(\frac{\phi_2 + \phi_1}{2}\right) \cdot \cos \left(\frac{\phi_2 + \phi_1}{2}\right)\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) + \left(\phi_1 - \phi_2\right) \cdot \left(\phi_1 - \phi_2\right)} \cdot R\\ \mathbf{else}:\\ \;\;\;\;R \cdot \left(\phi_2 + \left(\frac{\frac{\lambda_1}{\phi_1} \cdot \left(\phi_2 \cdot \lambda_2\right)}{\phi_1} + \frac{\lambda_2}{\frac{\phi_1}{\lambda_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)\right)\\ \end{array}\]

Runtime

Time bar (total: 6.3m)Debug logProfile

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