Average Error: 0.2 → 0.2
Time: 1.8s
Precision: binary64
\[v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt\]
\[v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt\]
v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt
v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt
double code(double v, double a1, double a, double aprev, double dt) {
	return ((double) (v + ((double) (((double) (((double) (((double) (((double) (5.0 / 12.0)) * a1)) + ((double) (((double) (2.0 / 3.0)) * a)))) - ((double) (((double) (1.0 / 12.0)) * aprev)))) * dt))));
}
double code(double v, double a1, double a, double aprev, double dt) {
	return ((double) (v + ((double) (((double) (((double) (((double) (((double) (5.0 / 12.0)) * a1)) + ((double) (((double) (2.0 / 3.0)) * a)))) - ((double) (((double) (1.0 / 12.0)) * aprev)))) * dt))));
}

Error

Bits error versus v

Bits error versus a1

Bits error versus a

Bits error versus aprev

Bits error versus dt

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt\]
  2. Final simplification0.2

    \[\leadsto v + \left(\left(\frac{5}{12} \cdot a1 + \frac{2}{3} \cdot a\right) - \frac{1}{12} \cdot aprev\right) \cdot dt\]

Reproduce

herbie shell --seed 2020153 
(FPCore (v a1 a aprev dt)
  :name "(+ v (* (- (+ (* (/ 5 12) a1) (* (/ 2 3) a)) (* (/ 1 12) aprev)) dt))"
  :precision binary64
  (+ v (* (- (+ (* (/ 5.0 12.0) a1) (* (/ 2.0 3.0) a)) (* (/ 1.0 12.0) aprev)) dt)))