Average Error: 34.4 → 9.0
Time: 13.1s
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.581291473695029702690078079656779261192 \cdot 10^{58}:\\ \;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.749476137934256724197446467547353552613 \cdot 10^{-147}:\\ \;\;\;\;\frac{\left(a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)\right) \cdot \frac{1}{a}}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{elif}\;b_2 \le 6.382246919184671949353170697340125221139 \cdot 10^{97}:\\ \;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{b_2}{c}} + \frac{-2 \cdot b_2}{a}\\ \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.581291473695029702690078079656779261192 \cdot 10^{58}:\\
\;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r69944 = b_2;
        double r69945 = -r69944;
        double r69946 = r69944 * r69944;
        double r69947 = a;
        double r69948 = c;
        double r69949 = r69947 * r69948;
        double r69950 = r69946 - r69949;
        double r69951 = sqrt(r69950);
        double r69952 = r69945 - r69951;
        double r69953 = r69952 / r69947;
        return r69953;
}

double f(double a, double b_2, double c) {
        double r69954 = b_2;
        double r69955 = -2.5812914736950297e+58;
        bool r69956 = r69954 <= r69955;
        double r69957 = -0.5;
        double r69958 = c;
        double r69959 = r69957 * r69958;
        double r69960 = r69959 / r69954;
        double r69961 = -4.749476137934257e-147;
        bool r69962 = r69954 <= r69961;
        double r69963 = a;
        double r69964 = r69963 * r69958;
        double r69965 = r69954 * r69954;
        double r69966 = r69965 - r69965;
        double r69967 = r69964 + r69966;
        double r69968 = 1.0;
        double r69969 = r69968 / r69963;
        double r69970 = r69967 * r69969;
        double r69971 = -r69954;
        double r69972 = r69965 - r69964;
        double r69973 = sqrt(r69972);
        double r69974 = r69971 + r69973;
        double r69975 = r69970 / r69974;
        double r69976 = 6.382246919184672e+97;
        bool r69977 = r69954 <= r69976;
        double r69978 = r69971 / r69963;
        double r69979 = r69973 / r69963;
        double r69980 = r69978 - r69979;
        double r69981 = 0.5;
        double r69982 = r69954 / r69958;
        double r69983 = r69981 / r69982;
        double r69984 = -2.0;
        double r69985 = r69984 * r69954;
        double r69986 = r69985 / r69963;
        double r69987 = r69983 + r69986;
        double r69988 = r69977 ? r69980 : r69987;
        double r69989 = r69962 ? r69975 : r69988;
        double r69990 = r69956 ? r69960 : r69989;
        return r69990;
}

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.5812914736950297e+58

    1. Initial program 57.5

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

      \[\leadsto \color{blue}{\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}}\]
    4. Taylor expanded around -inf 3.4

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

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

    if -2.5812914736950297e+58 < b_2 < -4.749476137934257e-147

    1. Initial program 37.7

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

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

      \[\leadsto \frac{1}{\frac{a}{\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}}}}}\]
    6. Applied associate-/r/37.8

      \[\leadsto \frac{1}{\color{blue}{\frac{a}{\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}} \cdot \left(\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}\]
    7. Applied associate-/r*37.7

      \[\leadsto \color{blue}{\frac{\frac{1}{\frac{a}{\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}}}\]
    8. Simplified16.6

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

    if -4.749476137934257e-147 < b_2 < 6.382246919184672e+97

    1. Initial program 11.8

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

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

    if 6.382246919184672e+97 < b_2

    1. Initial program 47.4

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.581291473695029702690078079656779261192 \cdot 10^{58}:\\ \;\;\;\;\frac{\frac{-1}{2} \cdot c}{b_2}\\ \mathbf{elif}\;b_2 \le -4.749476137934256724197446467547353552613 \cdot 10^{-147}:\\ \;\;\;\;\frac{\left(a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)\right) \cdot \frac{1}{a}}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{elif}\;b_2 \le 6.382246919184671949353170697340125221139 \cdot 10^{97}:\\ \;\;\;\;\frac{-b_2}{a} - \frac{\sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{1}{2}}{\frac{b_2}{c}} + \frac{-2 \cdot b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019195 
(FPCore (a b_2 c)
  :name "NMSE problem 3.2.1"
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))