\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}\frac{\left(\left(\left(\left(27 \cdot {A}^{2}\right) \cdot {D}^{2} + \left(4 \cdot {B}^{3}\right) \cdot D\right) - \left(\left(\left(18 \cdot A\right) \cdot B\right) \cdot C\right) \cdot D\right) + \left(4 \cdot A\right) \cdot {C}^{3}\right) - {B}^{2} \cdot {C}^{2}}{108 \cdot {A}^{4}}double code(double A, double D, double B, double C) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (27.0 * ((double) pow(A, 2.0)))) * ((double) pow(D, 2.0)))) + ((double) (((double) (4.0 * ((double) pow(B, 3.0)))) * D)))) - ((double) (((double) (((double) (((double) (18.0 * A)) * B)) * C)) * D)))) + ((double) (((double) (4.0 * A)) * ((double) pow(C, 3.0)))))) - ((double) (((double) pow(B, 2.0)) * ((double) pow(C, 2.0)))))) / ((double) (108.0 * ((double) pow(A, 4.0))))));
}
double code(double A, double D, double B, double C) {
return ((double) (((double) (((double) (((double) (((double) (((double) (((double) (27.0 * ((double) pow(A, 2.0)))) * ((double) pow(D, 2.0)))) + ((double) (((double) (4.0 * ((double) pow(B, 3.0)))) * D)))) - ((double) (((double) (((double) (((double) (18.0 * A)) * B)) * C)) * D)))) + ((double) (((double) (4.0 * A)) * ((double) pow(C, 3.0)))))) - ((double) (((double) pow(B, 2.0)) * ((double) pow(C, 2.0)))))) / ((double) (108.0 * ((double) pow(A, 4.0))))));
}



Bits error versus A



Bits error versus D



Bits error versus B



Bits error versus C
Results
Initial program 52.0
Final simplification52.0
herbie shell --seed 2020153
(FPCore (A D B C)
:name "(/ (- (+ (- (+ (* (* 27 (pow A 2)) (pow D 2)) (* (* 4 (pow B 3)) D)) (* (* (* (* 18 A) B) C) D)) (* (* 4 A) (pow C 3))) (* (pow B 2) (pow C 2))) (* 108 (pow A 4)))"
:precision binary64
(/ (- (+ (- (+ (* (* 27.0 (pow A 2.0)) (pow D 2.0)) (* (* 4.0 (pow B 3.0)) D)) (* (* (* (* 18.0 A) B) C) D)) (* (* 4.0 A) (pow C 3.0))) (* (pow B 2.0) (pow C 2.0))) (* 108.0 (pow A 4.0))))