\left(x + a \cdot b\right) - \mathsf{trunc}\left(x + a \cdot b\right)\left(x + a \cdot b\right) - \mathsf{trunc}\left(x + a \cdot b\right)double code(double x, double a, double b) {
return ((double) (((double) (x + ((double) (a * b)))) - ((double) trunc(((double) (x + ((double) (a * b))))))));
}
double code(double x, double a, double b) {
return ((double) (((double) (x + ((double) (a * b)))) - ((double) trunc(((double) (x + ((double) (a * b))))))));
}



Bits error versus x



Bits error versus a



Bits error versus b
Results
Initial program 33.9
Final simplification33.9
herbie shell --seed 2020153
(FPCore (x a b)
:name "(- (+ x (* a b)) (trunc (+ x (* a b))))"
:precision binary64
(- (+ x (* a b)) (trunc (+ x (* a b)))))