Average Error: 0.1 → 0.1
Time: 16.1s
Precision: 64
\[\left(\left(\left(\left(x + y\right) + y\right) + x\right) + z\right) + x\]
\[\left(\left(\left(x + 2 \cdot y\right) + x\right) + z\right) + x\]
\left(\left(\left(\left(x + y\right) + y\right) + x\right) + z\right) + x
\left(\left(\left(x + 2 \cdot y\right) + x\right) + z\right) + x
double f(double x, double y, double z) {
        double r122530 = x;
        double r122531 = y;
        double r122532 = r122530 + r122531;
        double r122533 = r122532 + r122531;
        double r122534 = r122533 + r122530;
        double r122535 = z;
        double r122536 = r122534 + r122535;
        double r122537 = r122536 + r122530;
        return r122537;
}

double f(double x, double y, double z) {
        double r122538 = x;
        double r122539 = 2.0;
        double r122540 = y;
        double r122541 = r122539 * r122540;
        double r122542 = r122538 + r122541;
        double r122543 = r122542 + r122538;
        double r122544 = z;
        double r122545 = r122543 + r122544;
        double r122546 = r122545 + r122538;
        return r122546;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(\left(\left(\left(x + y\right) + y\right) + x\right) + z\right) + x\]
  2. Using strategy rm
  3. Applied associate-+l+0.1

    \[\leadsto \left(\left(\color{blue}{\left(x + \left(y + y\right)\right)} + x\right) + z\right) + x\]
  4. Simplified0.1

    \[\leadsto \left(\left(\left(x + \color{blue}{2 \cdot y}\right) + x\right) + z\right) + x\]
  5. Final simplification0.1

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

Reproduce

herbie shell --seed 2019322 
(FPCore (x y z)
  :name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendInside from plot-0.2.3.4"
  :precision binary64
  (+ (+ (+ (+ (+ x y) y) x) z) x))