Average Error: 58.1 → 57.1
Time: 13.8s
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 r17679 = 333.75;
        double r17680 = y;
        double r17681 = 6.0;
        double r17682 = pow(r17680, r17681);
        double r17683 = r17679 * r17682;
        double r17684 = x;
        double r17685 = r17684 * r17684;
        double r17686 = 11.0;
        double r17687 = r17686 * r17684;
        double r17688 = r17687 * r17684;
        double r17689 = r17688 * r17680;
        double r17690 = r17689 * r17680;
        double r17691 = r17690 - r17682;
        double r17692 = 121.0;
        double r17693 = 4.0;
        double r17694 = pow(r17680, r17693);
        double r17695 = r17692 * r17694;
        double r17696 = r17691 - r17695;
        double r17697 = 2.0;
        double r17698 = r17696 - r17697;
        double r17699 = r17685 * r17698;
        double r17700 = r17683 + r17699;
        double r17701 = 5.5;
        double r17702 = 8.0;
        double r17703 = pow(r17680, r17702);
        double r17704 = r17701 * r17703;
        double r17705 = r17700 + r17704;
        double r17706 = r17697 * r17680;
        double r17707 = r17684 / r17706;
        double r17708 = r17705 + r17707;
        return r17708;
}

double f(double x, double y) {
        double r17709 = 0.5;
        double r17710 = x;
        double r17711 = y;
        double r17712 = r17710 / r17711;
        double r17713 = 2.0;
        double r17714 = -r17713;
        double r17715 = r17710 * r17710;
        double r17716 = r17714 * r17715;
        double r17717 = fma(r17709, r17712, r17716);
        return r17717;
}

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 2019196 +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))))