\frac{\left({C}^{2} \cdot {f}^{2} - \left(\left(\left(2 \cdot C\right) \cdot F\right) \cdot c\right) \cdot f\right) + {F}^{2} \cdot {c}^{2}}{\left(\left({A}^{2} \cdot {c}^{2} - \left(\left(2 \cdot A\right) \cdot C\right) \cdot c\right) + {B}^{2} \cdot c\right) + {C}^{2}}\frac{\left({C}^{2} \cdot {f}^{2} - \left(\left(\left(2 \cdot C\right) \cdot F\right) \cdot c\right) \cdot f\right) + {F}^{2} \cdot {c}^{2}}{\left(\left({A}^{2} \cdot {c}^{2} - \left(\left(2 \cdot A\right) \cdot C\right) \cdot c\right) + {B}^{2} \cdot c\right) + {C}^{2}}double code(double C, double f, double F, double c, double A, double B) {
return ((double) (((double) (((double) (((double) (((double) pow(C, 2.0)) * ((double) pow(f, 2.0)))) - ((double) (((double) (((double) (((double) (2.0 * C)) * F)) * c)) * f)))) + ((double) (((double) pow(F, 2.0)) * ((double) pow(c, 2.0)))))) / ((double) (((double) (((double) (((double) (((double) pow(A, 2.0)) * ((double) pow(c, 2.0)))) - ((double) (((double) (((double) (2.0 * A)) * C)) * c)))) + ((double) (((double) pow(B, 2.0)) * c)))) + ((double) pow(C, 2.0))))));
}
double code(double C, double f, double F, double c, double A, double B) {
return ((double) (((double) (((double) (((double) (((double) pow(C, 2.0)) * ((double) pow(f, 2.0)))) - ((double) (((double) (((double) (((double) (2.0 * C)) * F)) * c)) * f)))) + ((double) (((double) pow(F, 2.0)) * ((double) pow(c, 2.0)))))) / ((double) (((double) (((double) (((double) (((double) pow(A, 2.0)) * ((double) pow(c, 2.0)))) - ((double) (((double) (((double) (2.0 * A)) * C)) * c)))) + ((double) (((double) pow(B, 2.0)) * c)))) + ((double) pow(C, 2.0))))));
}



Bits error versus C



Bits error versus f



Bits error versus F



Bits error versus c



Bits error versus A



Bits error versus B
Results
Initial program 49.3
Final simplification49.3
herbie shell --seed 2020153
(FPCore (C f F c A B)
:name "(/ (+ (- (* (pow C 2) (pow f 2)) (* (* (* (* 2 C) F) c) f)) (* (pow F 2) (pow c 2))) (+ (+ (- (* (pow A 2) (pow c 2)) (* (* (* 2 A) C) c)) (* (pow B 2) c)) (pow C 2)))"
:precision binary64
(/ (+ (- (* (pow C 2.0) (pow f 2.0)) (* (* (* (* 2.0 C) F) c) f)) (* (pow F 2.0) (pow c 2.0))) (+ (+ (- (* (pow A 2.0) (pow c 2.0)) (* (* (* 2.0 A) C) c)) (* (pow B 2.0) c)) (pow C 2.0))))