Average Error: 7.6 → 0.2
Time: 17.8s
Precision: 64
\[\left(\left(x \cdot x + 2 \cdot x\right) \cdot x - 3 \cdot {y}^{2}\right) \cdot x\]
\[\left({x}^{4} + 2 \cdot {x}^{3}\right) - \left({\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \left(\left(x \cdot y\right) \cdot y\right)\right) \cdot 3\]
\left(\left(x \cdot x + 2 \cdot x\right) \cdot x - 3 \cdot {y}^{2}\right) \cdot x
\left({x}^{4} + 2 \cdot {x}^{3}\right) - \left({\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \left(\left(x \cdot y\right) \cdot y\right)\right) \cdot 3
double f(double x, double y) {
        double r290730 = x;
        double r290731 = r290730 * r290730;
        double r290732 = 2.0;
        double r290733 = r290732 * r290730;
        double r290734 = r290731 + r290733;
        double r290735 = r290734 * r290730;
        double r290736 = 3.0;
        double r290737 = y;
        double r290738 = pow(r290737, r290732);
        double r290739 = r290736 * r290738;
        double r290740 = r290735 - r290739;
        double r290741 = r290740 * r290730;
        return r290741;
}

double f(double x, double y) {
        double r290742 = x;
        double r290743 = 4.0;
        double r290744 = pow(r290742, r290743);
        double r290745 = 2.0;
        double r290746 = 3.0;
        double r290747 = pow(r290742, r290746);
        double r290748 = r290745 * r290747;
        double r290749 = r290744 + r290748;
        double r290750 = 1.0;
        double r290751 = -1.0;
        double r290752 = pow(r290751, r290745);
        double r290753 = r290750 / r290752;
        double r290754 = 1.0;
        double r290755 = pow(r290753, r290754);
        double r290756 = y;
        double r290757 = r290742 * r290756;
        double r290758 = r290757 * r290756;
        double r290759 = r290755 * r290758;
        double r290760 = 3.0;
        double r290761 = r290759 * r290760;
        double r290762 = r290749 - r290761;
        return r290762;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 7.6

    \[\left(\left(x \cdot x + 2 \cdot x\right) \cdot x - 3 \cdot {y}^{2}\right) \cdot x\]
  2. Taylor expanded around -inf 7.5

    \[\leadsto \color{blue}{\left({x}^{4} + 2 \cdot {x}^{3}\right) - 3 \cdot \left(\left(x \cdot {y}^{2}\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)}\]
  3. Using strategy rm
  4. Applied sqr-pow7.5

    \[\leadsto \left({x}^{4} + 2 \cdot {x}^{3}\right) - 3 \cdot \left(\left(x \cdot \color{blue}{\left({y}^{\left(\frac{2}{2}\right)} \cdot {y}^{\left(\frac{2}{2}\right)}\right)}\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\]
  5. Applied associate-*r*0.2

    \[\leadsto \left({x}^{4} + 2 \cdot {x}^{3}\right) - 3 \cdot \left(\color{blue}{\left(\left(x \cdot {y}^{\left(\frac{2}{2}\right)}\right) \cdot {y}^{\left(\frac{2}{2}\right)}\right)} \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\]
  6. Simplified0.2

    \[\leadsto \left({x}^{4} + 2 \cdot {x}^{3}\right) - 3 \cdot \left(\left(\color{blue}{\left(x \cdot y\right)} \cdot {y}^{\left(\frac{2}{2}\right)}\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\]
  7. Final simplification0.2

    \[\leadsto \left({x}^{4} + 2 \cdot {x}^{3}\right) - \left({\left(\frac{1}{{-1}^{2}}\right)}^{1} \cdot \left(\left(x \cdot y\right) \cdot y\right)\right) \cdot 3\]

Reproduce

herbie shell --seed 1 
(FPCore (x y)
  :name "((x*x+2*x)*x-3*pow(y,2))*x"
  :precision binary64
  (* (- (* (+ (* x x) (* 2 x)) x) (* 3 (pow y 2))) x))