Average Error: 45.1 → 30.6
Time: 20.8s
Precision: 64
\[\mathsf{fma}\left(x, y, z\right) - \left(1 + \left(x \cdot y + z\right)\right)\]
\[\left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right) \cdot \sqrt[3]{\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right)}\]
\mathsf{fma}\left(x, y, z\right) - \left(1 + \left(x \cdot y + z\right)\right)
\left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right) \cdot \sqrt[3]{\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right)}
double f(double x, double y, double z) {
        double r4763520 = x;
        double r4763521 = y;
        double r4763522 = z;
        double r4763523 = fma(r4763520, r4763521, r4763522);
        double r4763524 = 1.0;
        double r4763525 = r4763520 * r4763521;
        double r4763526 = r4763525 + r4763522;
        double r4763527 = r4763524 + r4763526;
        double r4763528 = r4763523 - r4763527;
        return r4763528;
}

double f(double x, double y, double z) {
        double r4763529 = 1.0;
        double r4763530 = x;
        double r4763531 = y;
        double r4763532 = r4763530 * r4763531;
        double r4763533 = r4763529 + r4763532;
        double r4763534 = -r4763533;
        double r4763535 = z;
        double r4763536 = fma(r4763530, r4763531, r4763535);
        double r4763537 = r4763536 - r4763535;
        double r4763538 = r4763534 + r4763537;
        double r4763539 = cbrt(r4763538);
        double r4763540 = r4763539 * r4763539;
        double r4763541 = r4763539 * r4763540;
        double r4763542 = cbrt(r4763541);
        double r4763543 = r4763540 * r4763542;
        return r4763543;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Target

Original45.1
Target0
Herbie30.6
\[-1\]

Derivation

  1. Initial program 45.1

    \[\mathsf{fma}\left(x, y, z\right) - \left(1 + \left(x \cdot y + z\right)\right)\]
  2. Using strategy rm
  3. Applied add-log-exp46.6

    \[\leadsto \mathsf{fma}\left(x, y, z\right) - \left(1 + \left(x \cdot y + \color{blue}{\log \left(e^{z}\right)}\right)\right)\]
  4. Applied add-log-exp47.5

    \[\leadsto \mathsf{fma}\left(x, y, z\right) - \left(1 + \left(\color{blue}{\log \left(e^{x \cdot y}\right)} + \log \left(e^{z}\right)\right)\right)\]
  5. Applied sum-log47.5

    \[\leadsto \mathsf{fma}\left(x, y, z\right) - \left(1 + \color{blue}{\log \left(e^{x \cdot y} \cdot e^{z}\right)}\right)\]
  6. Applied add-log-exp47.5

    \[\leadsto \mathsf{fma}\left(x, y, z\right) - \left(\color{blue}{\log \left(e^{1}\right)} + \log \left(e^{x \cdot y} \cdot e^{z}\right)\right)\]
  7. Applied sum-log47.5

    \[\leadsto \mathsf{fma}\left(x, y, z\right) - \color{blue}{\log \left(e^{1} \cdot \left(e^{x \cdot y} \cdot e^{z}\right)\right)}\]
  8. Applied add-log-exp47.5

    \[\leadsto \color{blue}{\log \left(e^{\mathsf{fma}\left(x, y, z\right)}\right)} - \log \left(e^{1} \cdot \left(e^{x \cdot y} \cdot e^{z}\right)\right)\]
  9. Applied diff-log47.5

    \[\leadsto \color{blue}{\log \left(\frac{e^{\mathsf{fma}\left(x, y, z\right)}}{e^{1} \cdot \left(e^{x \cdot y} \cdot e^{z}\right)}\right)}\]
  10. Simplified30.8

    \[\leadsto \log \color{blue}{\left(e^{\left(\left(\mathsf{fma}\left(x, y, z\right) - z\right) - 1\right) - x \cdot y}\right)}\]
  11. Using strategy rm
  12. Applied sub-neg30.8

    \[\leadsto \log \left(e^{\color{blue}{\left(\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-1\right)\right)} - x \cdot y}\right)\]
  13. Applied associate--l+30.8

    \[\leadsto \log \left(e^{\color{blue}{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(\left(-1\right) - x \cdot y\right)}}\right)\]
  14. Applied exp-sum31.9

    \[\leadsto \log \color{blue}{\left(e^{\mathsf{fma}\left(x, y, z\right) - z} \cdot e^{\left(-1\right) - x \cdot y}\right)}\]
  15. Applied log-prod31.9

    \[\leadsto \color{blue}{\log \left(e^{\mathsf{fma}\left(x, y, z\right) - z}\right) + \log \left(e^{\left(-1\right) - x \cdot y}\right)}\]
  16. Simplified31.9

    \[\leadsto \color{blue}{\left(\mathsf{fma}\left(x, y, z\right) - z\right)} + \log \left(e^{\left(-1\right) - x \cdot y}\right)\]
  17. Simplified30.6

    \[\leadsto \left(\mathsf{fma}\left(x, y, z\right) - z\right) + \color{blue}{\left(-\left(1 + x \cdot y\right)\right)}\]
  18. Using strategy rm
  19. Applied add-cube-cbrt30.6

    \[\leadsto \color{blue}{\left(\sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)} \cdot \sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)}\right) \cdot \sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)}}\]
  20. Using strategy rm
  21. Applied add-cube-cbrt30.6

    \[\leadsto \left(\sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)} \cdot \sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)}\right) \cdot \sqrt[3]{\color{blue}{\left(\sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)} \cdot \sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)}\right) \cdot \sqrt[3]{\left(\mathsf{fma}\left(x, y, z\right) - z\right) + \left(-\left(1 + x \cdot y\right)\right)}}}\]
  22. Final simplification30.6

    \[\leadsto \left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right) \cdot \sqrt[3]{\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \left(\sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)} \cdot \sqrt[3]{\left(-\left(1 + x \cdot y\right)\right) + \left(\mathsf{fma}\left(x, y, z\right) - z\right)}\right)}\]

Reproduce

herbie shell --seed 2019171 
(FPCore (x y z)
  :name "simple fma test"

  :herbie-target
  -1.0

  (- (fma x y z) (+ 1.0 (+ (* x y) z))))