Average Error: 1.9 → 1.9
Time: 2.3s
Precision: binary64
\[\left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)\]
\[\left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)\]
\left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)
\left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)
double code(double x, double s, double u, double w, double t, double r) {
	return ((double) (((double) (x + ((double) (s * u)))) + ((double) (((double) (s * w)) * ((double) (t + ((double) (w * r))))))));
}
double code(double x, double s, double u, double w, double t, double r) {
	return ((double) (((double) (x + ((double) (s * u)))) + ((double) (((double) (s * w)) * ((double) (t + ((double) (w * r))))))));
}

Error

Bits error versus x

Bits error versus s

Bits error versus u

Bits error versus w

Bits error versus t

Bits error versus r

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 1.9

    \[\left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)\]
  2. Final simplification1.9

    \[\leadsto \left(x + s \cdot u\right) + \left(s \cdot w\right) \cdot \left(t + w \cdot r\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (x s u w t r)
  :name "(+ (+ x (* s u)) (* (* s w) (+ t (* w r))))"
  :precision binary64
  (+ (+ x (* s u)) (* (* s w) (+ t (* w r)))))