Average Error: 0.1 → 0.1
Time: 2.2m
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 r8467159 = x;
        double r8467160 = y;
        double r8467161 = z;
        double r8467162 = r8467160 + r8467161;
        double r8467163 = r8467162 + r8467161;
        double r8467164 = r8467163 + r8467160;
        double r8467165 = t;
        double r8467166 = r8467164 + r8467165;
        double r8467167 = r8467159 * r8467166;
        double r8467168 = 5.0;
        double r8467169 = r8467160 * r8467168;
        double r8467170 = r8467167 + r8467169;
        return r8467170;
}

double f(double x, double y, double z, double t) {
        double r8467171 = 2.0;
        double r8467172 = x;
        double r8467173 = z;
        double r8467174 = r8467172 * r8467173;
        double r8467175 = r8467171 * r8467174;
        double r8467176 = y;
        double r8467177 = r8467172 * r8467176;
        double r8467178 = r8467177 * r8467171;
        double r8467179 = t;
        double r8467180 = r8467172 * r8467179;
        double r8467181 = r8467178 + r8467180;
        double r8467182 = r8467175 + r8467181;
        double r8467183 = 5.0;
        double r8467184 = r8467176 * r8467183;
        double r8467185 = r8467182 + r8467184;
        return r8467185;
}

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)))