Average Error: 34.0 → 7.9
Time: 10.0s
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 -0.1973887031618163923063491438369965180755:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -7.171823963983999441512307744546786541929 \cdot 10^{-310}:\\ \;\;\;\;\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{elif}\;b_2 \le 2.730494439370032074747470763239053019705 \cdot 10^{75}:\\ \;\;\;\;\frac{1}{\frac{1}{c} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \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 -0.1973887031618163923063491438369965180755:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r26565 = b_2;
        double r26566 = -r26565;
        double r26567 = r26565 * r26565;
        double r26568 = a;
        double r26569 = c;
        double r26570 = r26568 * r26569;
        double r26571 = r26567 - r26570;
        double r26572 = sqrt(r26571);
        double r26573 = r26566 + r26572;
        double r26574 = r26573 / r26568;
        return r26574;
}

double f(double a, double b_2, double c) {
        double r26575 = b_2;
        double r26576 = -0.1973887031618164;
        bool r26577 = r26575 <= r26576;
        double r26578 = 0.5;
        double r26579 = c;
        double r26580 = r26579 / r26575;
        double r26581 = r26578 * r26580;
        double r26582 = 2.0;
        double r26583 = a;
        double r26584 = r26575 / r26583;
        double r26585 = r26582 * r26584;
        double r26586 = r26581 - r26585;
        double r26587 = -7.171823963984e-310;
        bool r26588 = r26575 <= r26587;
        double r26589 = -r26575;
        double r26590 = r26575 * r26575;
        double r26591 = r26583 * r26579;
        double r26592 = r26590 - r26591;
        double r26593 = sqrt(r26592);
        double r26594 = r26589 + r26593;
        double r26595 = 1.0;
        double r26596 = r26595 / r26583;
        double r26597 = r26594 * r26596;
        double r26598 = 2.730494439370032e+75;
        bool r26599 = r26575 <= r26598;
        double r26600 = r26595 / r26579;
        double r26601 = r26589 - r26593;
        double r26602 = r26600 * r26601;
        double r26603 = r26595 / r26602;
        double r26604 = -0.5;
        double r26605 = r26604 * r26580;
        double r26606 = r26599 ? r26603 : r26605;
        double r26607 = r26588 ? r26597 : r26606;
        double r26608 = r26577 ? r26586 : r26607;
        return r26608;
}

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 4 regimes
  2. if b_2 < -0.1973887031618164

    1. Initial program 32.2

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

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

    if -0.1973887031618164 < b_2 < -7.171823963984e-310

    1. Initial program 10.8

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

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

    if -7.171823963984e-310 < b_2 < 2.730494439370032e+75

    1. Initial program 30.3

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

      \[\leadsto \frac{\color{blue}{\frac{\left(-b_2\right) \cdot \left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt{b_2 \cdot b_2 - a \cdot c}}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}{a}\]
    4. Simplified16.7

      \[\leadsto \frac{\frac{\color{blue}{a \cdot c}}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity16.7

      \[\leadsto \frac{\frac{a \cdot c}{\color{blue}{1 \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}}{a}\]
    7. Applied times-frac14.0

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

      \[\leadsto \frac{\color{blue}{a} \cdot \frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\]
    9. Using strategy rm
    10. Applied clear-num14.1

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

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

    if 2.730494439370032e+75 < b_2

    1. Initial program 58.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -0.1973887031618163923063491438369965180755:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -7.171823963983999441512307744546786541929 \cdot 10^{-310}:\\ \;\;\;\;\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{elif}\;b_2 \le 2.730494439370032074747470763239053019705 \cdot 10^{75}:\\ \;\;\;\;\frac{1}{\frac{1}{c} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019308 
(FPCore (a b_2 c)
  :name "quad2p (problem 3.2.1, positive)"
  :precision binary64
  (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))