Average Error: 12.3 → 0.8
Time: 4.7m
Precision: 64
Internal Precision: 384
\[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
\[\begin{array}{l} \mathbf{if}\;v \le -8.982586312012436 \cdot 10^{+76}:\\ \;\;\;\;\left(\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - 0.25 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + \frac{\left(\frac{0.125}{v} + 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{v}\\ \mathbf{if}\;v \le 2.9582720470002017 \cdot 10^{-15}:\\ \;\;\;\;\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - \left(\left(1 + v \cdot v\right) \cdot \left(3 - \left(v + v\right)\right)\right) \cdot \frac{\left(\left(1 + v\right) \cdot 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{1 - \left(v \cdot v\right) \cdot \left(v \cdot v\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - 0.25 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + \frac{\left(\frac{0.125}{v} + 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{v}\\ \end{array}\]

Error

Bits error versus v

Bits error versus w

Bits error versus r

Derivation

  1. Split input into 2 regimes
  2. if v < -8.982586312012436e+76 or 2.9582720470002017e-15 < v

    1. Initial program 16.9

      \[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
    2. Taylor expanded around inf 17.8

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\left(0.25 \cdot \left({w}^{2} \cdot {r}^{2}\right) - \left(0.125 \cdot \frac{{w}^{2} \cdot {r}^{2}}{{v}^{2}} + 0.125 \cdot \frac{{w}^{2} \cdot {r}^{2}}{v}\right)\right)}\right) - 4.5\]
    3. Applied simplify0.9

      \[\leadsto \color{blue}{\frac{2}{r \cdot r} + \left(\left(\left(3 - 4.5\right) - \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right) \cdot 0.25\right) + \frac{\left(w \cdot r\right) \cdot \left(w \cdot r\right)}{v} \cdot \left(0.125 + \frac{0.125}{v}\right)\right)}\]

    if -8.982586312012436e+76 < v < 2.9582720470002017e-15

    1. Initial program 8.3

      \[\left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 - v}\right) - 4.5\]
    2. Using strategy rm
    3. Applied flip--8.3

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{\color{blue}{\frac{1 \cdot 1 - v \cdot v}{1 + v}}}\right) - 4.5\]
    4. Applied associate-/r/8.3

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\frac{\left(0.125 \cdot \left(3 - 2 \cdot v\right)\right) \cdot \left(\left(\left(w \cdot w\right) \cdot r\right) \cdot r\right)}{1 \cdot 1 - v \cdot v} \cdot \left(1 + v\right)}\right) - 4.5\]
    5. Applied simplify0.4

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \color{blue}{\frac{0.125 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{\frac{1 - v \cdot v}{3 - \left(v + v\right)}}} \cdot \left(1 + v\right)\right) - 4.5\]
    6. Using strategy rm
    7. Applied flip--0.4

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{\frac{\color{blue}{\frac{1 \cdot 1 - \left(v \cdot v\right) \cdot \left(v \cdot v\right)}{1 + v \cdot v}}}{3 - \left(v + v\right)}} \cdot \left(1 + v\right)\right) - 4.5\]
    8. Applied associate-/l/0.4

      \[\leadsto \left(\left(3 + \frac{2}{r \cdot r}\right) - \frac{0.125 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{\color{blue}{\frac{1 \cdot 1 - \left(v \cdot v\right) \cdot \left(v \cdot v\right)}{\left(3 - \left(v + v\right)\right) \cdot \left(1 + v \cdot v\right)}}} \cdot \left(1 + v\right)\right) - 4.5\]
  3. Recombined 2 regimes into one program.
  4. Removed slow pow expressions.
  5. Applied simplify0.8

    \[\leadsto \color{blue}{\begin{array}{l} \mathbf{if}\;v \le -8.982586312012436 \cdot 10^{+76}:\\ \;\;\;\;\left(\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - 0.25 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + \frac{\left(\frac{0.125}{v} + 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{v}\\ \mathbf{if}\;v \le 2.9582720470002017 \cdot 10^{-15}:\\ \;\;\;\;\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - \left(\left(1 + v \cdot v\right) \cdot \left(3 - \left(v + v\right)\right)\right) \cdot \frac{\left(\left(1 + v\right) \cdot 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{1 - \left(v \cdot v\right) \cdot \left(v \cdot v\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\left(\left(3 - 4.5\right) + \frac{\frac{2}{r}}{r}\right) - 0.25 \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)\right) + \frac{\left(\frac{0.125}{v} + 0.125\right) \cdot \left(\left(w \cdot r\right) \cdot \left(w \cdot r\right)\right)}{v}\\ \end{array}}\]

Runtime

Time bar (total: 4.7m)Debug log

herbie shell --seed '#(3622638036 3041702260 3649696288 21285302 1742518495 296600799)' 
(FPCore (v w r)
  :name "Rosa's TurbineBenchmark"
  (- (- (+ 3 (/ 2 (* r r))) (/ (* (* 0.125 (- 3 (* 2 v))) (* (* (* w w) r) r)) (- 1 v))) 4.5))