x + \left(\left(v + v1\right) \cdot dt\right) \cdot 0.5
x + \left(\left(v + v1\right) \cdot dt\right) \cdot 0.5
double code(double x, double v, double v1, double dt) {
return ((double) (x + ((double) (((double) (((double) (v + v1)) * dt)) * 0.5))));
}
double code(double x, double v, double v1, double dt) {
return ((double) (x + ((double) (((double) (((double) (v + v1)) * dt)) * 0.5))));
}



Bits error versus x



Bits error versus v



Bits error versus v1



Bits error versus dt
Results
Initial program 0.1
Final simplification0.1
herbie shell --seed 2020153
(FPCore (x v v1 dt)
:name "(+ x (* (* (+ v v1) dt) 0.5))"
:precision binary64
(+ x (* (* (+ v v1) dt) 0.5)))