Average Error: 20.1 → 7.3
Time: 18.2s
Precision: 64
\[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
\[\begin{array}{l} \mathbf{if}\;b \le -2.185192396950695672251895649876633904734 \cdot 10^{101}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\ \end{array}\\ \mathbf{elif}\;b \le -3.200573489739562245809246032581319999588 \cdot 10^{-310}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}{\frac{2}{\frac{\sqrt[3]{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{a}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\\ \mathbf{elif}\;b \le 87537227540251800037021545535125898395650:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\ \end{array}\]
\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\

\end{array}
\begin{array}{l}
\mathbf{if}\;b \le -2.185192396950695672251895649876633904734 \cdot 10^{101}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\

\end{array}\\

\mathbf{elif}\;b \le -3.200573489739562245809246032581319999588 \cdot 10^{-310}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}{\frac{2}{\frac{\sqrt[3]{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{a}}}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\

\end{array}\\

\mathbf{elif}\;b \le 87537227540251800037021545535125898395650:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\

\end{array}\\

\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\

\end{array}
double f(double a, double b, double c) {
        double r35373 = b;
        double r35374 = 0.0;
        bool r35375 = r35373 >= r35374;
        double r35376 = -r35373;
        double r35377 = r35373 * r35373;
        double r35378 = 4.0;
        double r35379 = a;
        double r35380 = r35378 * r35379;
        double r35381 = c;
        double r35382 = r35380 * r35381;
        double r35383 = r35377 - r35382;
        double r35384 = sqrt(r35383);
        double r35385 = r35376 - r35384;
        double r35386 = 2.0;
        double r35387 = r35386 * r35379;
        double r35388 = r35385 / r35387;
        double r35389 = r35386 * r35381;
        double r35390 = r35376 + r35384;
        double r35391 = r35389 / r35390;
        double r35392 = r35375 ? r35388 : r35391;
        return r35392;
}

double f(double a, double b, double c) {
        double r35393 = b;
        double r35394 = -2.1851923969506957e+101;
        bool r35395 = r35393 <= r35394;
        double r35396 = 0.0;
        bool r35397 = r35393 >= r35396;
        double r35398 = -r35393;
        double r35399 = 2.0;
        double r35400 = a;
        double r35401 = c;
        double r35402 = r35393 / r35401;
        double r35403 = r35400 / r35402;
        double r35404 = r35399 * r35403;
        double r35405 = r35393 - r35404;
        double r35406 = r35398 - r35405;
        double r35407 = r35399 * r35400;
        double r35408 = r35406 / r35407;
        double r35409 = r35399 * r35401;
        double r35410 = r35404 - r35393;
        double r35411 = r35410 - r35393;
        double r35412 = r35409 / r35411;
        double r35413 = r35397 ? r35408 : r35412;
        double r35414 = -3.20057348973956e-310;
        bool r35415 = r35393 <= r35414;
        double r35416 = cbrt(r35406);
        double r35417 = r35416 * r35416;
        double r35418 = r35400 * r35401;
        double r35419 = r35418 / r35393;
        double r35420 = r35399 * r35419;
        double r35421 = 2.0;
        double r35422 = r35421 * r35393;
        double r35423 = r35420 - r35422;
        double r35424 = cbrt(r35423);
        double r35425 = r35424 / r35400;
        double r35426 = r35399 / r35425;
        double r35427 = r35417 / r35426;
        double r35428 = r35393 * r35393;
        double r35429 = 4.0;
        double r35430 = r35429 * r35400;
        double r35431 = r35430 * r35401;
        double r35432 = r35428 - r35431;
        double r35433 = sqrt(r35432);
        double r35434 = r35433 - r35393;
        double r35435 = r35409 / r35434;
        double r35436 = r35397 ? r35427 : r35435;
        double r35437 = 8.75372275402518e+40;
        bool r35438 = r35393 <= r35437;
        double r35439 = r35398 - r35433;
        double r35440 = r35439 / r35407;
        double r35441 = r35409 / r35423;
        double r35442 = r35397 ? r35440 : r35441;
        double r35443 = r35438 ? r35442 : r35413;
        double r35444 = r35415 ? r35436 : r35443;
        double r35445 = r35395 ? r35413 : r35444;
        return r35445;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 3 regimes
  2. if b < -2.1851923969506957e+101 or 8.75372275402518e+40 < b

    1. Initial program 33.5

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Simplified33.5

      \[\leadsto \color{blue}{\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}}\]
    3. Taylor expanded around inf 21.4

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \color{blue}{\left(b - 2 \cdot \frac{a \cdot c}{b}\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    4. Using strategy rm
    5. Applied associate-/l*19.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \color{blue}{\frac{a}{\frac{b}{c}}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    6. Taylor expanded around -inf 6.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\color{blue}{2 \cdot c}}{\left(2 \cdot \frac{a \cdot c}{b} - b\right) - b}\\ \end{array}\]
    7. Simplified4.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\color{blue}{2 \cdot c}}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\ \end{array}\]

    if -2.1851923969506957e+101 < b < -3.20057348973956e-310

    1. Initial program 9.3

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Simplified9.3

      \[\leadsto \color{blue}{\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}}\]
    3. Taylor expanded around inf 9.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \color{blue}{\left(b - 2 \cdot \frac{a \cdot c}{b}\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    4. Using strategy rm
    5. Applied associate-/l*9.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \color{blue}{\frac{a}{\frac{b}{c}}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt9.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\color{blue}{\left(\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}\right) \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    8. Applied associate-/l*9.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\color{blue}{\frac{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}{\frac{2 \cdot a}{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]
    9. Simplified9.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}{\color{blue}{\frac{2}{\frac{\sqrt[3]{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{a}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\]

    if -3.20057348973956e-310 < b < 8.75372275402518e+40

    1. Initial program 9.9

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Simplified9.9

      \[\leadsto \color{blue}{\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}}\]
    3. Taylor expanded around -inf 9.9

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\color{blue}{\frac{2 \cdot c}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}\\ \end{array}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification7.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -2.185192396950695672251895649876633904734 \cdot 10^{101}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\ \end{array}\\ \mathbf{elif}\;b \le -3.200573489739562245809246032581319999588 \cdot 10^{-310}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)} \cdot \sqrt[3]{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}}{\frac{2}{\frac{\sqrt[3]{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{a}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} - b}\\ \end{array}\\ \mathbf{elif}\;b \le 87537227540251800037021545535125898395650:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a}{\frac{b}{c}}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(2 \cdot \frac{a}{\frac{b}{c}} - b\right) - b}\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 
(FPCore (a b c)
  :name "jeff quadratic root 1"
  :precision binary64
  (if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))