Average Error: 33.4 → 7.0
Time: 12.2s
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 -2.180871339710847644902778033044045300369 \cdot 10^{95}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -8.600451188821801034875369715965399433561 \cdot 10^{-288}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\ \mathbf{elif}\;b_2 \le 106106913250787377152:\\ \;\;\;\;\frac{\frac{1}{\frac{-1}{c}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\\ \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 -2.180871339710847644902778033044045300369 \cdot 10^{95}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \le -8.600451188821801034875369715965399433561 \cdot 10^{-288}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\

\mathbf{elif}\;b_2 \le 106106913250787377152:\\
\;\;\;\;\frac{\frac{1}{\frac{-1}{c}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r14344 = b_2;
        double r14345 = -r14344;
        double r14346 = r14344 * r14344;
        double r14347 = a;
        double r14348 = c;
        double r14349 = r14347 * r14348;
        double r14350 = r14346 - r14349;
        double r14351 = sqrt(r14350);
        double r14352 = r14345 + r14351;
        double r14353 = r14352 / r14347;
        return r14353;
}

double f(double a, double b_2, double c) {
        double r14354 = b_2;
        double r14355 = -2.1808713397108476e+95;
        bool r14356 = r14354 <= r14355;
        double r14357 = 0.5;
        double r14358 = c;
        double r14359 = r14358 / r14354;
        double r14360 = r14357 * r14359;
        double r14361 = 2.0;
        double r14362 = a;
        double r14363 = r14354 / r14362;
        double r14364 = r14361 * r14363;
        double r14365 = r14360 - r14364;
        double r14366 = -8.600451188821801e-288;
        bool r14367 = r14354 <= r14366;
        double r14368 = 1.0;
        double r14369 = r14354 * r14354;
        double r14370 = r14362 * r14358;
        double r14371 = r14369 - r14370;
        double r14372 = sqrt(r14371);
        double r14373 = r14372 - r14354;
        double r14374 = r14362 / r14373;
        double r14375 = r14368 / r14374;
        double r14376 = 1.0610691325078738e+20;
        bool r14377 = r14354 <= r14376;
        double r14378 = -1.0;
        double r14379 = r14378 / r14358;
        double r14380 = r14368 / r14379;
        double r14381 = r14372 + r14354;
        double r14382 = r14380 / r14381;
        double r14383 = -0.5;
        double r14384 = r14383 * r14359;
        double r14385 = r14377 ? r14382 : r14384;
        double r14386 = r14367 ? r14375 : r14385;
        double r14387 = r14356 ? r14365 : r14386;
        return r14387;
}

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 < -2.1808713397108476e+95

    1. Initial program 45.4

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

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

    if -2.1808713397108476e+95 < b_2 < -8.600451188821801e-288

    1. Initial program 8.7

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

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

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

    if -8.600451188821801e-288 < b_2 < 1.0610691325078738e+20

    1. Initial program 25.3

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

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

      \[\leadsto \frac{1}{\color{blue}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}\]
    5. Using strategy rm
    6. Applied flip--25.4

      \[\leadsto \frac{1}{\frac{a}{\color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt{b_2 \cdot b_2 - a \cdot c} - b_2 \cdot b_2}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}}}}\]
    7. Applied associate-/r/25.4

      \[\leadsto \frac{1}{\color{blue}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt{b_2 \cdot b_2 - a \cdot c} - b_2 \cdot b_2} \cdot \left(\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2\right)}}\]
    8. Applied associate-/r*25.4

      \[\leadsto \color{blue}{\frac{\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt{b_2 \cdot b_2 - a \cdot c} - b_2 \cdot b_2}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}}\]
    9. Simplified15.7

      \[\leadsto \frac{\color{blue}{\frac{0 - a \cdot c}{a}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\]
    10. Using strategy rm
    11. Applied clear-num15.8

      \[\leadsto \frac{\color{blue}{\frac{1}{\frac{a}{0 - a \cdot c}}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\]
    12. Simplified9.3

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

    if 1.0610691325078738e+20 < b_2

    1. Initial program 56.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.180871339710847644902778033044045300369 \cdot 10^{95}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -8.600451188821801034875369715965399433561 \cdot 10^{-288}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\ \mathbf{elif}\;b_2 \le 106106913250787377152:\\ \;\;\;\;\frac{\frac{1}{\frac{-1}{c}}}{\sqrt{b_2 \cdot b_2 - a \cdot c} + b_2}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

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