Average Error: 0.2 → 0.3
Time: 18.5s
Precision: 64
\[\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {x}^{2}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}\]
\[\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + \sqrt{28 \cdot {x}^{2}} \cdot \sqrt{\left(28 \cdot \sqrt{{x}^{2}}\right) \cdot \sqrt{{x}^{2}}}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}\]
\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {x}^{2}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}
\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + \sqrt{28 \cdot {x}^{2}} \cdot \sqrt{\left(28 \cdot \sqrt{{x}^{2}}\right) \cdot \sqrt{{x}^{2}}}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}
double f(double x) {
        double r186894 = x;
        double r186895 = r186894 * r186894;
        double r186896 = 7.0;
        double r186897 = r186896 * r186894;
        double r186898 = r186895 - r186897;
        double r186899 = r186898 * r186894;
        double r186900 = 28.0;
        double r186901 = 2.0;
        double r186902 = pow(r186894, r186901);
        double r186903 = r186900 * r186902;
        double r186904 = r186899 + r186903;
        double r186905 = r186904 * r186894;
        double r186906 = 56.0;
        double r186907 = 3.0;
        double r186908 = pow(r186894, r186907);
        double r186909 = r186906 * r186908;
        double r186910 = r186905 - r186909;
        double r186911 = r186910 * r186894;
        double r186912 = 4.0;
        double r186913 = pow(r186894, r186912);
        double r186914 = r186911 + r186913;
        return r186914;
}

double f(double x) {
        double r186915 = x;
        double r186916 = r186915 * r186915;
        double r186917 = 7.0;
        double r186918 = r186917 * r186915;
        double r186919 = r186916 - r186918;
        double r186920 = r186919 * r186915;
        double r186921 = 28.0;
        double r186922 = 2.0;
        double r186923 = pow(r186915, r186922);
        double r186924 = r186921 * r186923;
        double r186925 = sqrt(r186924);
        double r186926 = sqrt(r186923);
        double r186927 = r186921 * r186926;
        double r186928 = r186927 * r186926;
        double r186929 = sqrt(r186928);
        double r186930 = r186925 * r186929;
        double r186931 = r186920 + r186930;
        double r186932 = r186931 * r186915;
        double r186933 = 56.0;
        double r186934 = 3.0;
        double r186935 = pow(r186915, r186934);
        double r186936 = r186933 * r186935;
        double r186937 = r186932 - r186936;
        double r186938 = r186937 * r186915;
        double r186939 = 4.0;
        double r186940 = pow(r186915, r186939);
        double r186941 = r186938 + r186940;
        return r186941;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + 28 \cdot {x}^{2}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}\]
  2. Using strategy rm
  3. Applied add-sqr-sqrt0.3

    \[\leadsto \left(\left(\left(x \cdot x - 7 \cdot x\right) \cdot x + \color{blue}{\sqrt{28 \cdot {x}^{2}} \cdot \sqrt{28 \cdot {x}^{2}}}\right) \cdot x - 56 \cdot {x}^{3}\right) \cdot x + {x}^{4}\]
  4. Using strategy rm
  5. Applied add-sqr-sqrt0.3

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

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

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

Reproduce

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