Average Error: 0.2 → 0.5
Time: 22.6s
Precision: 64
\[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
\[\mathsf{fma}\left(\left(\sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}, 4 \cdot \left(\left(1 - a\right) \cdot \left(a \cdot a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
\mathsf{fma}\left(\left(\sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}, 4 \cdot \left(\left(1 - a\right) \cdot \left(a \cdot a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1
double f(double a, double b) {
        double r14784724 = a;
        double r14784725 = r14784724 * r14784724;
        double r14784726 = b;
        double r14784727 = r14784726 * r14784726;
        double r14784728 = r14784725 + r14784727;
        double r14784729 = 2.0;
        double r14784730 = pow(r14784728, r14784729);
        double r14784731 = 4.0;
        double r14784732 = 1.0;
        double r14784733 = r14784732 - r14784724;
        double r14784734 = r14784725 * r14784733;
        double r14784735 = 3.0;
        double r14784736 = r14784735 + r14784724;
        double r14784737 = r14784727 * r14784736;
        double r14784738 = r14784734 + r14784737;
        double r14784739 = r14784731 * r14784738;
        double r14784740 = r14784730 + r14784739;
        double r14784741 = r14784740 - r14784732;
        return r14784741;
}

double f(double a, double b) {
        double r14784742 = a;
        double r14784743 = r14784742 * r14784742;
        double r14784744 = b;
        double r14784745 = r14784744 * r14784744;
        double r14784746 = r14784743 + r14784745;
        double r14784747 = 2.0;
        double r14784748 = pow(r14784746, r14784747);
        double r14784749 = cbrt(r14784748);
        double r14784750 = sqrt(r14784749);
        double r14784751 = r14784750 * r14784750;
        double r14784752 = r14784751 * r14784749;
        double r14784753 = sqrt(r14784748);
        double r14784754 = cbrt(r14784753);
        double r14784755 = r14784754 * r14784754;
        double r14784756 = 4.0;
        double r14784757 = 1.0;
        double r14784758 = r14784757 - r14784742;
        double r14784759 = r14784758 * r14784743;
        double r14784760 = 3.0;
        double r14784761 = r14784760 + r14784742;
        double r14784762 = r14784745 * r14784761;
        double r14784763 = r14784759 + r14784762;
        double r14784764 = r14784756 * r14784763;
        double r14784765 = fma(r14784752, r14784755, r14784764);
        double r14784766 = r14784765 - r14784757;
        return r14784766;
}

Error

Bits error versus a

Bits error versus b

Derivation

  1. Initial program 0.2

    \[\left({\left(a \cdot a + b \cdot b\right)}^{2} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  2. Using strategy rm
  3. Applied add-cube-cbrt0.5

    \[\leadsto \left(\color{blue}{\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} + 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  4. Applied fma-def0.5

    \[\leadsto \color{blue}{\mathsf{fma}\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right)} - 1\]
  5. Using strategy rm
  6. Applied add-sqr-sqrt0.5

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\color{blue}{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  7. Applied cbrt-prod0.5

    \[\leadsto \mathsf{fma}\left(\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \color{blue}{\sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  8. Using strategy rm
  9. Applied add-sqr-sqrt0.5

    \[\leadsto \mathsf{fma}\left(\color{blue}{\left(\sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}}\right)} \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}, 4 \cdot \left(\left(a \cdot a\right) \cdot \left(1 - a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]
  10. Final simplification0.5

    \[\leadsto \mathsf{fma}\left(\left(\sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt{\sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}}\right) \cdot \sqrt[3]{{\left(a \cdot a + b \cdot b\right)}^{2}}, \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}} \cdot \sqrt[3]{\sqrt{{\left(a \cdot a + b \cdot b\right)}^{2}}}, 4 \cdot \left(\left(1 - a\right) \cdot \left(a \cdot a\right) + \left(b \cdot b\right) \cdot \left(3 + a\right)\right)\right) - 1\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (a b)
  :name "Bouland and Aaronson, Equation (24)"
  (- (+ (pow (+ (* a a) (* b b)) 2.0) (* 4.0 (+ (* (* a a) (- 1.0 a)) (* (* b b) (+ 3.0 a))))) 1.0))