\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\begin{array}{l}
\mathbf{if}\;b \le 835.2343651472419878700748085975646972656:\\
\;\;\;\;\frac{\frac{\frac{\left(b \cdot b - 4 \cdot \left(c \cdot a\right)\right) - b \cdot b}{b + \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}}{2}}{a}\\
\mathbf{else}:\\
\;\;\;\;\frac{-2}{\sqrt{a}} \cdot \frac{\frac{\frac{c \cdot a}{b}}{2}}{\sqrt{a}}\\
\end{array}double f(double a, double b, double c) {
double r2317376 = b;
double r2317377 = -r2317376;
double r2317378 = r2317376 * r2317376;
double r2317379 = 4.0;
double r2317380 = a;
double r2317381 = r2317379 * r2317380;
double r2317382 = c;
double r2317383 = r2317381 * r2317382;
double r2317384 = r2317378 - r2317383;
double r2317385 = sqrt(r2317384);
double r2317386 = r2317377 + r2317385;
double r2317387 = 2.0;
double r2317388 = r2317387 * r2317380;
double r2317389 = r2317386 / r2317388;
return r2317389;
}
double f(double a, double b, double c) {
double r2317390 = b;
double r2317391 = 835.234365147242;
bool r2317392 = r2317390 <= r2317391;
double r2317393 = r2317390 * r2317390;
double r2317394 = 4.0;
double r2317395 = c;
double r2317396 = a;
double r2317397 = r2317395 * r2317396;
double r2317398 = r2317394 * r2317397;
double r2317399 = r2317393 - r2317398;
double r2317400 = r2317399 - r2317393;
double r2317401 = sqrt(r2317399);
double r2317402 = r2317390 + r2317401;
double r2317403 = r2317400 / r2317402;
double r2317404 = 2.0;
double r2317405 = r2317403 / r2317404;
double r2317406 = r2317405 / r2317396;
double r2317407 = -2.0;
double r2317408 = sqrt(r2317396);
double r2317409 = r2317407 / r2317408;
double r2317410 = r2317397 / r2317390;
double r2317411 = r2317410 / r2317404;
double r2317412 = r2317411 / r2317408;
double r2317413 = r2317409 * r2317412;
double r2317414 = r2317392 ? r2317406 : r2317413;
return r2317414;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
if b < 835.234365147242Initial program 16.7
Simplified16.7
rmApplied flip--16.7
Simplified15.7
if 835.234365147242 < b Initial program 36.1
Simplified36.1
Taylor expanded around inf 16.5
rmApplied add-sqr-sqrt16.6
Applied *-un-lft-identity16.6
Applied times-frac16.6
Applied times-frac16.6
Simplified16.6
Final simplification16.2
herbie shell --seed 2019171
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
(/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))