Average Error: 33.8 → 10.5
Time: 19.2s
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.145052474011387162318140265226763696231 \cdot 10^{-21}:\\ \;\;\;\;\frac{c \cdot \frac{-1}{2}}{b_2}\\ \mathbf{elif}\;b_2 \le 3.98696218646995035082893792769578320558 \cdot 10^{45}:\\ \;\;\;\;-\frac{\sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\left(b_2 + b_2\right)}{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.145052474011387162318140265226763696231 \cdot 10^{-21}:\\
\;\;\;\;\frac{c \cdot \frac{-1}{2}}{b_2}\\

\mathbf{elif}\;b_2 \le 3.98696218646995035082893792769578320558 \cdot 10^{45}:\\
\;\;\;\;-\frac{\sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)} + b_2}{a}\\

\mathbf{else}:\\
\;\;\;\;\frac{-\left(b_2 + b_2\right)}{a}\\

\end{array}
double f(double a, double b_2, double c) {
        double r73681 = b_2;
        double r73682 = -r73681;
        double r73683 = r73681 * r73681;
        double r73684 = a;
        double r73685 = c;
        double r73686 = r73684 * r73685;
        double r73687 = r73683 - r73686;
        double r73688 = sqrt(r73687);
        double r73689 = r73682 - r73688;
        double r73690 = r73689 / r73684;
        return r73690;
}

double f(double a, double b_2, double c) {
        double r73691 = b_2;
        double r73692 = -2.145052474011387e-21;
        bool r73693 = r73691 <= r73692;
        double r73694 = c;
        double r73695 = -0.5;
        double r73696 = r73694 * r73695;
        double r73697 = r73696 / r73691;
        double r73698 = 3.9869621864699504e+45;
        bool r73699 = r73691 <= r73698;
        double r73700 = a;
        double r73701 = -r73700;
        double r73702 = r73691 * r73691;
        double r73703 = fma(r73701, r73694, r73702);
        double r73704 = sqrt(r73703);
        double r73705 = r73704 + r73691;
        double r73706 = r73705 / r73700;
        double r73707 = -r73706;
        double r73708 = r73691 + r73691;
        double r73709 = -r73708;
        double r73710 = r73709 / r73700;
        double r73711 = r73699 ? r73707 : r73710;
        double r73712 = r73693 ? r73697 : r73711;
        return r73712;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Derivation

  1. Split input into 3 regimes
  2. if b_2 < -2.145052474011387e-21

    1. Initial program 55.0

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified55.0

      \[\leadsto \color{blue}{\frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}{a}}\]
    3. Taylor expanded around -inf 6.3

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

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

    if -2.145052474011387e-21 < b_2 < 3.9869621864699504e+45

    1. Initial program 15.5

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified15.5

      \[\leadsto \color{blue}{\frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}{a}}\]
    3. Using strategy rm
    4. Applied clear-num15.6

      \[\leadsto \color{blue}{\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}}\]
    5. Simplified15.6

      \[\leadsto \frac{1}{\color{blue}{\frac{a}{-\left(b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}\right)}}}\]
    6. Using strategy rm
    7. Applied neg-mul-115.6

      \[\leadsto \frac{1}{\frac{a}{\color{blue}{-1 \cdot \left(b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}\right)}}}\]
    8. Applied *-un-lft-identity15.6

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot a}}{-1 \cdot \left(b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}\right)}}\]
    9. Applied times-frac15.6

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{-1} \cdot \frac{a}{b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}}\]
    10. Applied add-cube-cbrt15.6

      \[\leadsto \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\frac{1}{-1} \cdot \frac{a}{b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}\]
    11. Applied times-frac15.6

      \[\leadsto \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\frac{1}{-1}} \cdot \frac{\sqrt[3]{1}}{\frac{a}{b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}}\]
    12. Simplified15.6

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

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

    if 3.9869621864699504e+45 < b_2

    1. Initial program 37.4

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified37.4

      \[\leadsto \color{blue}{\frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}{a}}\]
    3. Using strategy rm
    4. Applied clear-num37.5

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

      \[\leadsto \frac{1}{\color{blue}{\frac{a}{-\left(b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}\right)}}}\]
    6. Using strategy rm
    7. Applied neg-mul-137.5

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

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

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{-1} \cdot \frac{a}{b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}}\]
    10. Applied add-cube-cbrt37.5

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

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

      \[\leadsto \color{blue}{-1} \cdot \frac{\sqrt[3]{1}}{\frac{a}{b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}}}\]
    13. Simplified37.4

      \[\leadsto -1 \cdot \color{blue}{\frac{1 \cdot \left(b_2 + \sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)}\right)}{a}}\]
    14. Taylor expanded around 0 6.6

      \[\leadsto -1 \cdot \frac{1 \cdot \left(b_2 + \color{blue}{b_2}\right)}{a}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification10.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.145052474011387162318140265226763696231 \cdot 10^{-21}:\\ \;\;\;\;\frac{c \cdot \frac{-1}{2}}{b_2}\\ \mathbf{elif}\;b_2 \le 3.98696218646995035082893792769578320558 \cdot 10^{45}:\\ \;\;\;\;-\frac{\sqrt{\mathsf{fma}\left(-a, c, b_2 \cdot b_2\right)} + b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-\left(b_2 + b_2\right)}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019179 +o rules:numerics
(FPCore (a b_2 c)
  :name "NMSE problem 3.2.1"
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))