\[(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: 12.2 s
Input Error: 45.2
Output Error: 29.6
Log:
Profile: 🕒
\(\begin{cases} (\left(\frac{-1}{x}\right) * \left(-\frac{1}{y}\right) + \left(-\frac{1}{z}\right))_* - \left(\left(1 + \frac{1}{z}\right) + \frac{1}{x \cdot y}\right) & \text{when } z \le -0.00741177728538548 \\ (x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right) & \text{when } z \le 1.0094449940811532 \cdot 10^{+18} \\ (\left(\frac{-1}{x}\right) * \left(-\frac{1}{y}\right) + \left(-\frac{1}{z}\right))_* - \left(\left(1 + \frac{1}{z}\right) + \frac{1}{x \cdot y}\right) & \text{otherwise} \end{cases}\)

    if z < -0.00741177728538548 or 1.0094449940811532e+18 < z

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

    12. Applied final simplification

    if -0.00741177728538548 < z < 1.0094449940811532e+18

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      29.6

  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)