\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)}\begin{array}{l}
\mathbf{if}\;b \le -0.1453857421875:\\
\;\;\;\;\frac{\frac{c \cdot \left(a \cdot 4\right)}{2 \cdot a}}{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} - b}\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2}}{a}\\
\end{array}double f(double a, double b, double c) {
double r2034341 = b;
double r2034342 = -r2034341;
double r2034343 = r2034341 * r2034341;
double r2034344 = 4.0;
double r2034345 = /* ERROR: no posit support in C */;
double r2034346 = a;
double r2034347 = c;
double r2034348 = r2034346 * r2034347;
double r2034349 = r2034345 * r2034348;
double r2034350 = r2034343 - r2034349;
double r2034351 = sqrt(r2034350);
double r2034352 = r2034342 - r2034351;
double r2034353 = 2.0;
double r2034354 = /* ERROR: no posit support in C */;
double r2034355 = r2034354 * r2034346;
double r2034356 = r2034352 / r2034355;
return r2034356;
}
double f(double a, double b, double c) {
double r2034357 = b;
double r2034358 = -0.1453857421875;
bool r2034359 = r2034357 <= r2034358;
double r2034360 = c;
double r2034361 = a;
double r2034362 = 4.0;
double r2034363 = r2034361 * r2034362;
double r2034364 = r2034360 * r2034363;
double r2034365 = 2.0;
double r2034366 = r2034365 * r2034361;
double r2034367 = r2034364 / r2034366;
double r2034368 = r2034357 * r2034357;
double r2034369 = r2034368 - r2034364;
double r2034370 = sqrt(r2034369);
double r2034371 = r2034370 - r2034357;
double r2034372 = r2034367 / r2034371;
double r2034373 = -r2034357;
double r2034374 = r2034361 * r2034360;
double r2034375 = r2034362 * r2034374;
double r2034376 = r2034368 - r2034375;
double r2034377 = sqrt(r2034376);
double r2034378 = r2034373 - r2034377;
double r2034379 = r2034378 / r2034365;
double r2034380 = r2034379 / r2034361;
double r2034381 = r2034359 ? r2034372 : r2034380;
return r2034381;
}



Bits error versus a



Bits error versus b



Bits error versus c
if b < -0.1453857421875Initial program 3.1
rmApplied p16-flip--2.7
Simplified0.7
rmApplied associate-/r*0.8
Simplified0.8
Simplified0.8
rmApplied associate-/r*0.6
if -0.1453857421875 < b Initial program 0.5
rmApplied associate-/r*0.5
Final simplification0.5
herbie shell --seed 2019125
(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)))