Average Error: 34.3 → 6.5
Time: 14.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 -1.569310777886352095486911207889814773134 \cdot 10^{111}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le \frac{-8820186483094019}{2.808895523222368605827039360607851146278 \cdot 10^{306}}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 1.608284405260305560018146283533738265178 \cdot 10^{78}:\\ \;\;\;\;\frac{\frac{1}{a} \cdot 0 + 1 \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{c}{b_2}}{-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 -1.569310777886352095486911207889814773134 \cdot 10^{111}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r22577 = b_2;
        double r22578 = -r22577;
        double r22579 = r22577 * r22577;
        double r22580 = a;
        double r22581 = c;
        double r22582 = r22580 * r22581;
        double r22583 = r22579 - r22582;
        double r22584 = sqrt(r22583);
        double r22585 = r22578 + r22584;
        double r22586 = r22585 / r22580;
        return r22586;
}

double f(double a, double b_2, double c) {
        double r22587 = b_2;
        double r22588 = -1.569310777886352e+111;
        bool r22589 = r22587 <= r22588;
        double r22590 = 1.0;
        double r22591 = 2.0;
        double r22592 = r22590 / r22591;
        double r22593 = c;
        double r22594 = r22593 / r22587;
        double r22595 = r22592 * r22594;
        double r22596 = a;
        double r22597 = r22587 / r22596;
        double r22598 = r22591 * r22597;
        double r22599 = r22595 - r22598;
        double r22600 = -8820186483094019.0;
        double r22601 = 2.8088955232223686e+306;
        double r22602 = r22600 / r22601;
        bool r22603 = r22587 <= r22602;
        double r22604 = -r22587;
        double r22605 = r22587 * r22587;
        double r22606 = r22596 * r22593;
        double r22607 = r22605 - r22606;
        double r22608 = sqrt(r22607);
        double r22609 = r22604 + r22608;
        double r22610 = r22609 / r22596;
        double r22611 = 1.6082844052603056e+78;
        bool r22612 = r22587 <= r22611;
        double r22613 = r22590 / r22596;
        double r22614 = 0.0;
        double r22615 = r22613 * r22614;
        double r22616 = r22590 * r22593;
        double r22617 = r22615 + r22616;
        double r22618 = r22604 - r22608;
        double r22619 = r22617 / r22618;
        double r22620 = -2.0;
        double r22621 = r22594 / r22620;
        double r22622 = r22612 ? r22619 : r22621;
        double r22623 = r22603 ? r22610 : r22622;
        double r22624 = r22589 ? r22599 : r22623;
        return r22624;
}

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 < -1.569310777886352e+111

    1. Initial program 50.4

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

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

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

    if -1.569310777886352e+111 < b_2 < -3.1400906193105714e-291

    1. Initial program 8.4

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

    if -3.1400906193105714e-291 < b_2 < 1.6082844052603056e+78

    1. Initial program 30.6

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

      \[\leadsto \color{blue}{\left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}}\]
    4. Using strategy rm
    5. Applied flip-+30.7

      \[\leadsto \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}}} \cdot \frac{1}{a}\]
    6. Applied associate-*l/30.8

      \[\leadsto \color{blue}{\frac{\left(\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}\right) \cdot \frac{1}{a}}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\]
    7. Simplified15.8

      \[\leadsto \frac{\color{blue}{\frac{1}{a} \cdot 0 + \frac{1}{a} \cdot \left(a \cdot c\right)}}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\]
    8. Using strategy rm
    9. Applied associate-*r*9.1

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

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

    if 1.6082844052603056e+78 < b_2

    1. Initial program 58.7

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -1.569310777886352095486911207889814773134 \cdot 10^{111}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le \frac{-8820186483094019}{2.808895523222368605827039360607851146278 \cdot 10^{306}}:\\ \;\;\;\;\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{elif}\;b_2 \le 1.608284405260305560018146283533738265178 \cdot 10^{78}:\\ \;\;\;\;\frac{\frac{1}{a} \cdot 0 + 1 \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{c}{b_2}}{-2}\\ \end{array}\]

Reproduce

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