Average Error: 33.6 → 14.7
Time: 22.1s
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 -4.898678560179045 \cdot 10^{+152}:\\ \;\;\;\;\frac{\left(\left(\frac{3}{2} \cdot c\right) \cdot \frac{a}{b} - b\right) - b}{a \cdot 3}\\ \mathbf{elif}\;b \le 1.487621333916267 \cdot 10^{+25}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \sqrt{3} \cdot \left(\sqrt{3} \cdot \left(a \cdot c\right)\right)} - b}{a \cdot 3}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-3}{2} \cdot \frac{a \cdot c}{b}}{a \cdot 3}\\ \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 -4.898678560179045 \cdot 10^{+152}:\\
\;\;\;\;\frac{\left(\left(\frac{3}{2} \cdot c\right) \cdot \frac{a}{b} - b\right) - b}{a \cdot 3}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r4215754 = b;
        double r4215755 = -r4215754;
        double r4215756 = r4215754 * r4215754;
        double r4215757 = 3.0;
        double r4215758 = a;
        double r4215759 = r4215757 * r4215758;
        double r4215760 = c;
        double r4215761 = r4215759 * r4215760;
        double r4215762 = r4215756 - r4215761;
        double r4215763 = sqrt(r4215762);
        double r4215764 = r4215755 + r4215763;
        double r4215765 = r4215764 / r4215759;
        return r4215765;
}

double f(double a, double b, double c) {
        double r4215766 = b;
        double r4215767 = -4.898678560179045e+152;
        bool r4215768 = r4215766 <= r4215767;
        double r4215769 = 1.5;
        double r4215770 = c;
        double r4215771 = r4215769 * r4215770;
        double r4215772 = a;
        double r4215773 = r4215772 / r4215766;
        double r4215774 = r4215771 * r4215773;
        double r4215775 = r4215774 - r4215766;
        double r4215776 = r4215775 - r4215766;
        double r4215777 = 3.0;
        double r4215778 = r4215772 * r4215777;
        double r4215779 = r4215776 / r4215778;
        double r4215780 = 1.487621333916267e+25;
        bool r4215781 = r4215766 <= r4215780;
        double r4215782 = r4215766 * r4215766;
        double r4215783 = sqrt(r4215777);
        double r4215784 = r4215772 * r4215770;
        double r4215785 = r4215783 * r4215784;
        double r4215786 = r4215783 * r4215785;
        double r4215787 = r4215782 - r4215786;
        double r4215788 = sqrt(r4215787);
        double r4215789 = r4215788 - r4215766;
        double r4215790 = r4215789 / r4215778;
        double r4215791 = -1.5;
        double r4215792 = r4215784 / r4215766;
        double r4215793 = r4215791 * r4215792;
        double r4215794 = r4215793 / r4215778;
        double r4215795 = r4215781 ? r4215790 : r4215794;
        double r4215796 = r4215768 ? r4215779 : r4215795;
        return r4215796;
}

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 < -4.898678560179045e+152

    1. Initial program 60.5

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

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

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

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

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

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

      \[\leadsto \frac{\color{blue}{\left(\frac{1}{2} \cdot \frac{a \cdot \left(c \cdot {\left(\sqrt{3}\right)}^{2}\right)}{b} - b\right)} - b}{3 \cdot a}\]
    9. Simplified2.0

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

    if -4.898678560179045e+152 < b < 1.487621333916267e+25

    1. Initial program 16.2

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

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

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

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

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

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

    if 1.487621333916267e+25 < b

    1. Initial program 55.6

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

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

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

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

Reproduce

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