Average Error: 0.1 → 0.1
Time: 37.5s
Precision: 64
\[x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5.0\]
\[\left(2 \cdot \left(x \cdot z\right) + \left(\left(x \cdot y\right) \cdot 2 + x \cdot t\right)\right) + y \cdot 5.0\]
x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5.0
\left(2 \cdot \left(x \cdot z\right) + \left(\left(x \cdot y\right) \cdot 2 + x \cdot t\right)\right) + y \cdot 5.0
double f(double x, double y, double z, double t) {
        double r8123722 = x;
        double r8123723 = y;
        double r8123724 = z;
        double r8123725 = r8123723 + r8123724;
        double r8123726 = r8123725 + r8123724;
        double r8123727 = r8123726 + r8123723;
        double r8123728 = t;
        double r8123729 = r8123727 + r8123728;
        double r8123730 = r8123722 * r8123729;
        double r8123731 = 5.0;
        double r8123732 = r8123723 * r8123731;
        double r8123733 = r8123730 + r8123732;
        return r8123733;
}

double f(double x, double y, double z, double t) {
        double r8123734 = 2.0;
        double r8123735 = x;
        double r8123736 = z;
        double r8123737 = r8123735 * r8123736;
        double r8123738 = r8123734 * r8123737;
        double r8123739 = y;
        double r8123740 = r8123735 * r8123739;
        double r8123741 = r8123740 * r8123734;
        double r8123742 = t;
        double r8123743 = r8123735 * r8123742;
        double r8123744 = r8123741 + r8123743;
        double r8123745 = r8123738 + r8123744;
        double r8123746 = 5.0;
        double r8123747 = r8123739 * r8123746;
        double r8123748 = r8123745 + r8123747;
        return r8123748;
}

Error

Bits error versus x

Bits error versus y

Bits error versus z

Bits error versus t

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5.0\]
  2. Simplified0.1

    \[\leadsto \color{blue}{y \cdot 5.0 + \left(\left(\left(y + z\right) + \left(y + z\right)\right) + t\right) \cdot x}\]
  3. Taylor expanded around inf 0.1

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

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

Reproduce

herbie shell --seed 2019158 
(FPCore (x y z t)
  :name "Graphics.Rendering.Plot.Render.Plot.Legend:renderLegendOutside from plot-0.2.3.4, B"
  (+ (* x (+ (+ (+ (+ y z) z) y) t)) (* y 5.0)))