Average Error: 34.3 → 7.8
Time: 16.7s
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.043841200868094369004988674215167877153 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \frac{c}{b} - 0.6666666666666666296592325124947819858789 \cdot \frac{b}{a}\\ \mathbf{elif}\;b \le 4.62812776285933976007871171352100695172 \cdot 10^{-217}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.223338752466640343589574731486746446224 \cdot 10^{97}:\\ \;\;\;\;1 \cdot \left(\frac{\frac{a}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\sqrt[3]{a}}\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \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 -1.043841200868094369004988674215167877153 \cdot 10^{150}:\\
\;\;\;\;0.5 \cdot \frac{c}{b} - 0.6666666666666666296592325124947819858789 \cdot \frac{b}{a}\\

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

\mathbf{elif}\;b \le 1.223338752466640343589574731486746446224 \cdot 10^{97}:\\
\;\;\;\;1 \cdot \left(\frac{\frac{a}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\sqrt[3]{a}}\right)\\

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

\end{array}
double f(double a, double b, double c) {
        double r115498 = b;
        double r115499 = -r115498;
        double r115500 = r115498 * r115498;
        double r115501 = 3.0;
        double r115502 = a;
        double r115503 = r115501 * r115502;
        double r115504 = c;
        double r115505 = r115503 * r115504;
        double r115506 = r115500 - r115505;
        double r115507 = sqrt(r115506);
        double r115508 = r115499 + r115507;
        double r115509 = r115508 / r115503;
        return r115509;
}

double f(double a, double b, double c) {
        double r115510 = b;
        double r115511 = -1.0438412008680944e+150;
        bool r115512 = r115510 <= r115511;
        double r115513 = 0.5;
        double r115514 = c;
        double r115515 = r115514 / r115510;
        double r115516 = r115513 * r115515;
        double r115517 = 0.6666666666666666;
        double r115518 = a;
        double r115519 = r115510 / r115518;
        double r115520 = r115517 * r115519;
        double r115521 = r115516 - r115520;
        double r115522 = 4.62812776285934e-217;
        bool r115523 = r115510 <= r115522;
        double r115524 = -r115510;
        double r115525 = r115510 * r115510;
        double r115526 = 3.0;
        double r115527 = r115526 * r115518;
        double r115528 = r115527 * r115514;
        double r115529 = r115525 - r115528;
        double r115530 = sqrt(r115529);
        double r115531 = r115524 + r115530;
        double r115532 = r115531 / r115527;
        double r115533 = 1.2233387524666403e+97;
        bool r115534 = r115510 <= r115533;
        double r115535 = 1.0;
        double r115536 = cbrt(r115518);
        double r115537 = r115518 / r115536;
        double r115538 = r115537 / r115536;
        double r115539 = r115524 - r115530;
        double r115540 = r115514 / r115539;
        double r115541 = r115540 / r115536;
        double r115542 = r115538 * r115541;
        double r115543 = r115535 * r115542;
        double r115544 = -0.5;
        double r115545 = r115544 * r115515;
        double r115546 = r115534 ? r115543 : r115545;
        double r115547 = r115523 ? r115532 : r115546;
        double r115548 = r115512 ? r115521 : r115547;
        return r115548;
}

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 4 regimes
  2. if b < -1.0438412008680944e+150

    1. Initial program 62.0

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Taylor expanded around -inf 2.6

      \[\leadsto \color{blue}{0.5 \cdot \frac{c}{b} - 0.6666666666666666296592325124947819858789 \cdot \frac{b}{a}}\]

    if -1.0438412008680944e+150 < b < 4.62812776285934e-217

    1. Initial program 9.3

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

    if 4.62812776285934e-217 < b < 1.2233387524666403e+97

    1. Initial program 35.9

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Using strategy rm
    3. Applied flip-+35.9

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

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

      \[\leadsto \color{blue}{\frac{\frac{\frac{0 + 3 \cdot \left(a \cdot c\right)}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3}}{a}}\]
    7. Simplified17.2

      \[\leadsto \frac{\color{blue}{\frac{3 \cdot \left(a \cdot c\right)}{3 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{a}\]
    8. Using strategy rm
    9. Applied *-un-lft-identity17.2

      \[\leadsto \frac{\frac{3 \cdot \left(a \cdot c\right)}{3 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}{\color{blue}{1 \cdot a}}\]
    10. Applied times-frac17.1

      \[\leadsto \frac{\color{blue}{\frac{3}{3} \cdot \frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{1 \cdot a}\]
    11. Applied times-frac17.1

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

      \[\leadsto \color{blue}{1} \cdot \frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{a}\]
    13. Using strategy rm
    14. Applied add-cube-cbrt17.8

      \[\leadsto 1 \cdot \frac{\frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
    15. Applied *-un-lft-identity17.8

      \[\leadsto 1 \cdot \frac{\frac{a \cdot c}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    16. Applied times-frac14.9

      \[\leadsto 1 \cdot \frac{\color{blue}{\frac{a}{1} \cdot \frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    17. Applied times-frac12.7

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

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

    if 1.2233387524666403e+97 < b

    1. Initial program 59.1

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
    2. Taylor expanded around inf 2.6

      \[\leadsto \color{blue}{-0.5 \cdot \frac{c}{b}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification7.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.043841200868094369004988674215167877153 \cdot 10^{150}:\\ \;\;\;\;0.5 \cdot \frac{c}{b} - 0.6666666666666666296592325124947819858789 \cdot \frac{b}{a}\\ \mathbf{elif}\;b \le 4.62812776285933976007871171352100695172 \cdot 10^{-217}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.223338752466640343589574731486746446224 \cdot 10^{97}:\\ \;\;\;\;1 \cdot \left(\frac{\frac{a}{\sqrt[3]{a}}}{\sqrt[3]{a}} \cdot \frac{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{\sqrt[3]{a}}\right)\\ \mathbf{else}:\\ \;\;\;\;-0.5 \cdot \frac{c}{b}\\ \end{array}\]

Reproduce

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