Average Error: 21.2 → 21.2
Time: 1.3s
Precision: binary64
\[\frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\left(2 \cdot a - 1\right) \cdot \left(2 \cdot a - 3\right)} - \left(-timeout\right) \cdot 4\]
\[timeout \cdot 4 + \frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\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 21.2

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

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

    \[\leadsto timeout \cdot 4 + \frac{\left(\left(a + b\right) - 1\right) \cdot \left(\left(a - b\right) - 1\right)}{\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) 1)) (* (- (* 2 a) 1) (- (* 2 a) 3))) (* (- timeout) 4))"
  :precision binary64
  (- (/ (* (- (+ a b) 1.0) (- (- a b) 1.0)) (* (- (* 2.0 a) 1.0) (- (* 2.0 a) 3.0))) (* (neg timeout) 4.0)))