Average Error: 7.7 → 6.9
Time: 4.3s
Precision: binary64
\[\left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x2 \cdot \left(\left(\left(x1 - x2\right) + x3\right) + x4\right)\right) + x3 \cdot \left(\left(\left(x1 + x2\right) - x3\right) + x4\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - x1 \cdot x3\right) - x1 \cdot x2\right) - x4\]
\[\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x2 \cdot \left(\left(\left(x1 - x2\right) + x3\right) + x4\right)\right) + \left(x3 \cdot \left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) - x2 \cdot x4\right) - \left(x1 \cdot \left(x3 + x2\right) + x4\right)\right)\]

Error

Bits error versus x1

Bits error versus x4

Bits error versus x2

Bits error versus x3

Derivation

  1. Initial program 7.7

    \[\left(\left(\left(\left(\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x2 \cdot \left(\left(\left(x1 - x2\right) + x3\right) + x4\right)\right) + x3 \cdot \left(\left(\left(x1 + x2\right) - x3\right) + x4\right)\right) - \left(x2 \cdot x3\right) \cdot x4\right) - x1 \cdot x3\right) - x1 \cdot x2\right) - x4\]
  2. Simplified6.9

    \[\leadsto \color{blue}{\left(\left(x1 \cdot x4\right) \cdot \left(\left(\left(\left(-x1\right) + x2\right) + x3\right) - x4\right) + x2 \cdot \left(\left(\left(x1 - x2\right) + x3\right) + x4\right)\right) + \left(x3 \cdot \left(\left(\left(\left(x1 + x2\right) - x3\right) + x4\right) - x2 \cdot x4\right) - \left(x1 \cdot \left(x3 + x2\right) + x4\right)\right)}\]
  3. Final simplification6.9

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

Reproduce

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