Average Error: 33.2 → 9.9
Time: 24.4s
Precision: 64
\[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
\[\begin{array}{l} \mathbf{if}\;b_2 \le -1.8774910265390396 \cdot 10^{-73}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 2.5703497435733685 \cdot 10^{+102}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]
\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}
\begin{array}{l}
\mathbf{if}\;b_2 \le -1.8774910265390396 \cdot 10^{-73}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le 2.5703497435733685 \cdot 10^{+102}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\

\mathbf{else}:\\
\;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\

\end{array}
double f(double a, double b_2, double c) {
        double r543269 = b_2;
        double r543270 = -r543269;
        double r543271 = r543269 * r543269;
        double r543272 = a;
        double r543273 = c;
        double r543274 = r543272 * r543273;
        double r543275 = r543271 - r543274;
        double r543276 = sqrt(r543275);
        double r543277 = r543270 - r543276;
        double r543278 = r543277 / r543272;
        return r543278;
}

double f(double a, double b_2, double c) {
        double r543279 = b_2;
        double r543280 = -1.8774910265390396e-73;
        bool r543281 = r543279 <= r543280;
        double r543282 = -0.5;
        double r543283 = c;
        double r543284 = r543283 / r543279;
        double r543285 = r543282 * r543284;
        double r543286 = 2.5703497435733685e+102;
        bool r543287 = r543279 <= r543286;
        double r543288 = -r543279;
        double r543289 = r543279 * r543279;
        double r543290 = a;
        double r543291 = r543290 * r543283;
        double r543292 = r543289 - r543291;
        double r543293 = sqrt(r543292);
        double r543294 = r543288 - r543293;
        double r543295 = 1.0;
        double r543296 = r543295 / r543290;
        double r543297 = r543294 * r543296;
        double r543298 = 0.5;
        double r543299 = r543284 * r543298;
        double r543300 = 2.0;
        double r543301 = r543279 / r543290;
        double r543302 = r543300 * r543301;
        double r543303 = r543299 - r543302;
        double r543304 = r543287 ? r543297 : r543303;
        double r543305 = r543281 ? r543285 : r543304;
        return r543305;
}

Error

Bits error versus a

Bits error versus b_2

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_2 < -1.8774910265390396e-73

    1. Initial program 52.5

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Taylor expanded around -inf 8.6

      \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b_2}}\]

    if -1.8774910265390396e-73 < b_2 < 2.5703497435733685e+102

    1. Initial program 13.1

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Using strategy rm
    3. Applied div-inv13.2

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

    if 2.5703497435733685e+102 < b_2

    1. Initial program 43.9

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Taylor expanded around inf 2.9

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification9.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -1.8774910265390396 \cdot 10^{-73}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 2.5703497435733685 \cdot 10^{+102}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{1}{2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019153 
(FPCore (a b_2 c)
  :name "quad2m (problem 3.2.1, negative)"
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))