\left(\frac{x \cdot \left(j + 1\right)}{n} + \frac{y \cdot \left(j + 2\right)}{n - 1}\right) + \frac{z \cdot \left(j + 3\right)}{n - 2}\left(\frac{x \cdot \left(j + 1\right)}{n} + \frac{y \cdot \left(j + 2\right)}{n - 1}\right) + \frac{z \cdot \left(j + 3\right)}{n - 2}double code(double x, double j, double n, double y, double z) {
return ((double) (((double) (((double) (((double) (x * ((double) (j + 1.0)))) / n)) + ((double) (((double) (y * ((double) (j + 2.0)))) / ((double) (n - 1.0)))))) + ((double) (((double) (z * ((double) (j + 3.0)))) / ((double) (n - 2.0))))));
}
double code(double x, double j, double n, double y, double z) {
return ((double) (((double) (((double) (((double) (x * ((double) (j + 1.0)))) / n)) + ((double) (((double) (y * ((double) (j + 2.0)))) / ((double) (n - 1.0)))))) + ((double) (((double) (z * ((double) (j + 3.0)))) / ((double) (n - 2.0))))));
}



Bits error versus x



Bits error versus j



Bits error versus n



Bits error versus y



Bits error versus z
Results
Initial program 7.6
Final simplification7.6
herbie shell --seed 2020153
(FPCore (x j n y z)
:name "(+ (+ (/ (* x (+ j 1)) n) (/ (* y (+ j 2)) (- n 1))) (/ (* z (+ j 3)) (- n 2)))"
:precision binary64
(+ (+ (/ (* x (+ j 1.0)) n) (/ (* y (+ j 2.0)) (- n 1.0))) (/ (* z (+ j 3.0)) (- n 2.0))))