Average Error: 16.6 → 16.6
Time: 6.3s
Precision: binary64
\[{\left(\left(-2\right) \cdot \left(\left(\left({h2}^{2} \cdot {h3}^{2}\right) \cdot a1 + \left({h1}^{2} \cdot {h3}^{2}\right) \cdot a2\right) + \left({h1}^{2} \cdot {h2}^{2}\right) \cdot a3\right)\right)}^{2}\]
\[{\left(\left(-2\right) \cdot \left(\left(\left({h2}^{2} \cdot {h3}^{2}\right) \cdot a1 + \left({h1}^{2} \cdot {h3}^{2}\right) \cdot a2\right) + \left({h1}^{2} \cdot {h2}^{2}\right) \cdot a3\right)\right)}^{2}\]

Error

Bits error versus h2

Bits error versus h3

Bits error versus a1

Bits error versus h1

Bits error versus a2

Bits error versus a3

Derivation

  1. Initial program 16.6

    \[{\left(\left(-2\right) \cdot \left(\left(\left({h2}^{2} \cdot {h3}^{2}\right) \cdot a1 + \left({h1}^{2} \cdot {h3}^{2}\right) \cdot a2\right) + \left({h1}^{2} \cdot {h2}^{2}\right) \cdot a3\right)\right)}^{2}\]
  2. Final simplification16.6

    \[\leadsto {\left(\left(-2\right) \cdot \left(\left(\left({h2}^{2} \cdot {h3}^{2}\right) \cdot a1 + \left({h1}^{2} \cdot {h3}^{2}\right) \cdot a2\right) + \left({h1}^{2} \cdot {h2}^{2}\right) \cdot a3\right)\right)}^{2}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (h2 h3 a1 h1 a2 a3)
  :name "(pow (* (- 2) (+ (+ (* (* (pow h2 2) (pow h3 2)) a1) (* (* (pow h1 2) (pow h3 2)) a2)) (* (* (pow h1 2) (pow h2 2)) a3))) 2)"
  :precision binary64
  (pow (* (neg 2.0) (+ (+ (* (* (pow h2 2.0) (pow h3 2.0)) a1) (* (* (pow h1 2.0) (pow h3 2.0)) a2)) (* (* (pow h1 2.0) (pow h2 2.0)) a3))) 2.0))