Average Error: 5.5 → 5.5
Time: 3.0s
Precision: 64
\[x \cdot \left(1 + y \cdot y\right)\]
\[x \cdot \left(1 + y \cdot y\right)\]
x \cdot \left(1 + y \cdot y\right)
x \cdot \left(1 + y \cdot y\right)
double f(double x, double y) {
        double r474718 = x;
        double r474719 = 1.0;
        double r474720 = y;
        double r474721 = r474720 * r474720;
        double r474722 = r474719 + r474721;
        double r474723 = r474718 * r474722;
        return r474723;
}

double f(double x, double y) {
        double r474724 = x;
        double r474725 = 1.0;
        double r474726 = y;
        double r474727 = r474726 * r474726;
        double r474728 = r474725 + r474727;
        double r474729 = r474724 * r474728;
        return r474729;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original5.5
Target0.1
Herbie5.5
\[x + \left(x \cdot y\right) \cdot y\]

Derivation

  1. Initial program 5.5

    \[x \cdot \left(1 + y \cdot y\right)\]
  2. Final simplification5.5

    \[\leadsto x \cdot \left(1 + y \cdot y\right)\]

Reproduce

herbie shell --seed 2020001 +o rules:numerics
(FPCore (x y)
  :name "Numeric.Integration.TanhSinh:everywhere from integration-0.2.1"
  :precision binary64

  :herbie-target
  (+ x (* (* x y) y))

  (* x (+ 1 (* y y))))