\frac{2 \cdot \left(\left(\left(a12 \cdot b13\right) \cdot s2_w0 - \left(a13 \cdot b12\right) \cdot s2_w1\right) - \left(s2_w0 \cdot s2_w1\right) \cdot \left(a12 - a13\right)\right)}{s2_a}\frac{2 \cdot \left(\left(\left(a12 \cdot b13\right) \cdot s2_w0 - \left(a13 \cdot b12\right) \cdot s2_w1\right) - \left(s2_w0 \cdot s2_w1\right) \cdot \left(a12 - a13\right)\right)}{s2_a}double code(double a12, double b13, double s2_w0, double a13, double b12, double s2_w1, double s2_a) {
return ((double) (((double) (2.0 * ((double) (((double) (((double) (((double) (a12 * b13)) * s2_w0)) - ((double) (((double) (a13 * b12)) * s2_w1)))) - ((double) (((double) (s2_w0 * s2_w1)) * ((double) (a12 - a13)))))))) / s2_a));
}
double code(double a12, double b13, double s2_w0, double a13, double b12, double s2_w1, double s2_a) {
return ((double) (((double) (2.0 * ((double) (((double) (((double) (((double) (a12 * b13)) * s2_w0)) - ((double) (((double) (a13 * b12)) * s2_w1)))) - ((double) (((double) (s2_w0 * s2_w1)) * ((double) (a12 - a13)))))))) / s2_a));
}



Bits error versus a12



Bits error versus b13



Bits error versus s2_w0



Bits error versus a13



Bits error versus b12



Bits error versus s2_w1



Bits error versus s2_a
Results
Initial program 17.7
Final simplification17.7
herbie shell --seed 2020153
(FPCore (a12 b13 s2_w0 a13 b12 s2_w1 s2_a)
:name "(/ (* 2 (- (- (* (* a12 b13) s2_w0) (* (* a13 b12) s2_w1)) (* (* s2_w0 s2_w1) (- a12 a13)))) s2_a)"
:precision binary64
(/ (* 2.0 (- (- (* (* a12 b13) s2_w0) (* (* a13 b12) s2_w1)) (* (* s2_w0 s2_w1) (- a12 a13)))) s2_a))