Average Error: 0.1 → 0.1
Time: 12.1s
Precision: 64
\[\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y\]
\[y \cdot y + \left(y \cdot y + \left(x \cdot x + y \cdot y\right)\right)\]
\left(\left(x \cdot x + y \cdot y\right) + y \cdot y\right) + y \cdot y
y \cdot y + \left(y \cdot y + \left(x \cdot x + y \cdot y\right)\right)
double f(double x, double y) {
        double r457242 = x;
        double r457243 = r457242 * r457242;
        double r457244 = y;
        double r457245 = r457244 * r457244;
        double r457246 = r457243 + r457245;
        double r457247 = r457246 + r457245;
        double r457248 = r457247 + r457245;
        return r457248;
}

double f(double x, double y) {
        double r457249 = y;
        double r457250 = r457249 * r457249;
        double r457251 = x;
        double r457252 = r457251 * r457251;
        double r457253 = r457252 + r457250;
        double r457254 = r457250 + r457253;
        double r457255 = r457250 + r457254;
        return r457255;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original0.1
Target0.1
Herbie0.1
\[x \cdot x + y \cdot \left(y + \left(y + y\right)\right)\]

Derivation

  1. Initial program 0.1

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

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

Reproduce

herbie shell --seed 2019194 
(FPCore (x y)
  :name "Linear.Quaternion:$c/ from linear-1.19.1.3, E"

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

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