Average Error: 0.1 → 0.1
Time: 1.9s
Precision: binary64
\[\left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u\]
\[\left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u\]
\left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u
\left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u
double code(double k0, double u, double k1, double k2) {
	return ((double) (((double) (((double) (k0 * u)) + ((double) (((double) (k1 * u)) * u)))) + ((double) (((double) (((double) (k2 * u)) * u)) * u))));
}
double code(double k0, double u, double k1, double k2) {
	return ((double) (((double) (((double) (k0 * u)) + ((double) (((double) (k1 * u)) * u)))) + ((double) (((double) (((double) (k2 * u)) * u)) * u))));
}

Error

Bits error versus k0

Bits error versus u

Bits error versus k1

Bits error versus k2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.1

    \[\left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u\]
  2. Final simplification0.1

    \[\leadsto \left(k0 \cdot u + \left(k1 \cdot u\right) \cdot u\right) + \left(\left(k2 \cdot u\right) \cdot u\right) \cdot u\]

Reproduce

herbie shell --seed 2020153 
(FPCore (k0 u k1 k2)
  :name "(+ (+ (* k0 u) (* (* k1 u) u)) (* (* (* k2 u) u) u))"
  :precision binary64
  (+ (+ (* k0 u) (* (* k1 u) u)) (* (* (* k2 u) u) u)))