Average Error: 0.0 → 0.0
Time: 1.4s
Precision: binary64
\[\left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2\]
\[\left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2\]
\left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2
\left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2
double code(double a_1, double x_1, double a_2, double x_2, double a_3) {
	return ((double) (((double) (((double) (a_1 * x_1)) + ((double) (a_2 * x_2)))) + ((double) (a_3 * x_2))));
}
double code(double a_1, double x_1, double a_2, double x_2, double a_3) {
	return ((double) (((double) (((double) (a_1 * x_1)) + ((double) (a_2 * x_2)))) + ((double) (a_3 * x_2))));
}

Error

Bits error versus a_1

Bits error versus x_1

Bits error versus a_2

Bits error versus x_2

Bits error versus a_3

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.0

    \[\left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2\]
  2. Final simplification0.0

    \[\leadsto \left(a_1 \cdot x_1 + a_2 \cdot x_2\right) + a_3 \cdot x_2\]

Reproduce

herbie shell --seed 2020153 
(FPCore (a_1 x_1 a_2 x_2 a_3)
  :name "(+ (+ (* a_1 x_1) (* a_2 x_2)) (* a_3 x_2))"
  :precision binary64
  (+ (+ (* a_1 x_1) (* a_2 x_2)) (* a_3 x_2)))