\[(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.9 s
Input Error: 44.3
Output Error: 16.6
Log:
Profile: 🕒
\(\begin{cases} (\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1 & \text{when } z \le -6348429173.063143 \\ (x * y + z)_* - \left(1 + {\left(\sqrt[3]{{\left(\sqrt[3]{x \cdot y + z}\right)}^3}\right)}^3\right) & \text{when } z \le 94.9487900335328 \\ (\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1 & \text{otherwise} \end{cases}\)

    if z < -6348429173.063143

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      62.4
    2. Using strategy rm
      62.4
    3. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \left(1 + \color{red}{\left(x \cdot y + z\right)}\right) \leadsto (x * y + z)_* - \left(1 + \color{blue}{{\left(\sqrt[3]{x \cdot y + z}\right)}^3}\right)\]
      62.3
    4. Applied taylor to get
      \[(x * y + z)_* - \left(1 + {\left(\sqrt[3]{x \cdot y + z}\right)}^3\right) \leadsto (\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1\]
      0.2
    5. Taylor expanded around inf to get
      \[\color{red}{(\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1} \leadsto \color{blue}{(\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1}\]
      0.2

    if -6348429173.063143 < z < 94.9487900335328

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      29.4
    2. Using strategy rm
      29.4
    3. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \left(1 + \color{red}{\left(x \cdot y + z\right)}\right) \leadsto (x * y + z)_* - \left(1 + \color{blue}{{\left(\sqrt[3]{x \cdot y + z}\right)}^3}\right)\]
      30.1
    4. Using strategy rm
      30.1
    5. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \left(1 + {\left(\sqrt[3]{\color{red}{x \cdot y + z}}\right)}^3\right) \leadsto (x * y + z)_* - \left(1 + {\left(\sqrt[3]{\color{blue}{{\left(\sqrt[3]{x \cdot y + z}\right)}^3}}\right)}^3\right)\]
      30.1

    if 94.9487900335328 < z

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      62.4
    2. Using strategy rm
      62.4
    3. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \left(1 + \color{red}{\left(x \cdot y + z\right)}\right) \leadsto (x * y + z)_* - \left(1 + \color{blue}{{\left(\sqrt[3]{x \cdot y + z}\right)}^3}\right)\]
      62.1
    4. Applied taylor to get
      \[(x * y + z)_* - \left(1 + {\left(\sqrt[3]{x \cdot y + z}\right)}^3\right) \leadsto (\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1\]
      0.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))_* - 1} \leadsto \color{blue}{(\left(\frac{1}{x}\right) * \left(\frac{1}{y}\right) + \left(\frac{1}{z}\right))_* - 1}\]
      0.1

  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)