Average Error: 33.8 → 9.5
Time: 15.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.03099989563658142946445117615894560003653:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.652312659939379000312469651590666723463 \cdot 10^{-132}:\\ \;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\ \mathbf{elif}\;b_2 \le -4.782406139136436775896616480888561683498 \cdot 10^{-149}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 63580190853209333432320:\\ \;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 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.03099989563658142946445117615894560003653:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -4.652312659939379000312469651590666723463 \cdot 10^{-132}:\\
\;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\

\mathbf{elif}\;b_2 \le -4.782406139136436775896616480888561683498 \cdot 10^{-149}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r835765 = b_2;
        double r835766 = -r835765;
        double r835767 = r835765 * r835765;
        double r835768 = a;
        double r835769 = c;
        double r835770 = r835768 * r835769;
        double r835771 = r835767 - r835770;
        double r835772 = sqrt(r835771);
        double r835773 = r835766 - r835772;
        double r835774 = r835773 / r835768;
        return r835774;
}

double f(double a, double b_2, double c) {
        double r835775 = b_2;
        double r835776 = -0.03099989563658143;
        bool r835777 = r835775 <= r835776;
        double r835778 = -0.5;
        double r835779 = c;
        double r835780 = r835779 / r835775;
        double r835781 = r835778 * r835780;
        double r835782 = -4.652312659939379e-132;
        bool r835783 = r835775 <= r835782;
        double r835784 = a;
        double r835785 = r835779 * r835784;
        double r835786 = r835775 * r835775;
        double r835787 = r835786 - r835785;
        double r835788 = sqrt(r835787);
        double r835789 = r835788 - r835775;
        double r835790 = r835785 / r835789;
        double r835791 = r835790 / r835784;
        double r835792 = -4.782406139136437e-149;
        bool r835793 = r835775 <= r835792;
        double r835794 = 6.358019085320933e+22;
        bool r835795 = r835775 <= r835794;
        double r835796 = r835788 + r835775;
        double r835797 = r835796 / r835784;
        double r835798 = -r835797;
        double r835799 = 0.5;
        double r835800 = r835799 * r835780;
        double r835801 = r835775 / r835784;
        double r835802 = 2.0;
        double r835803 = r835801 * r835802;
        double r835804 = r835800 - r835803;
        double r835805 = r835795 ? r835798 : r835804;
        double r835806 = r835793 ? r835781 : r835805;
        double r835807 = r835783 ? r835791 : r835806;
        double r835808 = r835777 ? r835781 : r835807;
        return r835808;
}

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.03099989563658143 or -4.652312659939379e-132 < b_2 < -4.782406139136437e-149

    1. Initial program 54.6

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

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

    if -0.03099989563658143 < b_2 < -4.652312659939379e-132

    1. Initial program 32.6

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

      \[\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.3

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

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

    if -4.782406139136437e-149 < b_2 < 6.358019085320933e+22

    1. Initial program 12.3

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

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

      \[\leadsto \frac{\left(-b_2\right) - \color{blue}{\sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}}}}{a}\]
    5. Using strategy rm
    6. Applied neg-sub012.6

      \[\leadsto \frac{\color{blue}{\left(0 - b_2\right)} - \sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \sqrt{\sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\]
    7. Applied associate--l-12.6

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

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

    if 6.358019085320933e+22 < b_2

    1. Initial program 33.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -0.03099989563658142946445117615894560003653:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.652312659939379000312469651590666723463 \cdot 10^{-132}:\\ \;\;\;\;\frac{\frac{c \cdot a}{\sqrt{b_2 \cdot b_2 - c \cdot a} - b_2}}{a}\\ \mathbf{elif}\;b_2 \le -4.782406139136436775896616480888561683498 \cdot 10^{-149}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 63580190853209333432320:\\ \;\;\;\;-\frac{\sqrt{b_2 \cdot b_2 - c \cdot a} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\ \end{array}\]

Reproduce

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