Average Error: 0.0 → 0.0
Time: 1.1s
Precision: binary64
\[\frac{\frac{\left(a + b\right) - 1}{\left(a - b\right) - 3}}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)} - \left(-timeout\right) \cdot 4\]
\[timeout \cdot 4 + \frac{\frac{\left(a + b\right) - 1}{\left(a - b\right) - 3}}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}\]

Error

Bits error versus a

Bits error versus b

Bits error versus timeout

Derivation

  1. Initial program 0.0

    \[\frac{\frac{\left(a + b\right) - 1}{\left(a - b\right) - 3}}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)} - \left(-timeout\right) \cdot 4\]
  2. Simplified0.0

    \[\leadsto \color{blue}{timeout \cdot 4 + \frac{\frac{\left(a + b\right) - 1}{\left(a - b\right) - 3}}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}}\]
  3. Final simplification0.0

    \[\leadsto timeout \cdot 4 + \frac{\frac{\left(a + b\right) - 1}{\left(a - b\right) - 3}}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a b timeout)
  :name "(- (/ (/ (- (+ a b) 1) (- (- a b) 3)) (* (- (* 2 a) 1) (- (* 2 a) 3))) (* (- timeout) 4))"
  :precision binary64
  (- (/ (/ (- (+ a b) 1.0) (- (- a b) 3.0)) (* (- (* 2.0 a) 1.0) (- (* 2.0 a) 3.0))) (* (neg timeout) 4.0)))