\[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
Test:
simple fma test
Bits:
128 bits
Bits error versus x
Bits error versus y
Bits error versus z
Time: 8.3 s
Input Error: 20.2
Output Error: 16.6
Log:
Profile: 🕒
\(\left((x * y + z)_* - y \cdot x\right) - \left(z + 1\right)\)
  1. Started with
    \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
    20.2
  2. Using strategy rm
    20.2
  3. Applied associate--r+ to get
    \[\color{red}{(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)} \leadsto \color{blue}{\left((x * y + z)_* - 1\right) - \left(x \cdot y + z\right)}\]
    16.3
  4. Using strategy rm
    16.3
  5. Applied associate--r+ to get
    \[\color{red}{\left((x * y + z)_* - 1\right) - \left(x \cdot y + z\right)} \leadsto \color{blue}{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right) - z}\]
    17.4
  6. Using strategy rm
    17.4
  7. Applied add-sqr-sqrt to get
    \[\color{red}{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)} - z \leadsto \color{blue}{{\left(\sqrt{\left((x * y + z)_* - 1\right) - x \cdot y}\right)}^2} - z\]
    30.5
  8. Applied taylor to get
    \[{\left(\sqrt{\left((x * y + z)_* - 1\right) - x \cdot y}\right)}^2 - z \leadsto \left((x * y + z)_* - \left(y \cdot x + 1\right)\right) - z\]
    18.6
  9. Taylor expanded around 0 to get
    \[\color{red}{\left((x * y + z)_* - \left(y \cdot x + 1\right)\right)} - z \leadsto \color{blue}{\left((x * y + z)_* - \left(y \cdot x + 1\right)\right)} - z\]
    18.6
  10. Applied simplify to get
    \[\left((x * y + z)_* - \left(y \cdot x + 1\right)\right) - z \leadsto \left((x * y + z)_* - y \cdot x\right) - \left(z + 1\right)\]
    16.6

  11. Applied final simplification

Original test:


(lambda ((x default) (y default) (z default))
  #:name "simple fma test"
  (- (fma x y z) (+ 1 (+ (* x y) z)))
  #:target
  -1)