\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 r1750342 = b;
double r1750343 = -r1750342;
double r1750344 = r1750342 * r1750342;
double r1750345 = 4.0;
double r1750346 = /* ERROR: no posit support in C */;
double r1750347 = a;
double r1750348 = c;
double r1750349 = r1750347 * r1750348;
double r1750350 = r1750346 * r1750349;
double r1750351 = r1750344 - r1750350;
double r1750352 = sqrt(r1750351);
double r1750353 = r1750343 - r1750352;
double r1750354 = 2.0;
double r1750355 = /* ERROR: no posit support in C */;
double r1750356 = r1750355 * r1750347;
double r1750357 = r1750353 / r1750356;
return r1750357;
}
double f(double a, double b, double c) {
double r1750358 = b;
double r1750359 = -r1750358;
double r1750360 = r1750358 * r1750358;
double r1750361 = 4.0;
double r1750362 = a;
double r1750363 = c;
double r1750364 = r1750362 * r1750363;
double r1750365 = r1750361 * r1750364;
double r1750366 = r1750360 - r1750365;
double r1750367 = sqrt(r1750366);
double r1750368 = r1750359 - r1750367;
double r1750369 = 2.0;
double r1750370 = r1750368 / r1750369;
double r1750371 = r1750370 / r1750362;
return r1750371;
}



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 +o rules:numerics
(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)))