Average Error: 0.5 → 0.5
Time: 48.6s
Precision: 64
\[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
\[\left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(x1 \cdot \left(x1 \cdot x1\right) + \left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(\left(\left(x1 \cdot 2\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right) \cdot \left(\mathsf{fma}\left(3, -1, 3\right) + \mathsf{fma}\left(\mathsf{fma}\left(x1, 3 \cdot x1, x2 \cdot 2\right) - x1, \frac{1}{\mathsf{fma}\left(x1, x1, 1\right)}, -3\right)\right) + \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right) \cdot x1\right) \cdot \left(1 + x1 \cdot x1\right)\right)\right)\right)\right) + x1\]
x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)
\left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(x1 \cdot \left(x1 \cdot x1\right) + \left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(\left(\left(x1 \cdot 2\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right) \cdot \left(\mathsf{fma}\left(3, -1, 3\right) + \mathsf{fma}\left(\mathsf{fma}\left(x1, 3 \cdot x1, x2 \cdot 2\right) - x1, \frac{1}{\mathsf{fma}\left(x1, x1, 1\right)}, -3\right)\right) + \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right) \cdot x1\right) \cdot \left(1 + x1 \cdot x1\right)\right)\right)\right)\right) + x1
double f(double x1, double x2) {
        double r104695 = x1;
        double r104696 = 2.0;
        double r104697 = r104696 * r104695;
        double r104698 = 3.0;
        double r104699 = r104698 * r104695;
        double r104700 = r104699 * r104695;
        double r104701 = x2;
        double r104702 = r104696 * r104701;
        double r104703 = r104700 + r104702;
        double r104704 = r104703 - r104695;
        double r104705 = r104695 * r104695;
        double r104706 = 1.0;
        double r104707 = r104705 + r104706;
        double r104708 = r104704 / r104707;
        double r104709 = r104697 * r104708;
        double r104710 = r104708 - r104698;
        double r104711 = r104709 * r104710;
        double r104712 = 4.0;
        double r104713 = r104712 * r104708;
        double r104714 = 6.0;
        double r104715 = r104713 - r104714;
        double r104716 = r104705 * r104715;
        double r104717 = r104711 + r104716;
        double r104718 = r104717 * r104707;
        double r104719 = r104700 * r104708;
        double r104720 = r104718 + r104719;
        double r104721 = r104705 * r104695;
        double r104722 = r104720 + r104721;
        double r104723 = r104722 + r104695;
        double r104724 = r104700 - r104702;
        double r104725 = r104724 - r104695;
        double r104726 = r104725 / r104707;
        double r104727 = r104698 * r104726;
        double r104728 = r104723 + r104727;
        double r104729 = r104695 + r104728;
        return r104729;
}

double f(double x1, double x2) {
        double r104730 = 3.0;
        double r104731 = x1;
        double r104732 = r104730 * r104731;
        double r104733 = r104732 * r104731;
        double r104734 = x2;
        double r104735 = 2.0;
        double r104736 = r104734 * r104735;
        double r104737 = r104733 - r104736;
        double r104738 = r104737 - r104731;
        double r104739 = 1.0;
        double r104740 = r104731 * r104731;
        double r104741 = r104739 + r104740;
        double r104742 = r104738 / r104741;
        double r104743 = r104730 * r104742;
        double r104744 = r104731 * r104740;
        double r104745 = r104733 + r104736;
        double r104746 = r104745 - r104731;
        double r104747 = r104746 / r104741;
        double r104748 = r104733 * r104747;
        double r104749 = r104731 * r104735;
        double r104750 = r104749 * r104747;
        double r104751 = -1.0;
        double r104752 = fma(r104730, r104751, r104730);
        double r104753 = fma(r104731, r104732, r104736);
        double r104754 = r104753 - r104731;
        double r104755 = 1.0;
        double r104756 = fma(r104731, r104731, r104739);
        double r104757 = r104755 / r104756;
        double r104758 = -r104730;
        double r104759 = fma(r104754, r104757, r104758);
        double r104760 = r104752 + r104759;
        double r104761 = r104750 * r104760;
        double r104762 = -r104731;
        double r104763 = fma(r104735, r104734, r104762);
        double r104764 = fma(r104730, r104740, r104763);
        double r104765 = r104764 / r104756;
        double r104766 = 4.0;
        double r104767 = 6.0;
        double r104768 = -r104767;
        double r104769 = fma(r104765, r104766, r104768);
        double r104770 = r104731 * r104769;
        double r104771 = r104770 * r104731;
        double r104772 = r104761 + r104771;
        double r104773 = r104772 * r104741;
        double r104774 = r104748 + r104773;
        double r104775 = r104744 + r104774;
        double r104776 = r104731 + r104775;
        double r104777 = r104743 + r104776;
        double r104778 = r104777 + r104731;
        return r104778;
}

