Average Error: 33.3 → 14.8
Time: 18.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.3307746224770355 \cdot 10^{+154}:\\ \;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\ \mathbf{elif}\;b \le 1.502588793204478 \cdot 10^{-55}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c} - b}{3 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{-3}{2} \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.3307746224770355 \cdot 10^{+154}:\\
\;\;\;\;\frac{\left(\frac{3}{2} \cdot \frac{a \cdot c}{b} - b\right) - b}{3 \cdot a}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r2032158 = b;
        double r2032159 = -r2032158;
        double r2032160 = r2032158 * r2032158;
        double r2032161 = 3.0;
        double r2032162 = a;
        double r2032163 = r2032161 * r2032162;
        double r2032164 = c;
        double r2032165 = r2032163 * r2032164;
        double r2032166 = r2032160 - r2032165;
        double r2032167 = sqrt(r2032166);
        double r2032168 = r2032159 + r2032167;
        double r2032169 = r2032168 / r2032163;
        return r2032169;
}

double f(double a, double b, double c) {
        double r2032170 = b;
        double r2032171 = -1.3307746224770355e+154;
        bool r2032172 = r2032170 <= r2032171;
        double r2032173 = 1.5;
        double r2032174 = a;
        double r2032175 = c;
        double r2032176 = r2032174 * r2032175;
        double r2032177 = r2032176 / r2032170;
        double r2032178 = r2032173 * r2032177;
        double r2032179 = r2032178 - r2032170;
        double r2032180 = r2032179 - r2032170;
        double r2032181 = 3.0;
        double r2032182 = r2032181 * r2032174;
        double r2032183 = r2032180 / r2032182;
        double r2032184 = 1.502588793204478e-55;
        bool r2032185 = r2032170 <= r2032184;
        double r2032186 = r2032170 * r2032170;
        double r2032187 = r2032182 * r2032175;
        double r2032188 = r2032186 - r2032187;
        double r2032189 = sqrt(r2032188);
        double r2032190 = r2032189 - r2032170;
        double r2032191 = r2032190 / r2032182;
        double r2032192 = -1.5;
        double r2032193 = r2032192 * r2032177;
        double r2032194 = r2032193 / r2032182;
        double r2032195 = r2032185 ? r2032191 : r2032194;
        double r2032196 = r2032172 ? r2032183 : r2032195;
        return r2032196;
}

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 < -1.3307746224770355e+154

    1. Initial program 60.9

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

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

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

    if -1.3307746224770355e+154 < b < 1.502588793204478e-55

    1. Initial program 12.8

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

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

    if 1.502588793204478e-55 < b

    1. Initial program 52.9

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

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

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

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

Reproduce

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