Average Error: 33.0 → 15.2
Time: 15.8s
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.3229656994274289 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le 2.044680244795305 \cdot 10^{-37}:\\ \;\;\;\;\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.3229656994274289 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\

\mathbf{elif}\;b \le 2.044680244795305 \cdot 10^{-37}:\\
\;\;\;\;\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 r1672467 = b;
        double r1672468 = -r1672467;
        double r1672469 = r1672467 * r1672467;
        double r1672470 = 3.0;
        double r1672471 = a;
        double r1672472 = r1672470 * r1672471;
        double r1672473 = c;
        double r1672474 = r1672472 * r1672473;
        double r1672475 = r1672469 - r1672474;
        double r1672476 = sqrt(r1672475);
        double r1672477 = r1672468 + r1672476;
        double r1672478 = r1672477 / r1672472;
        return r1672478;
}

double f(double a, double b, double c) {
        double r1672479 = b;
        double r1672480 = -1.3229656994274289e+154;
        bool r1672481 = r1672479 <= r1672480;
        double r1672482 = 1.5;
        double r1672483 = a;
        double r1672484 = c;
        double r1672485 = r1672483 * r1672484;
        double r1672486 = r1672485 / r1672479;
        double r1672487 = r1672482 * r1672486;
        double r1672488 = r1672487 - r1672479;
        double r1672489 = r1672488 - r1672479;
        double r1672490 = 3.0;
        double r1672491 = r1672490 * r1672483;
        double r1672492 = r1672489 / r1672491;
        double r1672493 = 2.044680244795305e-37;
        bool r1672494 = r1672479 <= r1672493;
        double r1672495 = r1672479 * r1672479;
        double r1672496 = r1672491 * r1672484;
        double r1672497 = r1672495 - r1672496;
        double r1672498 = sqrt(r1672497);
        double r1672499 = r1672498 - r1672479;
        double r1672500 = r1672499 / r1672491;
        double r1672501 = -1.5;
        double r1672502 = r1672501 * r1672486;
        double r1672503 = r1672502 / r1672491;
        double r1672504 = r1672494 ? r1672500 : r1672503;
        double r1672505 = r1672481 ? r1672492 : r1672504;
        return r1672505;
}

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.3229656994274289e+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 10.5

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

    if -1.3229656994274289e+154 < b < 2.044680244795305e-37

    1. Initial program 13.5

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

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

    if 2.044680244795305e-37 < b

    1. Initial program 53.8

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

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

      \[\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 simplification15.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.3229656994274289 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le 2.044680244795305 \cdot 10^{-37}:\\ \;\;\;\;\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 2019154 
(FPCore (a b c)
  :name "Cubic critical"
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))