Average Error: 58.1 → 57.1
Time: 18.1s
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}\]
\[\mathsf{fma}\left(0.5, \frac{x}{y}, \left(-2\right) \cdot \left(x \cdot x\right)\right)\]
\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}
\mathsf{fma}\left(0.5, \frac{x}{y}, \left(-2\right) \cdot \left(x \cdot x\right)\right)
double f(double x, double y) {
        double r17726 = 333.75;
        double r17727 = y;
        double r17728 = 6.0;
        double r17729 = pow(r17727, r17728);
        double r17730 = r17726 * r17729;
        double r17731 = x;
        double r17732 = r17731 * r17731;
        double r17733 = 11.0;
        double r17734 = r17733 * r17731;
        double r17735 = r17734 * r17731;
        double r17736 = r17735 * r17727;
        double r17737 = r17736 * r17727;
        double r17738 = r17737 - r17729;
        double r17739 = 121.0;
        double r17740 = 4.0;
        double r17741 = pow(r17727, r17740);
        double r17742 = r17739 * r17741;
        double r17743 = r17738 - r17742;
        double r17744 = 2.0;
        double r17745 = r17743 - r17744;
        double r17746 = r17732 * r17745;
        double r17747 = r17730 + r17746;
        double r17748 = 5.5;
        double r17749 = 8.0;
        double r17750 = pow(r17727, r17749);
        double r17751 = r17748 * r17750;
        double r17752 = r17747 + r17751;
        double r17753 = r17744 * r17727;
        double r17754 = r17731 / r17753;
        double r17755 = r17752 + r17754;
        return r17755;
}

double f(double x, double y) {
        double r17756 = 0.5;
        double r17757 = x;
        double r17758 = y;
        double r17759 = r17757 / r17758;
        double r17760 = 2.0;
        double r17761 = -r17760;
        double r17762 = r17757 * r17757;
        double r17763 = r17761 * r17762;
        double r17764 = fma(r17756, r17759, r17763);
        return r17764;
}

Error

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. Taylor expanded around 0 57.1

    \[\leadsto \color{blue}{0.5 \cdot \frac{x}{y} - 2 \cdot {x}^{2}}\]
  3. Simplified57.1

    \[\leadsto \color{blue}{\mathsf{fma}\left(0.5, \frac{x}{y}, \left(x \cdot x\right) \cdot \left(-2\right)\right)}\]
  4. Final simplification57.1

    \[\leadsto \mathsf{fma}\left(0.5, \frac{x}{y}, \left(-2\right) \cdot \left(x \cdot x\right)\right)\]

Reproduce

herbie shell --seed 2019174 +o rules:numerics
(FPCore (x y)
  :name "Rump's expression from Stadtherr's award speech"
  :pre (and (== x 77617.0) (== y 33096.0))
  (+ (+ (+ (* 333.75 (pow y 6.0)) (* (* x x) (- (- (- (* (* (* (* 11.0 x) x) y) y) (pow y 6.0)) (* 121.0 (pow y 4.0))) 2.0))) (* 5.5 (pow y 8.0))) (/ x (* 2.0 y))))