\[(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: 13.6 s
Input Error: 20.1
Output Error: 5.9
Log:
Profile: 🕒
\(\begin{cases} \left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \frac{\frac{1}{x}}{y}\right) - 1 & \text{when } z \le -750.772f0 \\ \frac{{\left(\left((x * y + z)_* - y \cdot x\right) - 1\right)}^3 - {z}^3}{z \cdot \left(\left((x * y + z)_* - 1\right) - \left(y \cdot x - z\right)\right) + {\left(\left((x * y + z)_* - y \cdot x\right) - 1\right)}^2} & \text{when } z \le 3.1920562f0 \\ \left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \frac{\frac{1}{x}}{y}\right) - 1 & \text{otherwise} \end{cases}\)

    if z < -750.772f0 or 3.1920562f0 < z

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      28.2
    2. Using strategy rm
      28.2
    3. Applied add-exp-log to get
      \[(x * y + z)_* - \left(1 + \color{red}{\left(x \cdot y + z\right)}\right) \leadsto (x * y + z)_* - \left(1 + \color{blue}{e^{\log \left(x \cdot y + z\right)}}\right)\]
      30.1
    4. Applied taylor to get
      \[(x * y + z)_* - \left(1 + e^{\log \left(x \cdot y + z\right)}\right) \leadsto (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \left(e^{-\left(\log y + \log x\right)} + 1\right)\]
      27.1
    5. Taylor expanded around -inf to get
      \[\color{red}{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \left(e^{-\left(\log y + \log x\right)} + 1\right)} \leadsto \color{blue}{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \left(e^{-\left(\log y + \log x\right)} + 1\right)}\]
      27.1
    6. Applied simplify to get
      \[(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \left(e^{-\left(\log y + \log x\right)} + 1\right) \leadsto \left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \frac{\frac{1}{x}}{y}\right) - 1\]
      6.8

    7. Applied final simplification

    if -750.772f0 < z < 3.1920562f0

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      12.7
    2. Using strategy rm
      12.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)}\]
      9.9
    4. Using strategy rm
      9.9
    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}\]
      10.3
    6. Using strategy rm
      10.3
    7. Applied flip3-- to get
      \[\color{red}{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right) - z} \leadsto \color{blue}{\frac{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^{3} - {z}^{3}}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left(\left((x * y + z)_* - 1\right) - x \cdot y\right) \cdot z\right)}}\]
      10.5
    8. Applied simplify to get
      \[\frac{\color{red}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^{3} - {z}^{3}}}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left(\left((x * y + z)_* - 1\right) - x \cdot y\right) \cdot z\right)} \leadsto \frac{\color{blue}{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left(\left((x * y + z)_* - 1\right) - x \cdot y\right) \cdot z\right)}\]
      10.4
    9. Applied taylor to get
      \[\frac{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left(\left((x * y + z)_* - 1\right) - x \cdot y\right) \cdot z\right)} \leadsto \frac{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left((x * y + z)_* - \left(y \cdot x + 1\right)\right) \cdot z\right)}\]
      10.3
    10. Taylor expanded around 0 to get
      \[\frac{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \color{red}{\left((x * y + z)_* - \left(y \cdot x + 1\right)\right)} \cdot z\right)} \leadsto \frac{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \color{blue}{\left((x * y + z)_* - \left(y \cdot x + 1\right)\right)} \cdot z\right)}\]
      10.3
    11. Applied simplify to get
      \[\frac{{\left(\left((x * y + z)_* - 1\right) - y \cdot x\right)}^3 - {z}^3}{{\left(\left((x * y + z)_* - 1\right) - x \cdot y\right)}^2 + \left({z}^2 + \left((x * y + z)_* - \left(y \cdot x + 1\right)\right) \cdot z\right)} \leadsto \frac{{\left(\left((x * y + z)_* - y \cdot x\right) - 1\right)}^3 - {z}^3}{z \cdot \left(\left((x * y + z)_* - 1\right) - \left(y \cdot x - z\right)\right) + {\left(\left((x * y + z)_* - y \cdot x\right) - 1\right)}^2}\]
      5.1

    12. Applied final simplification

  1. Removed slow pow expressions

Original test:


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