Average Error: 18.1 → 18.1
Time: 1.4s
Precision: binary64
\[a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}\]
\[a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}\]
a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}
a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}
double code(double a1, double a0, double a4, double a2, double a3) {
	return ((double) (a1 + ((double) (a0 * ((double) (((double) (((double) (a1 * a4)) - ((double) (a2 * a3)))) / ((double) (((double) (a2 * a2)) - ((double) (a1 * a3))))))))));
}
double code(double a1, double a0, double a4, double a2, double a3) {
	return ((double) (a1 + ((double) (a0 * ((double) (((double) (((double) (a1 * a4)) - ((double) (a2 * a3)))) / ((double) (((double) (a2 * a2)) - ((double) (a1 * a3))))))))));
}

Error

Bits error versus a1

Bits error versus a0

Bits error versus a4

Bits error versus a2

Bits error versus a3

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 18.1

    \[a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}\]
  2. Final simplification18.1

    \[\leadsto a1 + a0 \cdot \frac{a1 \cdot a4 - a2 \cdot a3}{a2 \cdot a2 - a1 \cdot a3}\]

Reproduce

herbie shell --seed 2020152 
(FPCore (a1 a0 a4 a2 a3)
  :name "(+ a1 (* a0 (/ (- (* a1 a4) (* a2 a3)) (- (* a2 a2) (* a1 a3)))))"
  :precision binary64
  (+ a1 (* a0 (/ (- (* a1 a4) (* a2 a3)) (- (* a2 a2) (* a1 a3))))))