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

    if z < -0.00741177728538548 or 1.4714367144499807e+23 < z

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      62.4
    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)\]
      51.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)}\]
      51.4
    4. Using strategy rm
      51.4
    5. Applied flip-- 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}{\frac{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - {\left(y \cdot x + \left(1 + z\right)\right)}^2}{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* + \left(y \cdot x + \left(1 + z\right)\right)}}\]
      59.2
    6. Applied taylor to get
      \[\frac{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - {\left(y \cdot x + \left(1 + z\right)\right)}^2}{(\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 \frac{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - \left(2 \cdot \left(y \cdot x\right) + \left(1 + 2 \cdot z\right)\right)}{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* + \left(y \cdot x + \left(1 + z\right)\right)}\]
      20.2
    7. Taylor expanded around 0 to get
      \[\frac{\color{red}{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - \left(2 \cdot \left(y \cdot x\right) + \left(1 + 2 \cdot z\right)\right)}}{(\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 \frac{\color{blue}{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - \left(2 \cdot \left(y \cdot x\right) + \left(1 + 2 \cdot z\right)\right)}}{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* + \left(y \cdot x + \left(1 + z\right)\right)}\]
      20.2
    8. Applied simplify to get
      \[\frac{{\left((\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*\right)}^2 - \left(2 \cdot \left(y \cdot x\right) + \left(1 + 2 \cdot z\right)\right)}{(\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 \frac{(\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* \cdot (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - \left(\left(x \cdot 2\right) \cdot y + \left(z \cdot 2 + 1\right)\right)}{\left(\left(1 + z\right) + y \cdot x\right) + (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_*}\]
      20.2

    9. Applied final simplification

    if -0.00741177728538548 < z < 1.4714367144499807e+23

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

  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)