Average Error: 33.7 → 9.0
Time: 6.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 -4.8621678288459276 \cdot 10^{80}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 6.3252557024882682 \cdot 10^{-270}:\\ \;\;\;\;\frac{1 \cdot \frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 1.1253137591959452 \cdot 10^{30}:\\ \;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{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 -4.8621678288459276 \cdot 10^{80}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r78206 = b_2;
        double r78207 = -r78206;
        double r78208 = r78206 * r78206;
        double r78209 = a;
        double r78210 = c;
        double r78211 = r78209 * r78210;
        double r78212 = r78208 - r78211;
        double r78213 = sqrt(r78212);
        double r78214 = r78207 - r78213;
        double r78215 = r78214 / r78209;
        return r78215;
}

double f(double a, double b_2, double c) {
        double r78216 = b_2;
        double r78217 = -4.862167828845928e+80;
        bool r78218 = r78216 <= r78217;
        double r78219 = -0.5;
        double r78220 = c;
        double r78221 = r78220 / r78216;
        double r78222 = r78219 * r78221;
        double r78223 = 6.325255702488268e-270;
        bool r78224 = r78216 <= r78223;
        double r78225 = 1.0;
        double r78226 = a;
        double r78227 = r78216 * r78216;
        double r78228 = r78226 * r78220;
        double r78229 = r78227 - r78228;
        double r78230 = sqrt(r78229);
        double r78231 = r78230 - r78216;
        double r78232 = r78231 / r78220;
        double r78233 = r78226 / r78232;
        double r78234 = r78225 * r78233;
        double r78235 = r78234 / r78226;
        double r78236 = 1.1253137591959452e+30;
        bool r78237 = r78216 <= r78236;
        double r78238 = -r78216;
        double r78239 = r78238 - r78230;
        double r78240 = r78226 / r78239;
        double r78241 = r78225 / r78240;
        double r78242 = 0.5;
        double r78243 = r78242 * r78221;
        double r78244 = 2.0;
        double r78245 = r78216 / r78226;
        double r78246 = r78244 * r78245;
        double r78247 = r78243 - r78246;
        double r78248 = r78237 ? r78241 : r78247;
        double r78249 = r78224 ? r78235 : r78248;
        double r78250 = r78218 ? r78222 : r78249;
        return r78250;
}

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 < -4.862167828845928e+80

    1. Initial program 58.0

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

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

    if -4.862167828845928e+80 < b_2 < 6.325255702488268e-270

    1. Initial program 29.9

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

      \[\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. Simplified16.5

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

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity16.5

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{1 \cdot \left(\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2\right)}}}{a}\]
    8. Applied *-un-lft-identity16.5

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot \left(0 + a \cdot c\right)}}{1 \cdot \left(\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2\right)}}{a}\]
    9. Applied times-frac16.5

      \[\leadsto \frac{\color{blue}{\frac{1}{1} \cdot \frac{0 + a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    10. Simplified16.5

      \[\leadsto \frac{\color{blue}{1} \cdot \frac{0 + a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{a}\]
    11. Simplified14.5

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

    if 6.325255702488268e-270 < b_2 < 1.1253137591959452e+30

    1. Initial program 10.3

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

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

    if 1.1253137591959452e+30 < b_2

    1. Initial program 34.2

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -4.8621678288459276 \cdot 10^{80}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 6.3252557024882682 \cdot 10^{-270}:\\ \;\;\;\;\frac{1 \cdot \frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 1.1253137591959452 \cdot 10^{30}:\\ \;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

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