Average Error: 0.3 → 0.3
Time: 3.4s
Precision: binary64
\[v + \left(\frac{1}{6} \cdot \left(\left(2 \cdot a1 + 5 \cdot a\right) - aprev\right)\right) \cdot dt\]
\[v + \left(\frac{1}{6} \cdot \left(\left(2 \cdot a1 + 5 \cdot a\right) - aprev\right)\right) \cdot dt\]
v + \left(\frac{1}{6} \cdot \left(\left(2 \cdot a1 + 5 \cdot a\right) - aprev\right)\right) \cdot dt
v + \left(\frac{1}{6} \cdot \left(\left(2 \cdot a1 + 5 \cdot a\right) - aprev\right)\right) \cdot dt
double code(double v, double a1, double a, double aprev, double dt) {
	return ((double) (v + ((double) (((double) (((double) (1.0 / 6.0)) * ((double) (((double) (((double) (2.0 * a1)) + ((double) (5.0 * a)))) - aprev)))) * dt))));
}
double code(double v, double a1, double a, double aprev, double dt) {
	return ((double) (v + ((double) (((double) (((double) (1.0 / 6.0)) * ((double) (((double) (((double) (2.0 * a1)) + ((double) (5.0 * a)))) - 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.3

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

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

Reproduce

herbie shell --seed 2020152 
(FPCore (v a1 a aprev dt)
  :name "(+ v (* (* (/ 1 6) (- (+ (* 2 a1) (* 5 a)) aprev)) dt))"
  :precision binary64
  (+ v (* (* (/ 1.0 6.0) (- (+ (* 2.0 a1) (* 5.0 a)) aprev)) dt)))