Average Error: 2.5 → 2.5
Time: 8.5s
Precision: binary64
\[\left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x5\right) + x6\right) + \left(x2 \cdot x5\right) \cdot \left(\left(\left(\left(\left(x1 - x2\right) + x3\right) + x4\right) - x5\right) + x6\right)\right) + \left(x3 \cdot x6\right) \cdot \left(\left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) + x5\right) - x6\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - \left(x1 \cdot x3\right) \cdot x5\right) - \left(x1 \cdot x2\right) \cdot x6\right) - \left(x4 \cdot x5\right) \cdot x6\]
\[\left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x5\right) + x6\right) + \left(x2 \cdot x5\right) \cdot \left(\left(\left(\left(\left(x1 - x2\right) + x3\right) + x4\right) - x5\right) + x6\right)\right) + \left(x3 \cdot x6\right) \cdot \left(\left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) + x5\right) - x6\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - \left(x1 \cdot x3\right) \cdot x5\right) - \left(x1 \cdot x2\right) \cdot x6\right) - \left(x4 \cdot x5\right) \cdot x6\]

Error

Bits error versus x1

Bits error versus x4

Bits error versus x2

Bits error versus x3

Bits error versus x5

Bits error versus x6

Derivation

  1. Initial program 2.5

    \[\left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x5\right) + x6\right) + \left(x2 \cdot x5\right) \cdot \left(\left(\left(\left(\left(x1 - x2\right) + x3\right) + x4\right) - x5\right) + x6\right)\right) + \left(x3 \cdot x6\right) \cdot \left(\left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) + x5\right) - x6\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - \left(x1 \cdot x3\right) \cdot x5\right) - \left(x1 \cdot x2\right) \cdot x6\right) - \left(x4 \cdot x5\right) \cdot x6\]
  2. Final simplification2.5

    \[\leadsto \left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x5\right) + x6\right) + \left(x2 \cdot x5\right) \cdot \left(\left(\left(\left(\left(x1 - x2\right) + x3\right) + x4\right) - x5\right) + x6\right)\right) + \left(x3 \cdot x6\right) \cdot \left(\left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) + x5\right) - x6\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - \left(x1 \cdot x3\right) \cdot x5\right) - \left(x1 \cdot x2\right) \cdot x6\right) - \left(x4 \cdot x5\right) \cdot x6\]

Reproduce

herbie shell --seed 2020152 
(FPCore (x1 x4 x2 x3 x5 x6)
  :name "(- (- (- (- (+ (+ (* (* x1 x4) (+ (+ (- (+ (+ (- x1) x2) x3) x4) x5) x6)) (* (* x2 x5) (+ (- (+ (+ (- x1 x2) x3) x4) x5) x6))) (* (* x3 x6) (- (+ (+ (- (+ x1 x2) x3) x4) x5) x6))) (* (* x2 x3) x4)) (* (* x1 x3) x5)) (* (* x1 x2) x6)) (* (* x4 x5) x6))"
  :precision binary64
  (- (- (- (- (+ (+ (* (* x1 x4) (+ (+ (- (+ (+ (neg x1) x2) x3) x4) x5) x6)) (* (* x2 x5) (+ (- (+ (+ (- x1 x2) x3) x4) x5) x6))) (* (* x3 x6) (- (+ (+ (- (+ x1 x2) x3) x4) x5) x6))) (* (* x2 x3) x4)) (* (* x1 x3) x5)) (* (* x1 x2) x6)) (* (* x4 x5) x6)))