\[(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: 10.4 s
Input Error: 44.5
Output Error: 33.4
Log:
Profile: 🕒
\(\left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right)\)
  1. Started with
    \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
    44.5
  2. Using strategy rm
    44.5
  3. Applied flip-+ to get
    \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}}\]
    44.8
  4. Using strategy rm
    44.8
  5. Applied clear-num to get
    \[(x * y + z)_* - \color{red}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}} \leadsto (x * y + z)_* - \color{blue}{\frac{1}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}}\]
    44.9
  6. Applied simplify to get
    \[(x * y + z)_* - \frac{1}{\color{red}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}} \leadsto (x * y + z)_* - \frac{1}{\color{blue}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\]
    44.6
  7. Applied taylor to get
    \[(x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1} \leadsto (x * y + z)_* - \frac{1}{\frac{1}{y \cdot x + \left(1 + z\right)} \cdot 1}\]
    44.6
  8. Taylor expanded around 0 to get
    \[(x * y + z)_* - \frac{1}{\frac{1}{\color{red}{y \cdot x + \left(1 + z\right)}} \cdot 1} \leadsto (x * y + z)_* - \frac{1}{\frac{1}{\color{blue}{y \cdot x + \left(1 + z\right)}} \cdot 1}\]
    44.6
  9. Applied simplify to get
    \[\color{red}{(x * y + z)_* - \frac{1}{\frac{1}{y \cdot x + \left(1 + z\right)} \cdot 1}} \leadsto \color{blue}{\left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right)}\]
    33.4

Original test:


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