\[(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: 16.3 s
Input Error: 44.4
Output Error: 11.7
Log:
Profile: 🕒
\(\begin{cases} \log \left(e^{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right) & \text{when } z \le -2.492425028778416 \cdot 10^{+109} \\ (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - 1 & \text{when } z \le -1.0070763208517064 \cdot 10^{+21} \\ \log \left(e^{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right) & \text{when } z \le -0.43106264261331295 \\ 1 \cdot \left(\left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right)\right) & \text{when } z \le 3491808544826742.5 \\ (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - 1 & \text{when } z \le 8.727402761437796 \cdot 10^{+86} \\ \log \left(e^{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right) & \text{when } z \le 4.762230332006904 \cdot 10^{+130} \\ (\left(\frac{-1}{x}\right) * \left(\frac{-1}{y}\right) + \left(\frac{-1}{z}\right))_* - 1 & \text{otherwise} \end{cases}\)

    if z < -2.492425028778416e+109 or -1.0070763208517064e+21 < z < -0.43106264261331295 or 8.727402761437796e+86 < z < 4.762230332006904e+130

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      60.1
    2. Using strategy rm
      60.1
    3. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\]
      61.0
    4. Using strategy rm
      61.0
    5. Applied add-log-exp to get
      \[(x * y + z)_* - \color{red}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3} \leadsto (x * y + z)_* - \color{blue}{\log \left(e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\right)}\]
      62.7
    6. Applied add-log-exp to get
      \[\color{red}{(x * y + z)_*} - \log \left(e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\right) \leadsto \color{blue}{\log \left(e^{(x * y + z)_*}\right)} - \log \left(e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\right)\]
      63.0
    7. Applied diff-log to get
      \[\color{red}{\log \left(e^{(x * y + z)_*}\right) - \log \left(e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\right)} \leadsto \color{blue}{\log \left(\frac{e^{(x * y + z)_*}}{e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}}\right)}\]
      63.0
    8. Applied simplify to get
      \[\log \color{red}{\left(\frac{e^{(x * y + z)_*}}{e^{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}}\right)} \leadsto \log \color{blue}{\left(e^{\left((x * y + z)_* - z\right) - \left(y \cdot x + 1\right)}\right)}\]
      32.0

    if -2.492425028778416e+109 < z < -1.0070763208517064e+21 or 4.762230332006904e+130 < 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)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\]
      62.2
    4. Applied taylor to get
      \[(x * y + z)_* - {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3 \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

    if -0.43106264261331295 < z < 3491808544826742.5

    1. Started with
      \[(x * y + z)_* - \left(1 + \left(x \cdot y + z\right)\right)\]
      29.1
    2. Using strategy rm
      29.1
    3. Applied add-cube-cbrt to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\]
      29.9
    4. Using strategy rm
      29.9
    5. Applied *-un-lft-identity to get
      \[(x * y + z)_* - \color{red}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3} \leadsto (x * y + z)_* - \color{blue}{1 \cdot {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\]
      29.9
    6. Applied *-un-lft-identity to get
      \[\color{red}{(x * y + z)_*} - 1 \cdot {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3 \leadsto \color{blue}{1 \cdot (x * y + z)_*} - 1 \cdot {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3\]
      29.9
    7. Applied distribute-lft-out-- to get
      \[\color{red}{1 \cdot (x * y + z)_* - 1 \cdot {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3} \leadsto \color{blue}{1 \cdot \left((x * y + z)_* - {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3\right)}\]
      29.9
    8. Applied simplify to get
      \[1 \cdot \color{red}{\left((x * y + z)_* - {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3\right)} \leadsto 1 \cdot \color{blue}{\left(\left((x * y + z)_* - y \cdot x\right) - \left(1 + z\right)\right)}\]
      8.6

    if 3491808544826742.5 < z < 8.727402761437796e+86

    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 add-cube-cbrt to get
      \[(x * y + z)_* - \color{red}{\left(1 + \left(x \cdot y + z\right)\right)} \leadsto (x * y + z)_* - \color{blue}{{\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3}\]
      61.9
    4. Applied taylor to get
      \[(x * y + z)_* - {\left(\sqrt[3]{1 + \left(x \cdot y + z\right)}\right)}^3 \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

  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)