Average Error: 0.2 → 0.2
Time: 899.0ms
Precision: binary64
\[\frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}\]
\[\frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}\]
\frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}
\frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}
double code(double x, double s, double w) {
	return ((double) (((double) (((double) (((double) (x + s)) + 0.5)) - ((double) (x / w)))) / 256.0));
}
double code(double x, double s, double w) {
	return ((double) (((double) (((double) (((double) (x + s)) + 0.5)) - ((double) (x / w)))) / 256.0));
}

Error

Bits error versus x

Bits error versus s

Bits error versus w

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}\]
  2. Final simplification0.2

    \[\leadsto \frac{\left(\left(x + s\right) + 0.5\right) - \frac{x}{w}}{256}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (x s w)
  :name "(/ (- (+ (+ x s) 0.5) (/ x w)) 256)"
  :precision binary64
  (/ (- (+ (+ x s) 0.5) (/ x w)) 256.0))