Average Error: 33.6 → 10.5
Time: 17.6s
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 -2.874603183983119 \cdot 10^{+152}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b} - \frac{b}{a} \cdot \frac{2}{3}\\ \mathbf{elif}\;b \le 1.9030999523937384 \cdot 10^{-67}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b}\\ \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 -2.874603183983119 \cdot 10^{+152}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b} - \frac{b}{a} \cdot \frac{2}{3}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r6104458 = b;
        double r6104459 = -r6104458;
        double r6104460 = r6104458 * r6104458;
        double r6104461 = 3.0;
        double r6104462 = a;
        double r6104463 = r6104461 * r6104462;
        double r6104464 = c;
        double r6104465 = r6104463 * r6104464;
        double r6104466 = r6104460 - r6104465;
        double r6104467 = sqrt(r6104466);
        double r6104468 = r6104459 + r6104467;
        double r6104469 = r6104468 / r6104463;
        return r6104469;
}

double f(double a, double b, double c) {
        double r6104470 = b;
        double r6104471 = -2.874603183983119e+152;
        bool r6104472 = r6104470 <= r6104471;
        double r6104473 = 0.5;
        double r6104474 = c;
        double r6104475 = r6104474 / r6104470;
        double r6104476 = r6104473 * r6104475;
        double r6104477 = a;
        double r6104478 = r6104470 / r6104477;
        double r6104479 = 0.6666666666666666;
        double r6104480 = r6104478 * r6104479;
        double r6104481 = r6104476 - r6104480;
        double r6104482 = 1.9030999523937384e-67;
        bool r6104483 = r6104470 <= r6104482;
        double r6104484 = r6104470 * r6104470;
        double r6104485 = 3.0;
        double r6104486 = r6104485 * r6104477;
        double r6104487 = r6104486 * r6104474;
        double r6104488 = r6104484 - r6104487;
        double r6104489 = sqrt(r6104488);
        double r6104490 = r6104489 - r6104470;
        double r6104491 = r6104490 / r6104485;
        double r6104492 = r6104491 / r6104477;
        double r6104493 = -0.5;
        double r6104494 = r6104493 * r6104475;
        double r6104495 = r6104483 ? r6104492 : r6104494;
        double r6104496 = r6104472 ? r6104481 : r6104495;
        return r6104496;
}

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.874603183983119e+152

    1. Initial program 60.4

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

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

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b} - \frac{2}{3} \cdot \frac{b}{a}}\]

    if -2.874603183983119e+152 < b < 1.9030999523937384e-67

    1. Initial program 13.3

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

      \[\leadsto \color{blue}{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}}\]
    3. Using strategy rm
    4. Applied associate-/r*13.3

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

    if 1.9030999523937384e-67 < b

    1. Initial program 52.0

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Simplified52.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 9.3

      \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification10.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -2.874603183983119 \cdot 10^{+152}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b} - \frac{b}{a} \cdot \frac{2}{3}\\ \mathbf{elif}\;b \le 1.9030999523937384 \cdot 10^{-67}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b}\\ \end{array}\]

Reproduce

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