Average Error: 16.6 → 10.0
Time: 23.2s
Precision: 64
\[\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {y}^{2}\right) \cdot x - 56 \cdot {z}^{3}\right) \cdot x\]
\[x \cdot \left(\left(\left({x}^{4} + 28 \cdot \left(\left(\left(x \cdot y\right) \cdot y\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\right) - 7 \cdot {x}^{3}\right) - 56 \cdot {z}^{3}\right)\]
\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {y}^{2}\right) \cdot x - 56 \cdot {z}^{3}\right) \cdot x
x \cdot \left(\left(\left({x}^{4} + 28 \cdot \left(\left(\left(x \cdot y\right) \cdot y\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\right) - 7 \cdot {x}^{3}\right) - 56 \cdot {z}^{3}\right)
double f(double x, double y, double z) {
        double r320647 = x;
        double r320648 = r320647 * r320647;
        double r320649 = 7.0;
        double r320650 = r320649 * r320647;
        double r320651 = r320648 - r320650;
        double r320652 = r320651 * r320647;
        double r320653 = 28.0;
        double r320654 = y;
        double r320655 = 2.0;
        double r320656 = pow(r320654, r320655);
        double r320657 = r320653 * r320656;
        double r320658 = r320652 + r320657;
        double r320659 = r320658 * r320647;
        double r320660 = 56.0;
        double r320661 = z;
        double r320662 = 3.0;
        double r320663 = pow(r320661, r320662);
        double r320664 = r320660 * r320663;
        double r320665 = r320659 - r320664;
        double r320666 = r320665 * r320647;
        return r320666;
}

double f(double x, double y, double z) {
        double r320667 = x;
        double r320668 = 4.0;
        double r320669 = pow(r320667, r320668);
        double r320670 = 28.0;
        double r320671 = y;
        double r320672 = r320667 * r320671;
        double r320673 = r320672 * r320671;
        double r320674 = 1.0;
        double r320675 = -1.0;
        double r320676 = 2.0;
        double r320677 = pow(r320675, r320676);
        double r320678 = r320674 / r320677;
        double r320679 = 1.0;
        double r320680 = pow(r320678, r320679);
        double r320681 = r320673 * r320680;
        double r320682 = r320670 * r320681;
        double r320683 = r320669 + r320682;
        double r320684 = 7.0;
        double r320685 = 3.0;
        double r320686 = pow(r320667, r320685);
        double r320687 = r320684 * r320686;
        double r320688 = r320683 - r320687;
        double r320689 = 56.0;
        double r320690 = z;
        double r320691 = 3.0;
        double r320692 = pow(r320690, r320691);
        double r320693 = r320689 * r320692;
        double r320694 = r320688 - r320693;
        double r320695 = r320667 * r320694;
        return r320695;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 16.6

    \[\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {y}^{2}\right) \cdot x - 56 \cdot {z}^{3}\right) \cdot x\]
  2. Simplified16.6

    \[\leadsto \color{blue}{x \cdot \left(\left(28 \cdot {y}^{2} + x \cdot \left(x \cdot \left(x - 7\right)\right)\right) \cdot x - 56 \cdot {z}^{3}\right)}\]
  3. Taylor expanded around -inf 16.5

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

    \[\leadsto x \cdot \left(\left(\left({x}^{4} + 28 \cdot \left(\left(x \cdot \color{blue}{\left(y \cdot y\right)}\right) \cdot {\left(\frac{1}{{-1}^{2}}\right)}^{1}\right)\right) - 7 \cdot {x}^{3}\right) - 56 \cdot {z}^{3}\right)\]
  6. Applied associate-*r*10.0

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

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

Reproduce

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