\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 - \left(c \cdot a\right) \cdot 4} - b}{2}}{a}double f(double a, double b, double c) {
double r842747 = b;
double r842748 = -r842747;
double r842749 = r842747 * r842747;
double r842750 = 4.0;
double r842751 = /* ERROR: no posit support in C */;
double r842752 = a;
double r842753 = c;
double r842754 = r842752 * r842753;
double r842755 = r842751 * r842754;
double r842756 = r842749 - r842755;
double r842757 = sqrt(r842756);
double r842758 = r842748 + r842757;
double r842759 = 2.0;
double r842760 = /* ERROR: no posit support in C */;
double r842761 = r842760 * r842752;
double r842762 = r842758 / r842761;
return r842762;
}
double f(double a, double b, double c) {
double r842763 = b;
double r842764 = r842763 * r842763;
double r842765 = c;
double r842766 = a;
double r842767 = r842765 * r842766;
double r842768 = 4.0;
double r842769 = r842767 * r842768;
double r842770 = r842764 - r842769;
double r842771 = sqrt(r842770);
double r842772 = r842771 - r842763;
double r842773 = 2.0;
double r842774 = r842772 / r842773;
double r842775 = r842774 / r842766;
return r842775;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.5
Simplified1.5
rmApplied associate-/r*1.5
Final simplification1.5
herbie shell --seed 2019119 +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)))