Average Error: 34.0 → 6.7
Time: 5.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 -2.427668844436332 \cdot 10^{79}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -1.6070331019441596 \cdot 10^{-304}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}, -\sqrt[3]{b_2}, \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}{a}\\ \mathbf{elif}\;b_2 \le 5.6742922648294223 \cdot 10^{63}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_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 -2.427668844436332 \cdot 10^{79}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \le -1.6070331019441596 \cdot 10^{-304}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}, -\sqrt[3]{b_2}, \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}{a}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r17236 = b_2;
        double r17237 = -r17236;
        double r17238 = r17236 * r17236;
        double r17239 = a;
        double r17240 = c;
        double r17241 = r17239 * r17240;
        double r17242 = r17238 - r17241;
        double r17243 = sqrt(r17242);
        double r17244 = r17237 + r17243;
        double r17245 = r17244 / r17239;
        return r17245;
}

double f(double a, double b_2, double c) {
        double r17246 = b_2;
        double r17247 = -2.4276688444363324e+79;
        bool r17248 = r17246 <= r17247;
        double r17249 = 0.5;
        double r17250 = c;
        double r17251 = r17250 / r17246;
        double r17252 = r17249 * r17251;
        double r17253 = 2.0;
        double r17254 = a;
        double r17255 = r17246 / r17254;
        double r17256 = r17253 * r17255;
        double r17257 = r17252 - r17256;
        double r17258 = -1.6070331019441596e-304;
        bool r17259 = r17246 <= r17258;
        double r17260 = cbrt(r17246);
        double r17261 = r17260 * r17260;
        double r17262 = -r17260;
        double r17263 = r17246 * r17246;
        double r17264 = r17254 * r17250;
        double r17265 = r17263 - r17264;
        double r17266 = sqrt(r17265);
        double r17267 = fma(r17261, r17262, r17266);
        double r17268 = r17267 / r17254;
        double r17269 = 5.674292264829422e+63;
        bool r17270 = r17246 <= r17269;
        double r17271 = -r17246;
        double r17272 = r17271 - r17266;
        double r17273 = r17250 / r17272;
        double r17274 = -0.5;
        double r17275 = r17274 * r17251;
        double r17276 = r17270 ? r17273 : r17275;
        double r17277 = r17259 ? r17268 : r17276;
        double r17278 = r17248 ? r17257 : r17277;
        return r17278;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Derivation

  1. Split input into 4 regimes
  2. if b_2 < -2.4276688444363324e+79

    1. Initial program 43.9

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

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

    if -2.4276688444363324e+79 < b_2 < -1.6070331019441596e-304

    1. Initial program 8.8

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

      \[\leadsto \frac{\left(-\color{blue}{\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}\right) \cdot \sqrt[3]{b_2}}\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    4. Applied distribute-rgt-neg-in9.1

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}\right) \cdot \left(-\sqrt[3]{b_2}\right)} + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    5. Applied fma-def9.1

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}, -\sqrt[3]{b_2}, \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}{a}\]

    if -1.6070331019441596e-304 < b_2 < 5.674292264829422e+63

    1. Initial program 29.4

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

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

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

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

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

      \[\leadsto \frac{\color{blue}{\frac{1}{1} \cdot \frac{0 + a \cdot c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}{a}\]
    9. Applied associate-/l*15.8

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

      \[\leadsto \frac{\frac{1}{1}}{\color{blue}{\frac{a}{a \cdot c} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}}\]
    11. Using strategy rm
    12. Applied clear-num15.5

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

      \[\leadsto \frac{\frac{1}{1}}{\frac{1}{\color{blue}{c}} \cdot \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}\]
    14. Using strategy rm
    15. Applied associate-/r*8.8

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

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

    if 5.674292264829422e+63 < b_2

    1. Initial program 57.3

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.427668844436332 \cdot 10^{79}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le -1.6070331019441596 \cdot 10^{-304}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\sqrt[3]{b_2} \cdot \sqrt[3]{b_2}, -\sqrt[3]{b_2}, \sqrt{b_2 \cdot b_2 - a \cdot c}\right)}{a}\\ \mathbf{elif}\;b_2 \le 5.6742922648294223 \cdot 10^{63}:\\ \;\;\;\;\frac{c}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

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