\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\frac{\frac{\frac{4 \cdot \left(a \cdot c\right)}{2}}{a}}{\left(-b\right) - \frac{\sqrt{\left(b \cdot b\right) \cdot \left(b \cdot b\right) - \left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right)}}{\sqrt{b \cdot b + \left(4 \cdot a\right) \cdot c}}}double f(double a, double b, double c) {
double r32087 = b;
double r32088 = -r32087;
double r32089 = r32087 * r32087;
double r32090 = 4.0;
double r32091 = a;
double r32092 = r32090 * r32091;
double r32093 = c;
double r32094 = r32092 * r32093;
double r32095 = r32089 - r32094;
double r32096 = sqrt(r32095);
double r32097 = r32088 + r32096;
double r32098 = 2.0;
double r32099 = r32098 * r32091;
double r32100 = r32097 / r32099;
return r32100;
}
double f(double a, double b, double c) {
double r32101 = 4.0;
double r32102 = a;
double r32103 = c;
double r32104 = r32102 * r32103;
double r32105 = r32101 * r32104;
double r32106 = 2.0;
double r32107 = r32105 / r32106;
double r32108 = r32107 / r32102;
double r32109 = b;
double r32110 = -r32109;
double r32111 = r32109 * r32109;
double r32112 = r32111 * r32111;
double r32113 = r32101 * r32102;
double r32114 = r32113 * r32103;
double r32115 = r32114 * r32114;
double r32116 = r32112 - r32115;
double r32117 = sqrt(r32116);
double r32118 = r32111 + r32114;
double r32119 = sqrt(r32118);
double r32120 = r32117 / r32119;
double r32121 = r32110 - r32120;
double r32122 = r32108 / r32121;
return r32122;
}



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 28.2
rmApplied flip-+28.2
Simplified0.5
rmApplied div-inv0.5
Applied associate-/l*0.5
Simplified0.4
rmApplied associate-/r*0.3
Simplified0.3
rmApplied flip--0.3
Applied sqrt-div0.4
Final simplification0.4
herbie shell --seed 2020060
(FPCore (a b c)
:name "Quadratic roots, narrow range"
:precision binary64
: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 a) c)))) (* 2 a)))