\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 r871050 = b;
double r871051 = -r871050;
double r871052 = r871050 * r871050;
double r871053 = 4.0;
double r871054 = /* ERROR: no posit support in C */;
double r871055 = a;
double r871056 = c;
double r871057 = r871055 * r871056;
double r871058 = r871054 * r871057;
double r871059 = r871052 - r871058;
double r871060 = sqrt(r871059);
double r871061 = r871051 - r871060;
double r871062 = 2.0;
double r871063 = /* ERROR: no posit support in C */;
double r871064 = r871063 * r871055;
double r871065 = r871061 / r871064;
return r871065;
}
double f(double a, double b, double c) {
double r871066 = b;
double r871067 = -r871066;
double r871068 = r871066 * r871066;
double r871069 = 4.0;
double r871070 = a;
double r871071 = c;
double r871072 = r871070 * r871071;
double r871073 = r871069 * r871072;
double r871074 = r871068 - r871073;
double r871075 = sqrt(r871074);
double r871076 = r871067 - r871075;
double r871077 = 2.0;
double r871078 = r871076 / r871077;
double r871079 = r871078 / r871070;
return r871079;
}



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 2019120
(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)))