Average Error: 0.3 → 0.2
Time: 835.0ms
Precision: binary64
\[\frac{\left(11 \cdot r - 12 \cdot g\right) + b}{11}\]
\[r - \frac{12 \cdot g - b}{11}\]
\frac{\left(11 \cdot r - 12 \cdot g\right) + b}{11}
r - \frac{12 \cdot g - b}{11}
double code(double r, double g, double b) {
	return ((double) (((double) (((double) (((double) (11.0 * r)) - ((double) (12.0 * g)))) + b)) / 11.0));
}
double code(double r, double g, double b) {
	return ((double) (r - ((double) (((double) (((double) (12.0 * g)) - b)) / 11.0))));
}

Error

Bits error versus r

Bits error versus g

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.3

    \[\frac{\left(11 \cdot r - 12 \cdot g\right) + b}{11}\]
  2. Simplified0.2

    \[\leadsto \color{blue}{r - \frac{12 \cdot g - b}{11}}\]
  3. Final simplification0.2

    \[\leadsto r - \frac{12 \cdot g - b}{11}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (r g b)
  :name "(/ (+ (- (* 11 r) (* 12 g)) b) 11)"
  :precision binary64
  (/ (+ (- (* 11.0 r) (* 12.0 g)) b) 11.0))