\frac{\left(\frac{\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{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} - b}{2}}{a}double f(double a, double b, double c) {
double r1741495 = b;
double r1741496 = -r1741495;
double r1741497 = r1741495 * r1741495;
double r1741498 = 4.0;
double r1741499 = /* ERROR: no posit support in C */;
double r1741500 = a;
double r1741501 = c;
double r1741502 = r1741500 * r1741501;
double r1741503 = r1741499 * r1741502;
double r1741504 = r1741497 - r1741503;
double r1741505 = sqrt(r1741504);
double r1741506 = r1741496 + r1741505;
double r1741507 = 2.0;
double r1741508 = /* ERROR: no posit support in C */;
double r1741509 = r1741508 * r1741500;
double r1741510 = r1741506 / r1741509;
return r1741510;
}
double f(double a, double b, double c) {
double r1741511 = b;
double r1741512 = r1741511 * r1741511;
double r1741513 = c;
double r1741514 = a;
double r1741515 = 4.0;
double r1741516 = r1741514 * r1741515;
double r1741517 = r1741513 * r1741516;
double r1741518 = r1741512 - r1741517;
double r1741519 = sqrt(r1741518);
double r1741520 = r1741519 - r1741511;
double r1741521 = 2.0;
double r1741522 = r1741520 / r1741521;
double r1741523 = r1741522 / r1741514;
return r1741523;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.6
Simplified1.6
rmApplied associate-/r*1.6
rmApplied associate-*l*1.6
Final simplification1.6
herbie shell --seed 2019135 +o rules:numerics
(FPCore (a b c)
:name "quadp (p42, positive)"
(/.p16 (+.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 (real->posit16 4) (*.p16 a c))))) (*.p16 (real->posit16 2) a)))