\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{1.0}{2} \cdot \frac{\left(-b\right) - \sqrt{\left(\mathsf{qms}\left(\left(\left(b \cdot b\right)\right), \left(4 \cdot a\right), c\right)\right)}}{a}double f(double a, double b, double c) {
double r1129401 = b;
double r1129402 = -r1129401;
double r1129403 = r1129401 * r1129401;
double r1129404 = 4.0;
double r1129405 = /* ERROR: no posit support in C */;
double r1129406 = a;
double r1129407 = c;
double r1129408 = r1129406 * r1129407;
double r1129409 = r1129405 * r1129408;
double r1129410 = r1129403 - r1129409;
double r1129411 = sqrt(r1129410);
double r1129412 = r1129402 - r1129411;
double r1129413 = 2.0;
double r1129414 = /* ERROR: no posit support in C */;
double r1129415 = r1129414 * r1129406;
double r1129416 = r1129412 / r1129415;
return r1129416;
}
double f(double a, double b, double c) {
double r1129417 = 1.0;
double r1129418 = 2.0;
double r1129419 = r1129417 / r1129418;
double r1129420 = b;
double r1129421 = -r1129420;
double r1129422 = r1129420 * r1129420;
double r1129423 = /*Error: no posit support in C */;
double r1129424 = 4.0;
double r1129425 = a;
double r1129426 = r1129424 * r1129425;
double r1129427 = c;
double r1129428 = /*Error: no posit support in C */;
double r1129429 = /*Error: no posit support in C */;
double r1129430 = sqrt(r1129429);
double r1129431 = r1129421 - r1129430;
double r1129432 = r1129431 / r1129425;
double r1129433 = r1129419 * r1129432;
return r1129433;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.5
rmApplied associate-*r*1.5
rmApplied introduce-quire1.5
Applied insert-quire-fdp-sub1.5
rmApplied p16-*-un-lft-identity1.5
Applied p16-*-un-lft-identity1.5
Applied distribute-lft-out--1.5
Applied p16-times-frac1.5
Final simplification1.5
herbie shell --seed 2019162
(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)))