\[(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: 5.8 s
Input Error: 19.7
Output Error: 15.7
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)\]
    19.7
  2. Using strategy rm
    19.7
  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)}\]
    15.7
  4. Using strategy rm
    15.7
  5. Applied add-log-exp to get
    \[\left((x * y + z)_* - 1\right) - \color{red}{\left(x \cdot y + z\right)} \leadsto \left((x * y + z)_* - 1\right) - \color{blue}{\log \left(e^{x \cdot y + z}\right)}\]
    22.2
  6. Applied add-log-exp to get
    \[\color{red}{\left((x * y + z)_* - 1\right)} - \log \left(e^{x \cdot y + z}\right) \leadsto \color{blue}{\log \left(e^{(x * y + z)_* - 1}\right)} - \log \left(e^{x \cdot y + z}\right)\]
    22.7
  7. Applied diff-log to get
    \[\color{red}{\log \left(e^{(x * y + z)_* - 1}\right) - \log \left(e^{x \cdot y + z}\right)} \leadsto \color{blue}{\log \left(\frac{e^{(x * y + z)_* - 1}}{e^{x \cdot y + z}}\right)}\]
    22.7
  8. Applied simplify to get
    \[\log \color{red}{\left(\frac{e^{(x * y + z)_* - 1}}{e^{x \cdot y + z}}\right)} \leadsto \log \color{blue}{\left(e^{\left((x * y + z)_* - \left(1 + z\right)\right) - y \cdot x}\right)}\]
    18.5
  9. Applied taylor to get
    \[\log \left(e^{\left((x * y + z)_* - \left(1 + z\right)\right) - y \cdot x}\right) \leadsto \log \left(e^{(x * y + z)_* - \left(y \cdot x + \left(1 + z\right)\right)}\right)\]
    19.7
  10. Taylor expanded around 0 to get
    \[\log \left(e^{\color{red}{(x * y + z)_* - \left(y \cdot x + \left(1 + z\right)\right)}}\right) \leadsto \log \left(e^{\color{blue}{(x * y + z)_* - \left(y \cdot x + \left(1 + z\right)\right)}}\right)\]
    19.7
  11. Applied simplify to get
    \[\log \left(e^{(x * y + z)_* - \left(y \cdot x + \left(1 + z\right)\right)}\right) \leadsto \left((x * y + z)_* - y \cdot x\right) - \left(z + 1\right)\]
    15.7

  12. 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)