Average Error: 61.8 → 0.2
Time: 4.0s
Precision: 64
Internal precision: 640
\[\left(1 + t \cdot 2 \cdot 10^{-16}\right) \cdot \left(1 + t \cdot 2 \cdot 10^{-16}\right) + \left(-1 - 2 \cdot \left(t \cdot 2 \cdot 10^{-16}\right)\right)\]
\[\left(3.9999999999999997 \cdot 10^{-32} \cdot t\right) \cdot t\]

Error

Bits error versus t

Target

Original61.8
Comparison50.6
Herbie0.2
\[ (\left(1 + t \cdot 2 \cdot 10^{-16}\right) \cdot \left(1 + t \cdot 2 \cdot 10^{-16}\right) + \left(-1 - 2 \cdot \left(t \cdot 2 \cdot 10^{-16}\right)\right))_* \]

Derivation

  1. Initial program 61.8

    \[\left(1 + t \cdot 2 \cdot 10^{-16}\right) \cdot \left(1 + t \cdot 2 \cdot 10^{-16}\right) + \left(-1 - 2 \cdot \left(t \cdot 2 \cdot 10^{-16}\right)\right)\]
  2. Applied simplify 61.8

    \[\leadsto \color{blue}{\left(2 \cdot 10^{-16} \cdot t\right) \cdot \left(2 \cdot 10^{-16} \cdot t + 2\right) - \left(2 \cdot 10^{-16} + 2 \cdot 10^{-16}\right) \cdot t}\]
  3. Applied taylor 0.3

    \[\leadsto 3.9999999999999997 \cdot 10^{-32} \cdot {t}^2\]
  4. Taylor expanded around 0 0.3

    \[\leadsto \color{blue}{3.9999999999999997 \cdot 10^{-32} \cdot {t}^2}\]
  5. Using strategy rm
  6. Applied square-mult 0.3

    \[\leadsto 3.9999999999999997 \cdot 10^{-32} \cdot \color{blue}{\left(t \cdot t\right)}\]
  7. Applied associate-*r* 0.2

    \[\leadsto \color{blue}{\left(3.9999999999999997 \cdot 10^{-32} \cdot t\right) \cdot t}\]
  8. Removed slow pow expressions

Runtime

Time bar (total: 4.0s) Debug logProfile

Please include this information when filing a bug report:

herbie shell --seed '#(1064524629 4159152179 2999149171 575749698 4006532819 692958815)'
(FPCore (t)
  :name "fma_test1"
  :pre (<= 0.9 t 1.1)

  :target
  (fma (+ 1 (* t 2e-16)) (+ 1 (* t 2e-16)) (- -1 (* 2 (* t 2e-16))))

  (+ (* (+ 1 (* t 2e-16)) (+ 1 (* t 2e-16))) (- -1 (* 2 (* t 2e-16)))))