Average Error: 34.2 → 10.7
Time: 20.4s
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.06165607700969823504029634358803608389 \cdot 10^{154}:\\ \;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\ \mathbf{elif}\;b \le 2.153415381666121571802343787447463758755 \cdot 10^{-275}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3}}{a}\\ \mathbf{elif}\;b \le 5.137043888653351826447705471890965160323 \cdot 10^{134}:\\ \;\;\;\;\frac{\frac{c \cdot 3}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{\frac{3 \cdot a}{\frac{a}{\sqrt[3]{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(c \cdot 3\right) \cdot a}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{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.06165607700969823504029634358803608389 \cdot 10^{154}:\\
\;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\

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

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

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(c \cdot 3\right) \cdot a}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3 \cdot a}\\

\end{array}
double f(double a, double b, double c) {
        double r92240 = b;
        double r92241 = -r92240;
        double r92242 = r92240 * r92240;
        double r92243 = 3.0;
        double r92244 = a;
        double r92245 = r92243 * r92244;
        double r92246 = c;
        double r92247 = r92245 * r92246;
        double r92248 = r92242 - r92247;
        double r92249 = sqrt(r92248);
        double r92250 = r92241 + r92249;
        double r92251 = r92250 / r92245;
        return r92251;
}

double f(double a, double b, double c) {
        double r92252 = b;
        double r92253 = -1.0616560770096982e+154;
        bool r92254 = r92252 <= r92253;
        double r92255 = 1.5;
        double r92256 = a;
        double r92257 = c;
        double r92258 = r92256 * r92257;
        double r92259 = r92258 / r92252;
        double r92260 = r92255 * r92259;
        double r92261 = 2.0;
        double r92262 = r92261 * r92252;
        double r92263 = r92260 - r92262;
        double r92264 = 3.0;
        double r92265 = r92264 * r92256;
        double r92266 = r92263 / r92265;
        double r92267 = 2.1534153816661216e-275;
        bool r92268 = r92252 <= r92267;
        double r92269 = r92252 * r92252;
        double r92270 = r92265 * r92257;
        double r92271 = r92269 - r92270;
        double r92272 = sqrt(r92271);
        double r92273 = r92272 - r92252;
        double r92274 = r92273 / r92264;
        double r92275 = r92274 / r92256;
        double r92276 = 5.137043888653352e+134;
        bool r92277 = r92252 <= r92276;
        double r92278 = r92257 * r92264;
        double r92279 = -r92252;
        double r92280 = r92279 - r92272;
        double r92281 = cbrt(r92280);
        double r92282 = r92281 * r92281;
        double r92283 = r92278 / r92282;
        double r92284 = sqrt(r92272);
        double r92285 = r92284 * r92284;
        double r92286 = r92279 - r92285;
        double r92287 = cbrt(r92286);
        double r92288 = r92256 / r92287;
        double r92289 = r92265 / r92288;
        double r92290 = r92283 / r92289;
        double r92291 = r92278 * r92256;
        double r92292 = r92252 - r92260;
        double r92293 = r92279 - r92292;
        double r92294 = r92291 / r92293;
        double r92295 = r92294 / r92265;
        double r92296 = r92277 ? r92290 : r92295;
        double r92297 = r92268 ? r92275 : r92296;
        double r92298 = r92254 ? r92266 : r92297;
        return r92298;
}

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.0616560770096982e+154

    1. Initial program 63.9

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

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

    if -1.0616560770096982e+154 < b < 2.1534153816661216e-275

    1. Initial program 8.6

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

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

    if 2.1534153816661216e-275 < b < 5.137043888653352e+134

    1. Initial program 35.3

      \[\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.3

      \[\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. Simplified16.8

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

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

      \[\leadsto \frac{\color{blue}{\frac{c \cdot 3}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}} \cdot \frac{a}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}}{3 \cdot a}\]
    8. Applied associate-/l*9.9

      \[\leadsto \color{blue}{\frac{\frac{c \cdot 3}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{\frac{3 \cdot a}{\frac{a}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}}}\]
    9. Using strategy rm
    10. Applied add-sqr-sqrt9.9

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

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

    if 5.137043888653352e+134 < b

    1. Initial program 62.2

      \[\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-+62.2

      \[\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. Simplified36.0

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

      \[\leadsto \frac{\frac{\left(c \cdot 3\right) \cdot a}{\left(-b\right) - \color{blue}{\left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}}{3 \cdot a}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification10.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.06165607700969823504029634358803608389 \cdot 10^{154}:\\ \;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\ \mathbf{elif}\;b \le 2.153415381666121571802343787447463758755 \cdot 10^{-275}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3}}{a}\\ \mathbf{elif}\;b \le 5.137043888653351826447705471890965160323 \cdot 10^{134}:\\ \;\;\;\;\frac{\frac{c \cdot 3}{\sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{\frac{3 \cdot a}{\frac{a}{\sqrt[3]{\left(-b\right) - \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(c \cdot 3\right) \cdot a}{\left(-b\right) - \left(b - 1.5 \cdot \frac{a \cdot c}{b}\right)}}{3 \cdot a}\\ \end{array}\]

Reproduce

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