Average Error: 10.0 → 10.0
Time: 2.3s
Precision: binary64
\[\left(\left(x \cdot x\right) \cdot \left(4 + k \cdot k\right) + x \cdot \left(\left(2 \cdot n\right) \cdot k\right)\right) + \left(\left(-100\right) + n \cdot n\right)\]
\[n \cdot n + \left(x \cdot \left(\left(2 \cdot n\right) \cdot k + x \cdot \left(4 + k \cdot k\right)\right) - 100\right)\]

Error

Bits error versus x

Bits error versus k

Bits error versus n

Derivation

  1. Initial program 10.0

    \[\left(\left(x \cdot x\right) \cdot \left(4 + k \cdot k\right) + x \cdot \left(\left(2 \cdot n\right) \cdot k\right)\right) + \left(\left(-100\right) + n \cdot n\right)\]
  2. Simplified10.0

    \[\leadsto \color{blue}{n \cdot n + \left(x \cdot \left(\left(2 \cdot n\right) \cdot k + x \cdot \left(4 + k \cdot k\right)\right) - 100\right)}\]
  3. Final simplification10.0

    \[\leadsto n \cdot n + \left(x \cdot \left(\left(2 \cdot n\right) \cdot k + x \cdot \left(4 + k \cdot k\right)\right) - 100\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x k n)
  :name "(+ (+ (* (* x x) (+ 4.0 (* k k))) (* x (* (* 2.0 n) k))) (+ (- 100.0) (* n n)))"
  :precision binary64
  (+ (+ (* (* x x) (+ 4.0 (* k k))) (* x (* (* 2.0 n) k))) (+ (neg 100.0) (* n n))))