\left(A \cdot B + B \cdot C\right) + B \cdot D
\left(A \cdot B + B \cdot C\right) + B \cdot D
double code(double A, double B, double C, double D) {
return ((double) (((double) (((double) (A * B)) + ((double) (B * C)))) + ((double) (B * D))));
}
double code(double A, double B, double C, double D) {
return ((double) (((double) (((double) (A * B)) + ((double) (B * C)))) + ((double) (B * D))));
}



Bits error versus A



Bits error versus B



Bits error versus C



Bits error versus D
Results
Initial program 0.0
Final simplification0.0
herbie shell --seed 2020153
(FPCore (A B C D)
:name "(+ (+ (* A B) (* B C)) (* B D))"
:precision binary64
(+ (+ (* A B) (* B C)) (* B D)))