Average Error: 3.5 → 3.5
Time: 1.3s
Precision: binary64
\[q + d \cdot \left(g - r \cdot s\right)\]
\[q + d \cdot \left(g - r \cdot s\right)\]
q + d \cdot \left(g - r \cdot s\right)
q + d \cdot \left(g - r \cdot s\right)
double code(double q, double d, double g, double r, double s) {
	return ((double) (q + ((double) (d * ((double) (g - ((double) (r * s))))))));
}
double code(double q, double d, double g, double r, double s) {
	return ((double) (q + ((double) (d * ((double) (g - ((double) (r * s))))))));
}

Error

Bits error versus q

Bits error versus d

Bits error versus g

Bits error versus r

Bits error versus s

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 3.5

    \[q + d \cdot \left(g - r \cdot s\right)\]
  2. Final simplification3.5

    \[\leadsto q + d \cdot \left(g - r \cdot s\right)\]

Reproduce

herbie shell --seed 2020152 
(FPCore (q d g r s)
  :name "(+ q (* d (- g (* r s))))"
  :precision binary64
  (+ q (* d (- g (* r s)))))