Average Error: 0.0 → 0.0
Time: 1.2s
Precision: binary64
\[\left(w \cdot w + \left(2 \cdot a\right) \cdot w\right) + k\]
\[k + w \cdot \left(w + 2 \cdot a\right)\]
\left(w \cdot w + \left(2 \cdot a\right) \cdot w\right) + k
k + w \cdot \left(w + 2 \cdot a\right)
double code(double w, double a, double k) {
	return ((double) (((double) (((double) (w * w)) + ((double) (((double) (2.0 * a)) * w)))) + k));
}
double code(double w, double a, double k) {
	return ((double) (k + ((double) (w * ((double) (w + ((double) (2.0 * a))))))));
}

Error

Bits error versus w

Bits error versus a

Bits error versus k

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(w \cdot w + \left(2 \cdot a\right) \cdot w\right) + k\]
  2. Simplified0.0

    \[\leadsto \color{blue}{k + w \cdot \left(w + 2 \cdot a\right)}\]
  3. Final simplification0.0

    \[\leadsto k + w \cdot \left(w + 2 \cdot a\right)\]

Reproduce

herbie shell --seed 2020153 
(FPCore (w a k)
  :name "(+ (+ (* w w) (* (* 2 a) w)) k)"
  :precision binary64
  (+ (+ (* w w) (* (* 2.0 a) w)) k))