Average Error: 34.4 → 6.3
Time: 15.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 -8.889080831912834239838349081155498349678 \cdot 10^{153}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 1.134509230518344573571097694463152126109 \cdot 10^{-265}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 2.356972451185042441494866927117571118281 \cdot 10^{139}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \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 -8.889080831912834239838349081155498349678 \cdot 10^{153}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r24369 = b_2;
        double r24370 = -r24369;
        double r24371 = r24369 * r24369;
        double r24372 = a;
        double r24373 = c;
        double r24374 = r24372 * r24373;
        double r24375 = r24371 - r24374;
        double r24376 = sqrt(r24375);
        double r24377 = r24370 + r24376;
        double r24378 = r24377 / r24372;
        return r24378;
}

double f(double a, double b_2, double c) {
        double r24379 = b_2;
        double r24380 = -8.889080831912834e+153;
        bool r24381 = r24379 <= r24380;
        double r24382 = 0.5;
        double r24383 = c;
        double r24384 = r24383 / r24379;
        double r24385 = r24382 * r24384;
        double r24386 = 2.0;
        double r24387 = a;
        double r24388 = r24379 / r24387;
        double r24389 = r24386 * r24388;
        double r24390 = r24385 - r24389;
        double r24391 = 1.1345092305183446e-265;
        bool r24392 = r24379 <= r24391;
        double r24393 = -r24379;
        double r24394 = r24379 * r24379;
        double r24395 = r24387 * r24383;
        double r24396 = r24394 - r24395;
        double r24397 = sqrt(r24396);
        double r24398 = r24393 + r24397;
        double r24399 = r24398 / r24387;
        double r24400 = 2.3569724511850424e+139;
        bool r24401 = r24379 <= r24400;
        double r24402 = r24393 - r24397;
        double r24403 = r24383 / r24402;
        double r24404 = -0.5;
        double r24405 = r24404 * r24384;
        double r24406 = r24401 ? r24403 : r24405;
        double r24407 = r24392 ? r24399 : r24406;
        double r24408 = r24381 ? r24390 : r24407;
        return r24408;
}

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 < -8.889080831912834e+153

    1. Initial program 64.0

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

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

    if -8.889080831912834e+153 < b_2 < 1.1345092305183446e-265

    1. Initial program 9.0

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

    if 1.1345092305183446e-265 < b_2 < 2.3569724511850424e+139

    1. Initial program 35.9

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

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

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

      \[\leadsto \frac{\frac{a \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{\color{blue}{1 \cdot a}}\]
    7. Applied *-un-lft-identity15.8

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

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

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

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

    if 2.3569724511850424e+139 < b_2

    1. Initial program 62.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -8.889080831912834239838349081155498349678 \cdot 10^{153}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 1.134509230518344573571097694463152126109 \cdot 10^{-265}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 2.356972451185042441494866927117571118281 \cdot 10^{139}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

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