Average Error: 33.0 → 14.9
Time: 13.9s
Precision: 64
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;b \le -1.3441037991607355 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le 6.399558563329366 \cdot 10^{-17}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\ \end{array}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\begin{array}{l}
\mathbf{if}\;b \le -1.3441037991607355 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\

\mathbf{elif}\;b \le 6.399558563329366 \cdot 10^{-17}:\\
\;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\

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

\end{array}
double f(double a, double b, double c) {
        double r1997404 = b;
        double r1997405 = -r1997404;
        double r1997406 = r1997404 * r1997404;
        double r1997407 = 3.0;
        double r1997408 = a;
        double r1997409 = r1997407 * r1997408;
        double r1997410 = c;
        double r1997411 = r1997409 * r1997410;
        double r1997412 = r1997406 - r1997411;
        double r1997413 = sqrt(r1997412);
        double r1997414 = r1997405 + r1997413;
        double r1997415 = r1997414 / r1997409;
        return r1997415;
}

double f(double a, double b, double c) {
        double r1997416 = b;
        double r1997417 = -1.3441037991607355e+154;
        bool r1997418 = r1997416 <= r1997417;
        double r1997419 = 1.5;
        double r1997420 = a;
        double r1997421 = c;
        double r1997422 = r1997420 * r1997421;
        double r1997423 = r1997422 / r1997416;
        double r1997424 = r1997419 * r1997423;
        double r1997425 = r1997424 - r1997416;
        double r1997426 = r1997425 - r1997416;
        double r1997427 = 3.0;
        double r1997428 = r1997427 * r1997420;
        double r1997429 = r1997426 / r1997428;
        double r1997430 = 6.399558563329366e-17;
        bool r1997431 = r1997416 <= r1997430;
        double r1997432 = r1997416 * r1997416;
        double r1997433 = r1997428 * r1997421;
        double r1997434 = r1997432 - r1997433;
        double r1997435 = sqrt(r1997434);
        double r1997436 = r1997435 - r1997416;
        double r1997437 = r1997436 / r1997428;
        double r1997438 = -1.5;
        double r1997439 = r1997438 * r1997423;
        double r1997440 = r1997439 / r1997428;
        double r1997441 = r1997431 ? r1997437 : r1997440;
        double r1997442 = r1997418 ? r1997429 : r1997441;
        return r1997442;
}

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 < -1.3441037991607355e+154

    1. Initial program 60.9

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified60.9

      \[\leadsto \color{blue}{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}}\]
    3. Taylor expanded around -inf 9.1

      \[\leadsto \frac{\color{blue}{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right)} - b}{3 \cdot a}\]

    if -1.3441037991607355e+154 < b < 6.399558563329366e-17

    1. Initial program 14.6

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified14.6

      \[\leadsto \color{blue}{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}}\]

    if 6.399558563329366e-17 < b

    1. Initial program 54.0

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified54.0

      \[\leadsto \color{blue}{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}}\]
    3. Taylor expanded around inf 17.2

      \[\leadsto \frac{\color{blue}{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}}{3 \cdot a}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification14.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.3441037991607355 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le 6.399558563329366 \cdot 10^{-17}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019153 
(FPCore (a b c)
  :name "Cubic critical"
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))