Average Error: 44.8 → 30.2
Time: 35.5s
Precision: 64
Internal Precision: 2432
\[(x \cdot y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
\[\left((x \cdot y + z)_* - y \cdot x\right) - 1\]

Error

Bits error versus x

Bits error versus y

Bits error versus z

Target

Original44.8
Target0
Herbie30.2
\[-1\]

Derivation

  1. Initial program 44.8

    \[(x \cdot y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
  2. Using strategy rm
  3. Applied add-cube-cbrt45.4

    \[\leadsto (x \cdot y + z)_* - \left(1 + \color{blue}{\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \sqrt[3]{x \cdot y + z}}\right)\]
  4. Using strategy rm
  5. Applied add-cube-cbrt45.3

    \[\leadsto (x \cdot y + z)_* - \left(1 + \left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \sqrt[3]{x \cdot y + z}}}\right)\]
  6. Applied cbrt-prod45.4

    \[\leadsto (x \cdot y + z)_* - \left(1 + \left(\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}\right) \cdot \color{blue}{\left(\sqrt[3]{\sqrt[3]{x \cdot y + z} \cdot \sqrt[3]{x \cdot y + z}} \cdot \sqrt[3]{\sqrt[3]{x \cdot y + z}}\right)}\right)\]
  7. Taylor expanded around -inf 59.3

    \[\leadsto \color{blue}{(x \cdot y + z)_* - \left(e^{\frac{-1}{9} \cdot \left(\log \left(\frac{-1}{x}\right) + \log \left(\frac{-1}{y}\right)\right)} \cdot e^{\frac{-8}{9} \cdot \left(\log \left(\frac{-1}{x}\right) + \log \left(\frac{-1}{y}\right)\right)} + 1\right)}\]
  8. Applied simplify37.1

    \[\leadsto \color{blue}{\left((x \cdot y + z)_* - {\left(\frac{-1}{x} \cdot \frac{-1}{y}\right)}^{\left(\frac{-8}{9} + \frac{-1}{9}\right)}\right) - 1}\]
  9. Taylor expanded around 0 59.1

    \[\leadsto \color{blue}{\left((x \cdot y + z)_* - e^{\log y + \log x}\right)} - 1\]
  10. Applied simplify30.2

    \[\leadsto \color{blue}{\left((x \cdot y + z)_* - y \cdot x\right) - 1}\]

Runtime

Time bar (total: 35.5s)Debug logProfile

herbie shell --seed '#(1070258749 1877548225 2229079127 1588002776 3179087814 1886870650)' 
(FPCore (x y z)
  :name "simple fma test"

  :herbie-target
  -1

  (- (fma x y z) (+ 1 (+ (* x y) z))))