Average Error: 0.0 → 0.0
Time: 7.4s
Precision: 64
\[\left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f\]
\[\left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f\]
\left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f
\left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f
double f(double x1, double x2, double f) {
        double r986139 = x1;
        double r986140 = x2;
        double r986141 = r986139 + r986140;
        double r986142 = 0.5;
        double r986143 = r986141 * r986142;
        double r986144 = f;
        double r986145 = r986143 * r986144;
        return r986145;
}

double f(double x1, double x2, double f) {
        double r986146 = x1;
        double r986147 = x2;
        double r986148 = r986146 + r986147;
        double r986149 = 0.5;
        double r986150 = r986148 * r986149;
        double r986151 = f;
        double r986152 = r986150 * r986151;
        return r986152;
}

Error

Bits error versus x1

Bits error versus x2

Bits error versus f

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f\]
  2. Final simplification0.0

    \[\leadsto \left(\left(x1 + x2\right) \cdot 0.5\right) \cdot f\]

Reproduce

herbie shell --seed 1 
(FPCore (x1 x2 f)
  :name "(x1 + x2) * 0.5f"
  :precision binary64
  (* (* (+ x1 x2) 0.5) f))