Average Error: 0.1 → 0.1
Time: 953.0ms
Precision: binary64
\[1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}\]
\[1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}\]
1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}
1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}
double code(double r, double eps, double q, double b) {
	return ((double) (1.0 - ((double) (((double) (r + eps)) / ((double) (q + ((double) (b * eps))))))));
}
double code(double r, double eps, double q, double b) {
	return ((double) (1.0 - ((double) (((double) (r + eps)) / ((double) (q + ((double) (b * eps))))))));
}

Error

Bits error versus r

Bits error versus eps

Bits error versus q

Bits error versus b

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}\]
  2. Final simplification0.1

    \[\leadsto 1 - \frac{r + \varepsilon}{q + b \cdot \varepsilon}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (r eps q b)
  :name "(- 1 (/ (+ r eps) (+ q (* b eps))))"
  :precision binary64
  (- 1.0 (/ (+ r eps) (+ q (* b eps)))))