\frac{\left(\left(-b\right) - \left(\sqrt{\left(\left(b \cdot b\right) - \left(\left(4\right) \cdot \left(a \cdot c\right)\right)\right)}\right)\right)}{\left(\left(2\right) \cdot a\right)}\frac{\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2}}{a}double f(double a, double b, double c) {
double r1800229 = b;
double r1800230 = -r1800229;
double r1800231 = r1800229 * r1800229;
double r1800232 = 4.0;
double r1800233 = /* ERROR: no posit support in C */;
double r1800234 = a;
double r1800235 = c;
double r1800236 = r1800234 * r1800235;
double r1800237 = r1800233 * r1800236;
double r1800238 = r1800231 - r1800237;
double r1800239 = sqrt(r1800238);
double r1800240 = r1800230 - r1800239;
double r1800241 = 2.0;
double r1800242 = /* ERROR: no posit support in C */;
double r1800243 = r1800242 * r1800234;
double r1800244 = r1800240 / r1800243;
return r1800244;
}
double f(double a, double b, double c) {
double r1800245 = b;
double r1800246 = -r1800245;
double r1800247 = r1800245 * r1800245;
double r1800248 = 4.0;
double r1800249 = a;
double r1800250 = c;
double r1800251 = r1800249 * r1800250;
double r1800252 = r1800248 * r1800251;
double r1800253 = r1800247 - r1800252;
double r1800254 = sqrt(r1800253);
double r1800255 = r1800246 - r1800254;
double r1800256 = 2.0;
double r1800257 = r1800255 / r1800256;
double r1800258 = r1800257 / r1800249;
return r1800258;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.5
rmApplied associate-/r*1.5
Final simplification1.5
herbie shell --seed 2019134
(FPCore (a b c)
:name "quadm (p42, negative)"
(/.p16 (-.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 (real->posit16 4) (*.p16 a c))))) (*.p16 (real->posit16 2) a)))