Average Error: 58.1 → 57.1
Time: 3.4s
Precision: 64
\[x = 77617 \land y = 33096\]
\[\left(\left(333.75 \cdot {y}^{6} + \left(x \cdot x\right) \cdot \left(\left(\left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - {y}^{6}\right) - 121 \cdot {y}^{4}\right) - 2\right)\right) + 5.5 \cdot {y}^{8}\right) + \frac{x}{2 \cdot y}\]
\[0.5 \cdot \frac{x}{y} - 2 \cdot {x}^{2}\]
\left(\left(333.75 \cdot {y}^{6} + \left(x \cdot x\right) \cdot \left(\left(\left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - {y}^{6}\right) - 121 \cdot {y}^{4}\right) - 2\right)\right) + 5.5 \cdot {y}^{8}\right) + \frac{x}{2 \cdot y}
0.5 \cdot \frac{x}{y} - 2 \cdot {x}^{2}
double f(double x, double y) {
        double r14886 = 333.75;
        double r14887 = y;
        double r14888 = 6.0;
        double r14889 = pow(r14887, r14888);
        double r14890 = r14886 * r14889;
        double r14891 = x;
        double r14892 = r14891 * r14891;
        double r14893 = 11.0;
        double r14894 = r14893 * r14891;
        double r14895 = r14894 * r14891;
        double r14896 = r14895 * r14887;
        double r14897 = r14896 * r14887;
        double r14898 = r14897 - r14889;
        double r14899 = 121.0;
        double r14900 = 4.0;
        double r14901 = pow(r14887, r14900);
        double r14902 = r14899 * r14901;
        double r14903 = r14898 - r14902;
        double r14904 = 2.0;
        double r14905 = r14903 - r14904;
        double r14906 = r14892 * r14905;
        double r14907 = r14890 + r14906;
        double r14908 = 5.5;
        double r14909 = 8.0;
        double r14910 = pow(r14887, r14909);
        double r14911 = r14908 * r14910;
        double r14912 = r14907 + r14911;
        double r14913 = r14904 * r14887;
        double r14914 = r14891 / r14913;
        double r14915 = r14912 + r14914;
        return r14915;
}

double f(double x, double y) {
        double r14916 = 0.5;
        double r14917 = x;
        double r14918 = y;
        double r14919 = r14917 / r14918;
        double r14920 = r14916 * r14919;
        double r14921 = 2.0;
        double r14922 = 2.0;
        double r14923 = pow(r14917, r14922);
        double r14924 = r14921 * r14923;
        double r14925 = r14920 - r14924;
        return r14925;
}

Error

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 58.1

    \[\left(\left(333.75 \cdot {y}^{6} + \left(x \cdot x\right) \cdot \left(\left(\left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - {y}^{6}\right) - 121 \cdot {y}^{4}\right) - 2\right)\right) + 5.5 \cdot {y}^{8}\right) + \frac{x}{2 \cdot y}\]
  2. Simplified58.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(x, \left(\left(\left(\left(11 \cdot x\right) \cdot x\right) \cdot y\right) \cdot y - \left({y}^{6} + \mathsf{fma}\left({y}^{4}, 121, 2\right)\right)\right) \cdot x, 333.75 \cdot {y}^{6} + \mathsf{fma}\left({y}^{8}, 5.5, \frac{x}{2 \cdot y}\right)\right)}\]
  3. Taylor expanded around 0 57.1

    \[\leadsto \color{blue}{0.5 \cdot \frac{x}{y} - 2 \cdot {x}^{2}}\]
  4. Final simplification57.1

    \[\leadsto 0.5 \cdot \frac{x}{y} - 2 \cdot {x}^{2}\]

Reproduce

herbie shell --seed 2020049 +o rules:numerics
(FPCore (x y)
  :name "Rump's expression from Stadtherr's award speech"
  :precision binary64
  :pre (and (== x 77617) (== y 33096))
  (+ (+ (+ (* 333.75 (pow y 6)) (* (* x x) (- (- (- (* (* (* (* 11 x) x) y) y) (pow y 6)) (* 121 (pow y 4))) 2))) (* 5.5 (pow y 8))) (/ x (* 2 y))))