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



Bits error versus v



Bits error versus a



Bits error versus a1



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