Average Error: 0.0 → 0.0
Time: 1.4s
Precision: 64
\[\left(\left(a + b\right) + c\right) + d\]
\[\left(\left(a + b\right) + c\right) + d\]
\left(\left(a + b\right) + c\right) + d
\left(\left(a + b\right) + c\right) + d
double f(double a, double b, double c, double d) {
        double r2212844 = a;
        double r2212845 = b;
        double r2212846 = r2212844 + r2212845;
        double r2212847 = c;
        double r2212848 = r2212846 + r2212847;
        double r2212849 = d;
        double r2212850 = r2212848 + r2212849;
        return r2212850;
}

double f(double a, double b, double c, double d) {
        double r2212851 = a;
        double r2212852 = b;
        double r2212853 = r2212851 + r2212852;
        double r2212854 = c;
        double r2212855 = r2212853 + r2212854;
        double r2212856 = d;
        double r2212857 = r2212855 + r2212856;
        return r2212857;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(\left(a + b\right) + c\right) + d\]
  2. Final simplification0.0

    \[\leadsto \left(\left(a + b\right) + c\right) + d\]

Reproduce

herbie shell --seed 1 
(FPCore (a b c d)
  :name "a+b+c+d"
  :precision binary64
  (+ (+ (+ a b) c) d))