Average Error: 18.1 → 18.1
Time: 1.6s
Precision: binary64
\[\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}\]
\[\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}\]
\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}
\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}
double code(double aA2, double aA0, double k, double aA1) {
	return ((double) (((double) (((double) (2.0 * aA2)) - ((double) (((double) (((double) (2.0 * aA0)) * k)) * k)))) / ((double) (((double) (((double) (((double) (aA0 * k)) * k)) + ((double) (aA1 * k)))) + aA2))));
}
double code(double aA2, double aA0, double k, double aA1) {
	return ((double) (((double) (((double) (2.0 * aA2)) - ((double) (((double) (((double) (2.0 * aA0)) * k)) * k)))) / ((double) (((double) (((double) (((double) (aA0 * k)) * k)) + ((double) (aA1 * k)))) + aA2))));
}

Error

Bits error versus aA2

Bits error versus aA0

Bits error versus k

Bits error versus aA1

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 18.1

    \[\frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}\]
  2. Final simplification18.1

    \[\leadsto \frac{2 \cdot aA2 - \left(\left(2 \cdot aA0\right) \cdot k\right) \cdot k}{\left(\left(aA0 \cdot k\right) \cdot k + aA1 \cdot k\right) + aA2}\]

Reproduce

herbie shell --seed 2020153 
(FPCore (aA2 aA0 k aA1)
  :name "(/ (- (* 2 aA2) (* (* (* 2 aA0) k) k)) (+ (+ (* (* aA0 k) k) (* aA1 k)) aA2))"
  :precision binary64
  (/ (- (* 2.0 aA2) (* (* (* 2.0 aA0) k) k)) (+ (+ (* (* aA0 k) k) (* aA1 k)) aA2)))