Average Error: 34.3 → 12.8
Time: 12.3s
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.327347707720873 \cdot 10^{154}:\\ \;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\ \mathbf{elif}\;b \le -8.2053558757086961 \cdot 10^{-149}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(\left(3 \cdot a\right) \cdot \left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right)\right) \cdot \sqrt[3]{c}}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.8586636444574517 \cdot 10^{123}:\\ \;\;\;\;\frac{\frac{\left(3 \cdot a\right) \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1.5 \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.327347707720873 \cdot 10^{154}:\\
\;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\

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

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

\mathbf{else}:\\
\;\;\;\;\frac{-1.5 \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\

\end{array}
double f(double a, double b, double c) {
        double r89450 = b;
        double r89451 = -r89450;
        double r89452 = r89450 * r89450;
        double r89453 = 3.0;
        double r89454 = a;
        double r89455 = r89453 * r89454;
        double r89456 = c;
        double r89457 = r89455 * r89456;
        double r89458 = r89452 - r89457;
        double r89459 = sqrt(r89458);
        double r89460 = r89451 + r89459;
        double r89461 = r89460 / r89455;
        return r89461;
}

double f(double a, double b, double c) {
        double r89462 = b;
        double r89463 = -1.327347707720873e+154;
        bool r89464 = r89462 <= r89463;
        double r89465 = 1.5;
        double r89466 = a;
        double r89467 = c;
        double r89468 = r89466 * r89467;
        double r89469 = r89468 / r89462;
        double r89470 = r89465 * r89469;
        double r89471 = 2.0;
        double r89472 = r89471 * r89462;
        double r89473 = r89470 - r89472;
        double r89474 = 3.0;
        double r89475 = r89474 * r89466;
        double r89476 = r89473 / r89475;
        double r89477 = -8.205355875708696e-149;
        bool r89478 = r89462 <= r89477;
        double r89479 = -r89462;
        double r89480 = r89462 * r89462;
        double r89481 = cbrt(r89467);
        double r89482 = r89481 * r89481;
        double r89483 = r89475 * r89482;
        double r89484 = r89483 * r89481;
        double r89485 = r89480 - r89484;
        double r89486 = sqrt(r89485);
        double r89487 = r89479 + r89486;
        double r89488 = r89487 / r89475;
        double r89489 = 1.8586636444574517e+123;
        bool r89490 = r89462 <= r89489;
        double r89491 = r89475 * r89467;
        double r89492 = r89480 - r89491;
        double r89493 = sqrt(r89492);
        double r89494 = r89479 - r89493;
        double r89495 = r89491 / r89494;
        double r89496 = r89495 / r89475;
        double r89497 = -1.5;
        double r89498 = r89497 * r89469;
        double r89499 = r89498 / r89475;
        double r89500 = r89490 ? r89496 : r89499;
        double r89501 = r89478 ? r89488 : r89500;
        double r89502 = r89464 ? r89476 : r89501;
        return r89502;
}

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

    1. Initial program 64.0

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

      \[\leadsto \frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right) \cdot \sqrt[3]{c}\right)}}}{3 \cdot a}\]
    4. Applied associate-*r*64.0

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

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

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

    if -1.327347707720873e+154 < b < -8.205355875708696e-149

    1. Initial program 5.7

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

      \[\leadsto \frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right) \cdot \sqrt[3]{c}\right)}}}{3 \cdot a}\]
    4. Applied associate-*r*5.9

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

    if -8.205355875708696e-149 < b < 1.8586636444574517e+123

    1. Initial program 28.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 add-cube-cbrt29.2

      \[\leadsto \frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot \color{blue}{\left(\left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right) \cdot \sqrt[3]{c}\right)}}}{3 \cdot a}\]
    4. Applied associate-*r*29.2

      \[\leadsto \frac{\left(-b\right) + \sqrt{b \cdot b - \color{blue}{\left(\left(3 \cdot a\right) \cdot \left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right)\right) \cdot \sqrt[3]{c}}}}{3 \cdot a}\]
    5. Using strategy rm
    6. Applied flip-+29.5

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

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

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

    if 1.8586636444574517e+123 < b

    1. Initial program 60.8

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.327347707720873 \cdot 10^{154}:\\ \;\;\;\;\frac{1.5 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{3 \cdot a}\\ \mathbf{elif}\;b \le -8.2053558757086961 \cdot 10^{-149}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(\left(3 \cdot a\right) \cdot \left(\sqrt[3]{c} \cdot \sqrt[3]{c}\right)\right) \cdot \sqrt[3]{c}}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.8586636444574517 \cdot 10^{123}:\\ \;\;\;\;\frac{\frac{\left(3 \cdot a\right) \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1.5 \cdot \frac{a \cdot c}{b}}{3 \cdot a}\\ \end{array}\]

Reproduce

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