Average Error: 0.6 → 0.5
Time: 35.5s
Precision: 64
Internal precision: 384
\[0.0 + \left(\left(\left(w0 \cdot \left(0 - m0\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right)\right)\right) \cdot 1 + \left(\left(\left(w1 \cdot \left(0 - m1\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right)\right)\right) \cdot 1 + \left(\left(\left(w2 \cdot \left(0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right) \cdot 1 + 0.0\right)\right)\right)\]
\[\left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + {a2}^2 \cdot \left(\frac{-m2}{w2} \cdot -3\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]

Error

Bits error versus m0

Bits error versus m1

Bits error versus m2

Bits error versus w0

Bits error versus w1

Bits error versus w2

Bits error versus a0

Bits error versus a1

Bits error versus a2

Derivation

  1. Initial program 0.6

    \[0.0 + \left(\left(\left(w0 \cdot \left(0 - m0\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right)\right)\right) \cdot 1 + \left(\left(\left(w1 \cdot \left(0 - m1\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right)\right)\right) \cdot 1 + \left(\left(\left(w2 \cdot \left(0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right) \cdot 1 + 0.0\right)\right)\right)\]
  2. Applied simplify 0.6

    \[\leadsto \color{blue}{\left({\left(\frac{a1}{w1}\right)}^2 \cdot \left(\left(-w1\right) \cdot \left(m1 \cdot -3\right)\right) + {\left(\frac{a2}{w2}\right)}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)}\]
  3. Using strategy rm
  4. Applied square-mult 0.6

    \[\leadsto \left(\color{blue}{\left(\frac{a1}{w1} \cdot \frac{a1}{w1}\right)} \cdot \left(\left(-w1\right) \cdot \left(m1 \cdot -3\right)\right) + {\left(\frac{a2}{w2}\right)}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  5. Applied associate-*l* 0.6

    \[\leadsto \left(\color{blue}{\frac{a1}{w1} \cdot \left(\frac{a1}{w1} \cdot \left(\left(-w1\right) \cdot \left(m1 \cdot -3\right)\right)\right)} + {\left(\frac{a2}{w2}\right)}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  6. Applied simplify 0.6

    \[\leadsto \left(\frac{a1}{w1} \cdot \color{blue}{\left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right)} + {\left(\frac{a2}{w2}\right)}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  7. Using strategy rm
  8. Applied div-inv 0.6

    \[\leadsto \left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + {\color{blue}{\left(a2 \cdot \frac{1}{w2}\right)}}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  9. Applied square-prod 0.6

    \[\leadsto \left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + \color{blue}{\left({a2}^2 \cdot {\left(\frac{1}{w2}\right)}^2\right)} \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  10. Applied associate-*l* 0.6

    \[\leadsto \left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + \color{blue}{{a2}^2 \cdot \left({\left(\frac{1}{w2}\right)}^2 \cdot \left(\left(-m2\right) \cdot \left(w2 \cdot -3\right)\right)\right)}\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  11. Applied simplify 0.5

    \[\leadsto \left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + {a2}^2 \cdot \color{blue}{\left(\left(\frac{1}{w2} \cdot \left(-m2\right)\right) \cdot -3\right)}\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  12. Applied simplify 0.5

    \[\leadsto \left(\frac{a1}{w1} \cdot \left(\left(\frac{a1}{1} \cdot \left(-m1\right)\right) \cdot -3\right) + {a2}^2 \cdot \left(\color{blue}{\frac{-m2}{w2}} \cdot -3\right)\right) + \left(\left(0.0 + 0.0\right) + \left(\left(m0 \cdot w0\right) \cdot \left(--3\right)\right) \cdot \left(\frac{a0}{w0} \cdot \frac{a0}{w0}\right)\right)\]
  13. Removed slow pow expressions

Runtime

Time bar (total: 35.5s) Debug log

Please include this information when filing a bug report:

herbie shell --seed '#(3052192724 3812927732 3686175817 630908657 2373248591 511094450)'
(FPCore (m0 m1 m2 w0 w1 w2 a0 a1 a2)
  :name "test04_dqmom9"
  :pre (and (< -1 m0 1) (< -1 m1 1) (< -1 m2 1) (< 1e-05 w0 1) (< 1e-05 w1 1) (< 1e-05 w2 1) (< 1e-05 a0 1) (< 1e-05 a1 1) (< 1e-05 a2 1))
  (+ 0.0 (+ (* (* (* w0 (- 0 m0)) (* -3 (* (* 1 (/ a0 w0)) (/ a0 w0)))) 1) (+ (* (* (* w1 (- 0 m1)) (* -3 (* (* 1 (/ a1 w1)) (/ a1 w1)))) 1) (+ (* (* (* w2 (- 0 m2)) (* -3 (* (* 1 (/ a2 w2)) (/ a2 w2)))) 1) 0.0)))))