Average Error: 33.0 → 14.9
Time: 17.2s
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 r2128308 = b;
        double r2128309 = -r2128308;
        double r2128310 = r2128308 * r2128308;
        double r2128311 = 3.0;
        double r2128312 = a;
        double r2128313 = r2128311 * r2128312;
        double r2128314 = c;
        double r2128315 = r2128313 * r2128314;
        double r2128316 = r2128310 - r2128315;
        double r2128317 = sqrt(r2128316);
        double r2128318 = r2128309 + r2128317;
        double r2128319 = r2128318 / r2128313;
        return r2128319;
}

double f(double a, double b, double c) {
        double r2128320 = b;
        double r2128321 = -1.3441037991607355e+154;
        bool r2128322 = r2128320 <= r2128321;
        double r2128323 = 1.5;
        double r2128324 = a;
        double r2128325 = c;
        double r2128326 = r2128324 * r2128325;
        double r2128327 = r2128326 / r2128320;
        double r2128328 = r2128323 * r2128327;
        double r2128329 = r2128328 - r2128320;
        double r2128330 = r2128329 - r2128320;
        double r2128331 = 3.0;
        double r2128332 = r2128331 * r2128324;
        double r2128333 = r2128330 / r2128332;
        double r2128334 = 6.399558563329366e-17;
        bool r2128335 = r2128320 <= r2128334;
        double r2128336 = r2128320 * r2128320;
        double r2128337 = r2128332 * r2128325;
        double r2128338 = r2128336 - r2128337;
        double r2128339 = sqrt(r2128338);
        double r2128340 = r2128339 - r2128320;
        double r2128341 = r2128340 / r2128332;
        double r2128342 = -1.5;
        double r2128343 = r2128342 * r2128327;
        double r2128344 = r2128343 / r2128332;
        double r2128345 = r2128335 ? r2128341 : r2128344;
        double r2128346 = r2128322 ? r2128333 : r2128345;
        return r2128346;
}

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)))