Average Error: 33.8 → 9.5
Time: 14.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 r3145650 = b_2;
        double r3145651 = -r3145650;
        double r3145652 = r3145650 * r3145650;
        double r3145653 = a;
        double r3145654 = c;
        double r3145655 = r3145653 * r3145654;
        double r3145656 = r3145652 - r3145655;
        double r3145657 = sqrt(r3145656);
        double r3145658 = r3145651 - r3145657;
        double r3145659 = r3145658 / r3145653;
        return r3145659;
}

double f(double a, double b_2, double c) {
        double r3145660 = b_2;
        double r3145661 = -0.03099989563658143;
        bool r3145662 = r3145660 <= r3145661;
        double r3145663 = -0.5;
        double r3145664 = c;
        double r3145665 = r3145664 / r3145660;
        double r3145666 = r3145663 * r3145665;
        double r3145667 = -4.652312659939379e-132;
        bool r3145668 = r3145660 <= r3145667;
        double r3145669 = a;
        double r3145670 = r3145664 * r3145669;
        double r3145671 = r3145660 * r3145660;
        double r3145672 = r3145671 - r3145670;
        double r3145673 = sqrt(r3145672);
        double r3145674 = r3145673 - r3145660;
        double r3145675 = r3145670 / r3145674;
        double r3145676 = r3145675 / r3145669;
        double r3145677 = -4.782406139136437e-149;
        bool r3145678 = r3145660 <= r3145677;
        double r3145679 = 6.358019085320933e+22;
        bool r3145680 = r3145660 <= r3145679;
        double r3145681 = r3145673 + r3145660;
        double r3145682 = r3145681 / r3145669;
        double r3145683 = -r3145682;
        double r3145684 = 0.5;
        double r3145685 = r3145684 * r3145665;
        double r3145686 = r3145660 / r3145669;
        double r3145687 = 2.0;
        double r3145688 = r3145686 * r3145687;
        double r3145689 = r3145685 - r3145688;
        double r3145690 = r3145680 ? r3145683 : r3145689;
        double r3145691 = r3145678 ? r3145666 : r3145690;
        double r3145692 = r3145668 ? r3145676 : r3145691;
        double r3145693 = r3145662 ? r3145666 : r3145692;
        return r3145693;
}

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 "NMSE problem 3.2.1"
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))