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

Error

Bits error versus r

Bits error versus a

Bits error versus eps

Bits error versus q

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 8.6

    \[1 - \frac{r + a \cdot \varepsilon}{q + \varepsilon}\]
  2. Final simplification8.6

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

Reproduce

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