\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{\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4} - b}{2 \cdot a}double f(double a, double b, double c) {
double r611218 = b;
double r611219 = -r611218;
double r611220 = r611218 * r611218;
double r611221 = 4.0;
double r611222 = /* ERROR: no posit support in C */;
double r611223 = a;
double r611224 = c;
double r611225 = r611223 * r611224;
double r611226 = r611222 * r611225;
double r611227 = r611220 - r611226;
double r611228 = sqrt(r611227);
double r611229 = r611219 + r611228;
double r611230 = 2.0;
double r611231 = /* ERROR: no posit support in C */;
double r611232 = r611231 * r611223;
double r611233 = r611229 / r611232;
return r611233;
}
double f(double a, double b, double c) {
double r611234 = b;
double r611235 = r611234 * r611234;
double r611236 = c;
double r611237 = a;
double r611238 = r611236 * r611237;
double r611239 = 4.0;
double r611240 = r611238 * r611239;
double r611241 = r611235 - r611240;
double r611242 = sqrt(r611241);
double r611243 = r611242 - r611234;
double r611244 = 2.0;
double r611245 = r611244 * r611237;
double r611246 = r611243 / r611245;
return r611246;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.5
Simplified1.5
Final simplification1.5
herbie shell --seed 2019120
(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)))