\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\begin{array}{l}
\mathbf{if}\;b_2 \le -3.56950087216670373365855698069146367898 \cdot 10^{75}:\\
\;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\
\mathbf{elif}\;b_2 \le 5.436810835085153174524099158561263332006 \cdot 10^{-239}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{\mathsf{fma}\left(a, -c, b_2 \cdot b_2\right)} - b_2}}\\
\mathbf{elif}\;b_2 \le 2.284582175117603073728646217665858890425 \cdot 10^{94}:\\
\;\;\;\;\frac{\frac{1}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}} \cdot \left(\frac{a}{\sqrt[3]{a}} \cdot \frac{c}{-\sqrt{\sqrt{\mathsf{fma}\left(a, -c, {b_2}^{2}\right)} + b_2}}\right)\\
\mathbf{else}:\\
\;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\
\end{array}double f(double a, double b_2, double c) {
double r30192 = b_2;
double r30193 = -r30192;
double r30194 = r30192 * r30192;
double r30195 = a;
double r30196 = c;
double r30197 = r30195 * r30196;
double r30198 = r30194 - r30197;
double r30199 = sqrt(r30198);
double r30200 = r30193 + r30199;
double r30201 = r30200 / r30195;
return r30201;
}
double f(double a, double b_2, double c) {
double r30202 = b_2;
double r30203 = -3.5695008721667037e+75;
bool r30204 = r30202 <= r30203;
double r30205 = c;
double r30206 = r30205 / r30202;
double r30207 = 0.5;
double r30208 = a;
double r30209 = r30202 / r30208;
double r30210 = -2.0;
double r30211 = r30209 * r30210;
double r30212 = fma(r30206, r30207, r30211);
double r30213 = 5.436810835085153e-239;
bool r30214 = r30202 <= r30213;
double r30215 = 1.0;
double r30216 = -r30205;
double r30217 = r30202 * r30202;
double r30218 = fma(r30208, r30216, r30217);
double r30219 = sqrt(r30218);
double r30220 = r30219 - r30202;
double r30221 = r30208 / r30220;
double r30222 = r30215 / r30221;
double r30223 = 2.284582175117603e+94;
bool r30224 = r30202 <= r30223;
double r30225 = cbrt(r30208);
double r30226 = r30225 * r30225;
double r30227 = r30215 / r30226;
double r30228 = 2.0;
double r30229 = pow(r30202, r30228);
double r30230 = fma(r30208, r30216, r30229);
double r30231 = sqrt(r30230);
double r30232 = r30231 + r30202;
double r30233 = sqrt(r30232);
double r30234 = r30227 / r30233;
double r30235 = r30208 / r30225;
double r30236 = -r30233;
double r30237 = r30205 / r30236;
double r30238 = r30235 * r30237;
double r30239 = r30234 * r30238;
double r30240 = -0.5;
double r30241 = r30240 * r30205;
double r30242 = r30241 / r30202;
double r30243 = r30224 ? r30239 : r30242;
double r30244 = r30214 ? r30222 : r30243;
double r30245 = r30204 ? r30212 : r30244;
return r30245;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
if b_2 < -3.5695008721667037e+75Initial program 42.0
Taylor expanded around -inf 4.0
Simplified4.0
if -3.5695008721667037e+75 < b_2 < 5.436810835085153e-239Initial program 10.7
rmApplied clear-num10.8
Simplified10.8
if 5.436810835085153e-239 < b_2 < 2.284582175117603e+94Initial program 33.8
rmApplied flip-+33.9
Simplified16.4
Simplified16.4
rmApplied add-cube-cbrt17.1
Applied add-sqr-sqrt17.1
Applied distribute-rgt-neg-in17.1
Applied *-un-lft-identity17.1
Applied times-frac17.1
Applied times-frac16.7
Simplified16.7
Simplified12.3
if 2.284582175117603e+94 < b_2 Initial program 59.4
Taylor expanded around inf 2.6
Simplified2.6
Final simplification8.1
herbie shell --seed 2019195 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))