Average Error: 33.3 → 10.3
Time: 1.3m
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.2105477514764172 \cdot 10^{+140}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le -2.959343619656092 \cdot 10^{-128}:\\ \;\;\;\;\frac{\sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.7581604978403035 \cdot 10^{+149}:\\ \;\;\;\;\frac{-1}{b + \sqrt{\left(c \cdot -3\right) \cdot a + b \cdot b}} \cdot c\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(c \cdot -3\right) \cdot a}{b + 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.2105477514764172 \cdot 10^{+140}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\

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

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

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

\end{array}
double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r20013734 = b;
        double r20013735 = -r20013734;
        double r20013736 = r20013734 * r20013734;
        double r20013737 = 3.0;
        double r20013738 = a;
        double r20013739 = r20013737 * r20013738;
        double r20013740 = c;
        double r20013741 = r20013739 * r20013740;
        double r20013742 = r20013736 - r20013741;
        double r20013743 = sqrt(r20013742);
        double r20013744 = r20013735 + r20013743;
        double r20013745 = r20013744 / r20013739;
        return r20013745;
}

double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r20013746 = b;
        double r20013747 = -1.2105477514764172e+140;
        bool r20013748 = r20013746 <= r20013747;
        double r20013749 = 1.5;
        double r20013750 = a;
        double r20013751 = c;
        double r20013752 = r20013750 * r20013751;
        double r20013753 = r20013752 / r20013746;
        double r20013754 = r20013749 * r20013753;
        double r20013755 = r20013754 - r20013746;
        double r20013756 = r20013755 - r20013746;
        double r20013757 = 3.0;
        double r20013758 = r20013757 * r20013750;
        double r20013759 = r20013756 / r20013758;
        double r20013760 = -2.959343619656092e-128;
        bool r20013761 = r20013746 <= r20013760;
        double r20013762 = r20013746 * r20013746;
        double r20013763 = r20013758 * r20013751;
        double r20013764 = r20013762 - r20013763;
        double r20013765 = sqrt(r20013764);
        double r20013766 = r20013765 - r20013746;
        double r20013767 = sqrt(r20013766);
        double r20013768 = r20013767 * r20013767;
        double r20013769 = r20013768 / r20013758;
        double r20013770 = 1.7581604978403035e+149;
        bool r20013771 = r20013746 <= r20013770;
        double r20013772 = -1.0;
        double r20013773 = -3.0;
        double r20013774 = r20013751 * r20013773;
        double r20013775 = r20013774 * r20013750;
        double r20013776 = r20013775 + r20013762;
        double r20013777 = sqrt(r20013776);
        double r20013778 = r20013746 + r20013777;
        double r20013779 = r20013772 / r20013778;
        double r20013780 = r20013779 * r20013751;
        double r20013781 = r20013746 + r20013746;
        double r20013782 = r20013775 / r20013781;
        double r20013783 = r20013782 / r20013758;
        double r20013784 = r20013771 ? r20013780 : r20013783;
        double r20013785 = r20013761 ? r20013769 : r20013784;
        double r20013786 = r20013748 ? r20013759 : r20013785;
        return r20013786;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

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.2105477514764172e+140

    1. Initial program 55.4

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

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

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

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

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

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

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

    if -1.2105477514764172e+140 < b < -2.959343619656092e-128

    1. Initial program 6.1

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

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

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

    if -2.959343619656092e-128 < b < 1.7581604978403035e+149

    1. Initial program 29.1

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    if 1.7581604978403035e+149 < 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. Simplified62.2

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

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

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

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.2105477514764172 \cdot 10^{+140}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le -2.959343619656092 \cdot 10^{-128}:\\ \;\;\;\;\frac{\sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b} \cdot \sqrt{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.7581604978403035 \cdot 10^{+149}:\\ \;\;\;\;\frac{-1}{b + \sqrt{\left(c \cdot -3\right) \cdot a + b \cdot b}} \cdot c\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(c \cdot -3\right) \cdot a}{b + b}}{3 \cdot a}\\ \end{array}\]

Reproduce

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