Average Error: 38.1 → 38.1
Time: 7.4s
Precision: binary64
\[0.0 + \left(\left(\left(w0 \cdot \left(0.0 - m0\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right)\right)\right) \cdot 1 + \left(\left(\left(w1 \cdot \left(0.0 - m1\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right)\right)\right) \cdot 1 + \left(\left(\left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right) \cdot 1 + 0.0\right)\right)\right)\]
\[\left(0.0 + 1 \cdot \left(-3 \cdot \left(\left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right) \cdot \left(w0 \cdot \left(0.0 - m0\right)\right) + \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right) \cdot \left(w1 \cdot \left(0.0 - m1\right)\right)\right) + \left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right)\right) + 0.0\]
0.0 + \left(\left(\left(w0 \cdot \left(0.0 - m0\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right)\right)\right) \cdot 1 + \left(\left(\left(w1 \cdot \left(0.0 - m1\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right)\right)\right) \cdot 1 + \left(\left(\left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right) \cdot 1 + 0.0\right)\right)\right)
\left(0.0 + 1 \cdot \left(-3 \cdot \left(\left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right) \cdot \left(w0 \cdot \left(0.0 - m0\right)\right) + \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right) \cdot \left(w1 \cdot \left(0.0 - m1\right)\right)\right) + \left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right)\right) + 0.0
double code(double w0, double m0, double a0, double w1, double m1, double a1, double w2, double m2, double a2) {
	return ((double) (0.0 + ((double) (((double) (((double) (((double) (w0 * ((double) (0.0 - m0)))) * ((double) (-3.0 * ((double) (((double) (1.0 * ((double) (a0 / w0)))) * ((double) (a0 / w0)))))))) * 1.0)) + ((double) (((double) (((double) (((double) (w1 * ((double) (0.0 - m1)))) * ((double) (-3.0 * ((double) (((double) (1.0 * ((double) (a1 / w1)))) * ((double) (a1 / w1)))))))) * 1.0)) + ((double) (((double) (((double) (((double) (w2 * ((double) (0.0 - m2)))) * ((double) (-3.0 * ((double) (((double) (1.0 * ((double) (a2 / w2)))) * ((double) (a2 / w2)))))))) * 1.0)) + 0.0))))))));
}
double code(double w0, double m0, double a0, double w1, double m1, double a1, double w2, double m2, double a2) {
	return ((double) (((double) (0.0 + ((double) (1.0 * ((double) (((double) (-3.0 * ((double) (((double) (((double) (((double) (1.0 * ((double) (a0 / w0)))) * ((double) (a0 / w0)))) * ((double) (w0 * ((double) (0.0 - m0)))))) + ((double) (((double) (((double) (1.0 * ((double) (a1 / w1)))) * ((double) (a1 / w1)))) * ((double) (w1 * ((double) (0.0 - m1)))))))))) + ((double) (((double) (w2 * ((double) (0.0 - m2)))) * ((double) (-3.0 * ((double) (((double) (1.0 * ((double) (a2 / w2)))) * ((double) (a2 / w2)))))))))))))) + 0.0));
}

Error

Bits error versus w0

Bits error versus m0

Bits error versus a0

Bits error versus w1

Bits error versus m1

Bits error versus a1

Bits error versus w2

Bits error versus m2

Bits error versus a2

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 38.1

    \[0.0 + \left(\left(\left(w0 \cdot \left(0.0 - m0\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right)\right)\right) \cdot 1 + \left(\left(\left(w1 \cdot \left(0.0 - m1\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right)\right)\right) \cdot 1 + \left(\left(\left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right) \cdot 1 + 0.0\right)\right)\right)\]
  2. Simplified38.1

    \[\leadsto \color{blue}{\left(0.0 + 1 \cdot \left(-3 \cdot \left(\left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right) \cdot \left(w0 \cdot \left(0.0 - m0\right)\right) + \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right) \cdot \left(w1 \cdot \left(0.0 - m1\right)\right)\right) + \left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right)\right) + 0.0}\]
  3. Final simplification38.1

    \[\leadsto \left(0.0 + 1 \cdot \left(-3 \cdot \left(\left(\left(1 \cdot \frac{a0}{w0}\right) \cdot \frac{a0}{w0}\right) \cdot \left(w0 \cdot \left(0.0 - m0\right)\right) + \left(\left(1 \cdot \frac{a1}{w1}\right) \cdot \frac{a1}{w1}\right) \cdot \left(w1 \cdot \left(0.0 - m1\right)\right)\right) + \left(w2 \cdot \left(0.0 - m2\right)\right) \cdot \left(-3 \cdot \left(\left(1 \cdot \frac{a2}{w2}\right) \cdot \frac{a2}{w2}\right)\right)\right)\right) + 0.0\]

Reproduce

herbie shell --seed 2020153 
(FPCore (w0 m0 a0 w1 m1 a1 w2 m2 a2)
  :name "(+ 0.0 (+ (* (* (* w0 (- 0.0 m0)) (* -3 (* (* 1 (/ a0 w0)) (/ a0 w0)))) 1) (+ (* (* (* w1 (- 0.0 m1)) (* -3 (* (* 1 (/ a1 w1)) (/ a1 w1)))) 1) (+ (* (* (* w2 (- 0.0 m2)) (* -3 (* (* 1 (/ a2 w2)) (/ a2 w2)))) 1) 0.0))))"
  :precision binary64
  (+ 0.0 (+ (* (* (* w0 (- 0.0 m0)) (* -3.0 (* (* 1.0 (/ a0 w0)) (/ a0 w0)))) 1.0) (+ (* (* (* w1 (- 0.0 m1)) (* -3.0 (* (* 1.0 (/ a1 w1)) (/ a1 w1)))) 1.0) (+ (* (* (* w2 (- 0.0 m2)) (* -3.0 (* (* 1.0 (/ a2 w2)) (/ a2 w2)))) 1.0) 0.0)))))