Average Error: 34.2 → 10.7
Time: 21.2s
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{\left(-b\right) + \left(1.5 \cdot \frac{a \cdot c}{b} - b\right)}{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{\left(-b\right) + \left(1.5 \cdot \frac{a \cdot c}{b} - b\right)}{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 r72772 = b;
        double r72773 = -r72772;
        double r72774 = r72772 * r72772;
        double r72775 = 3.0;
        double r72776 = a;
        double r72777 = r72775 * r72776;
        double r72778 = c;
        double r72779 = r72777 * r72778;
        double r72780 = r72774 - r72779;
        double r72781 = sqrt(r72780);
        double r72782 = r72773 + r72781;
        double r72783 = r72782 / r72777;
        return r72783;
}

double f(double a, double b, double c) {
        double r72784 = b;
        double r72785 = -1.0616560770096982e+154;
        bool r72786 = r72784 <= r72785;
        double r72787 = -r72784;
        double r72788 = 1.5;
        double r72789 = a;
        double r72790 = c;
        double r72791 = r72789 * r72790;
        double r72792 = r72791 / r72784;
        double r72793 = r72788 * r72792;
        double r72794 = r72793 - r72784;
        double r72795 = r72787 + r72794;
        double r72796 = 3.0;
        double r72797 = r72796 * r72789;
        double r72798 = r72795 / r72797;
        double r72799 = 2.1534153816661216e-275;
        bool r72800 = r72784 <= r72799;
        double r72801 = r72784 * r72784;
        double r72802 = r72797 * r72790;
        double r72803 = r72801 - r72802;
        double r72804 = sqrt(r72803);
        double r72805 = r72804 - r72784;
        double r72806 = r72805 / r72796;
        double r72807 = r72806 / r72789;
        double r72808 = 5.137043888653352e+134;
        bool r72809 = r72784 <= r72808;
        double r72810 = r72790 * r72796;
        double r72811 = r72787 - r72804;
        double r72812 = cbrt(r72811);
        double r72813 = r72812 * r72812;
        double r72814 = r72810 / r72813;
        double r72815 = sqrt(r72804);
        double r72816 = r72815 * r72815;
        double r72817 = r72787 - r72816;
        double r72818 = cbrt(r72817);
        double r72819 = r72789 / r72818;
        double r72820 = r72797 / r72819;
        double r72821 = r72814 / r72820;
        double r72822 = r72810 * r72789;
        double r72823 = r72784 - r72793;
        double r72824 = r72787 - r72823;
        double r72825 = r72822 / r72824;
        double r72826 = r72825 / r72797;
        double r72827 = r72809 ? r72821 : r72826;
        double r72828 = r72800 ? r72807 : r72827;
        double r72829 = r72786 ? r72798 : r72828;
        return r72829;
}

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{\left(-b\right) + \color{blue}{\left(1.5 \cdot \frac{a \cdot c}{b} - b\right)}}{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{\left(-b\right) + \left(1.5 \cdot \frac{a \cdot c}{b} - b\right)}{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)))