\[(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: 15.0 s
Input Error: 44.5
Output Error: 20.6
Log:
Profile: 🕒
\(\begin{cases} 1 \cdot \left(\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)\right) & \text{when } z \le -0.6804365096422461 \\ \left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right) & \text{when } z \le 6.157058847122032 \cdot 10^{+53} \\ {\left(\sqrt[3]{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right)}^3 & \text{otherwise} \end{cases}\)

    if z < -0.6804365096422461

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      60.0
    2. Using strategy rm
      60.0
    3. Applied flip-+ to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}}\]
      60.7
    4. Using strategy rm
      60.7
    5. Applied clear-num to get
      \[(x * y + z)_* - \color{red}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}} \leadsto (x * y + z)_* - \color{blue}{\frac{1}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}}\]
      60.8
    6. Applied simplify to get
      \[(x * y + z)_* - \frac{1}{\color{red}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}} \leadsto (x * y + z)_* - \frac{1}{\color{blue}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\]
      60.1
    7. Using strategy rm
      60.1
    8. Applied *-un-lft-identity to get
      \[(x * y + z)_* - \color{red}{\frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}} \leadsto (x * y + z)_* - \color{blue}{1 \cdot \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\]
      60.1
    9. Applied *-un-lft-identity to get
      \[\color{red}{(x * y + z)_*} - 1 \cdot \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1} \leadsto \color{blue}{1 \cdot (x * y + z)_*} - 1 \cdot \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}\]
      60.1
    10. Applied distribute-lft-out-- to get
      \[\color{red}{1 \cdot (x * y + z)_* - 1 \cdot \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}} \leadsto \color{blue}{1 \cdot \left((x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}\right)}\]
      60.1
    11. Applied simplify to get
      \[1 \cdot \color{red}{\left((x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}\right)} \leadsto 1 \cdot \color{blue}{\left(\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)\right)}\]
      31.8

    if -0.6804365096422461 < z < 6.157058847122032e+53

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      31.6
    2. Using strategy rm
      31.6
    3. Applied flip-+ to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}}\]
      31.8
    4. Using strategy rm
      31.8
    5. Applied clear-num to get
      \[(x * y + z)_* - \color{red}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}} \leadsto (x * y + z)_* - \color{blue}{\frac{1}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}}\]
      32.0
    6. Applied simplify to get
      \[(x * y + z)_* - \frac{1}{\color{red}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}} \leadsto (x * y + z)_* - \frac{1}{\color{blue}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\]
      31.7
    7. Applied taylor to get
      \[(x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1} \leadsto (x * y + z)_* - \frac{1}{\frac{1}{y \cdot x + \left(1 + z\right)} \cdot 1}\]
      31.7
    8. Taylor expanded around 0 to get
      \[(x * y + z)_* - \frac{1}{\frac{1}{\color{red}{y \cdot x + \left(1 + z\right)}} \cdot 1} \leadsto (x * y + z)_* - \frac{1}{\frac{1}{\color{blue}{y \cdot x + \left(1 + z\right)}} \cdot 1}\]
      31.7
    9. Applied simplify to get
      \[\color{red}{(x * y + z)_* - \frac{1}{\frac{1}{y \cdot x + \left(1 + z\right)} \cdot 1}} \leadsto \color{blue}{\left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right)}\]
      11.8

    if 6.157058847122032e+53 < z

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      62.2
    2. Using strategy rm
      62.2
    3. Applied flip-+ to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}}\]
      62.3
    4. Using strategy rm
      62.3
    5. Applied clear-num to get
      \[(x * y + z)_* - \color{red}{\frac{{1}^2 - {\left(x \cdot y + z\right)}^2}{1 - \left(x \cdot y + z\right)}} \leadsto (x * y + z)_* - \color{blue}{\frac{1}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}}\]
      62.3
    6. Applied simplify to get
      \[(x * y + z)_* - \frac{1}{\color{red}{\frac{1 - \left(x \cdot y + z\right)}{{1}^2 - {\left(x \cdot y + z\right)}^2}}} \leadsto (x * y + z)_* - \frac{1}{\color{blue}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\]
      62.3
    7. Using strategy rm
      62.3
    8. Applied add-cube-cbrt to get
      \[\color{red}{(x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}} \leadsto \color{blue}{{\left(\sqrt[3]{(x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\right)}^3}\]
      62.3
    9. Applied simplify to get
      \[{\color{red}{\left(\sqrt[3]{(x * y + z)_* - \frac{1}{\frac{1}{x \cdot y + \left(z + 1\right)} \cdot 1}}\right)}}^3 \leadsto {\color{blue}{\left(\sqrt[3]{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right)}}^3\]
      31.7

  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)