Average Error: 0.0 → 0.0
Time: 12.0s
Precision: 64
\[\left(x \cdot y + x\right) + y\]
\[\left(y + x \cdot y\right) + x\]
\left(x \cdot y + x\right) + y
\left(y + x \cdot y\right) + x
double f(double x, double y) {
        double r4571205 = x;
        double r4571206 = y;
        double r4571207 = r4571205 * r4571206;
        double r4571208 = r4571207 + r4571205;
        double r4571209 = r4571208 + r4571206;
        return r4571209;
}

double f(double x, double y) {
        double r4571210 = y;
        double r4571211 = x;
        double r4571212 = r4571211 * r4571210;
        double r4571213 = r4571210 + r4571212;
        double r4571214 = r4571213 + r4571211;
        return r4571214;
}

Error

Bits error versus x

Bits error versus y

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(x \cdot y + x\right) + y\]
  2. Taylor expanded around 0 0.0

    \[\leadsto \color{blue}{x + \left(y + x \cdot y\right)}\]
  3. Final simplification0.0

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

Reproduce

herbie shell --seed 2019171 
(FPCore (x y)
  :name "Numeric.Log:$cexpm1 from log-domain-0.10.2.1, B"
  (+ (+ (* x y) x) y))