Average Error: 0.1 → 0.1
Time: 11.3s
Precision: 64
\[x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5\]
\[x \cdot \left(2 \cdot \left(z + y\right) + t\right) + y \cdot 5\]
x \cdot \left(\left(\left(\left(y + z\right) + z\right) + y\right) + t\right) + y \cdot 5
x \cdot \left(2 \cdot \left(z + y\right) + t\right) + y \cdot 5
double f(double x, double y, double z, double t) {
        double r102705 = x;
        double r102706 = y;
        double r102707 = z;
        double r102708 = r102706 + r102707;
        double r102709 = r102708 + r102707;
        double r102710 = r102709 + r102706;
        double r102711 = t;
        double r102712 = r102710 + r102711;
        double r102713 = r102705 * r102712;
        double r102714 = 5.0;
        double r102715 = r102706 * r102714;
        double r102716 = r102713 + r102715;
        return r102716;
}

double f(double x, double y, double z, double t) {
        double r102717 = x;
        double r102718 = 2.0;
        double r102719 = z;
        double r102720 = y;
        double r102721 = r102719 + r102720;
        double r102722 = r102718 * r102721;
        double r102723 = t;
        double r102724 = r102722 + r102723;
        double r102725 = r102717 * r102724;
        double r102726 = 5.0;
        double r102727 = r102720 * r102726;
        double r102728 = r102725 + r102727;
        return r102728;
}

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\]
  2. Taylor expanded around 0 0.1

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

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

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

Reproduce

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