Error

Bits error versus x1

Bits error versus x2

Derivation

  1. Initial program 0.5

    \[x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \left(x1 \cdot x1\right) \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  2. Using strategy rm
  3. Applied associate-*l*0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + \color{blue}{x1 \cdot \left(x1 \cdot \left(4 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 6\right)\right)}\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  4. Simplified0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - 3\right) + x1 \cdot \color{blue}{\left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)}\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  5. Using strategy rm
  6. Applied add-cube-cbrt0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1} - \color{blue}{\left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}}\right) + x1 \cdot \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  7. Applied div-inv0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\color{blue}{\left(\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1\right) \cdot \frac{1}{x1 \cdot x1 + 1}} - \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right) \cdot \sqrt[3]{3}\right) + x1 \cdot \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  8. Applied prod-diff0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \color{blue}{\left(\mathsf{fma}\left(\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1, \frac{1}{x1 \cdot x1 + 1}, -\sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right) + \mathsf{fma}\left(-\sqrt[3]{3}, \sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right)\right)} + x1 \cdot \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  9. Simplified0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\color{blue}{\mathsf{fma}\left(\mathsf{fma}\left(x1, x1 \cdot 3, 2 \cdot x2\right) - x1, \frac{1}{\mathsf{fma}\left(x1, x1, 1\right)}, -3\right)} + \mathsf{fma}\left(-\sqrt[3]{3}, \sqrt[3]{3} \cdot \sqrt[3]{3}, \sqrt[3]{3} \cdot \left(\sqrt[3]{3} \cdot \sqrt[3]{3}\right)\right)\right) + x1 \cdot \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  10. Simplified0.5

    \[\leadsto x1 + \left(\left(\left(\left(\left(\left(\left(2 \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) \cdot \left(\mathsf{fma}\left(\mathsf{fma}\left(x1, x1 \cdot 3, 2 \cdot x2\right) - x1, \frac{1}{\mathsf{fma}\left(x1, x1, 1\right)}, -3\right) + \color{blue}{\mathsf{fma}\left(3, -1, 3\right)}\right) + x1 \cdot \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right)\right) \cdot \left(x1 \cdot x1 + 1\right) + \left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right) + \left(x1 \cdot x1\right) \cdot x1\right) + x1\right) + 3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - 2 \cdot x2\right) - x1}{x1 \cdot x1 + 1}\right)\]
  11. Final simplification0.5

    \[\leadsto \left(3 \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 - x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(x1 + \left(x1 \cdot \left(x1 \cdot x1\right) + \left(\left(\left(3 \cdot x1\right) \cdot x1\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1} + \left(\left(\left(x1 \cdot 2\right) \cdot \frac{\left(\left(3 \cdot x1\right) \cdot x1 + x2 \cdot 2\right) - x1}{1 + x1 \cdot x1}\right) \cdot \left(\mathsf{fma}\left(3, -1, 3\right) + \mathsf{fma}\left(\mathsf{fma}\left(x1, 3 \cdot x1, x2 \cdot 2\right) - x1, \frac{1}{\mathsf{fma}\left(x1, x1, 1\right)}, -3\right)\right) + \left(x1 \cdot \mathsf{fma}\left(\frac{\mathsf{fma}\left(3, x1 \cdot x1, \mathsf{fma}\left(2, x2, -x1\right)\right)}{\mathsf{fma}\left(x1, x1, 1\right)}, 4, -6\right)\right) \cdot x1\right) \cdot \left(1 + x1 \cdot x1\right)\right)\right)\right)\right) + x1\]

Reproduce

herbie shell --seed 2019194 +o rules:numerics
(FPCore (x1 x2)
  :name "Rosa's FloatVsDoubleBenchmark"
  (+ x1 (+ (+ (+ (+ (* (+ (* (* (* 2.0 x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) (- (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)) 3.0)) (* (* x1 x1) (- (* 4.0 (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))) 6.0))) (+ (* x1 x1) 1.0)) (* (* (* 3.0 x1) x1) (/ (- (+ (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0)))) (* (* x1 x1) x1)) x1) (* 3.0 (/ (- (- (* (* 3.0 x1) x1) (* 2.0 x2)) x1) (+ (* x1 x1) 1.0))))))