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



Bits error versus x



Bits error versus v



Bits error versus dt



Bits error versus a
Results
Initial program 4.3
Final simplification4.3
herbie shell --seed 2020153
(FPCore (x v dt a)
:name "(+ (+ x (* v dt)) (* (* a (* dt dt)) 0.5))"
:precision binary64
(+ (+ x (* v dt)) (* (* a (* dt dt)) 0.5)))