Average Error: 0.0 → 0.0
Time: 662.0ms
Precision: 64
\[\left(x \cdot y + x\right) + y\]
\[\left(x \cdot y + x\right) + y\]
\left(x \cdot y + x\right) + y
\left(x \cdot y + x\right) + y
double f(double x, double y) {
        double r107900 = x;
        double r107901 = y;
        double r107902 = r107900 * r107901;
        double r107903 = r107902 + r107900;
        double r107904 = r107903 + r107901;
        return r107904;
}

double f(double x, double y) {
        double r107905 = x;
        double r107906 = y;
        double r107907 = r107905 * r107906;
        double r107908 = r107907 + r107905;
        double r107909 = r107908 + r107906;
        return r107909;
}

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. Final simplification0.0

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

Reproduce

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