Average Error: 34.1 → 6.7
Time: 17.8s
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.794763793747313808439492098028999694334 \cdot 10^{48}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -1.343096751709779633653539836064556904256 \cdot 10^{-234}:\\ \;\;\;\;\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}} \cdot \left(\frac{a}{a} \cdot \frac{c}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}\right)\\ \mathbf{elif}\;b_2 \le 1.302994705082702092687429648637938290449 \cdot 10^{103}:\\ \;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{{b_2}^{2} - c \cdot a}}}\\ \mathbf{else}:\\ \;\;\;\;-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 -2.794763793747313808439492098028999694334 \cdot 10^{48}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r31129 = b_2;
        double r31130 = -r31129;
        double r31131 = r31129 * r31129;
        double r31132 = a;
        double r31133 = c;
        double r31134 = r31132 * r31133;
        double r31135 = r31131 - r31134;
        double r31136 = sqrt(r31135);
        double r31137 = r31130 - r31136;
        double r31138 = r31137 / r31132;
        return r31138;
}

double f(double a, double b_2, double c) {
        double r31139 = b_2;
        double r31140 = -2.7947637937473138e+48;
        bool r31141 = r31139 <= r31140;
        double r31142 = -0.5;
        double r31143 = c;
        double r31144 = r31143 / r31139;
        double r31145 = r31142 * r31144;
        double r31146 = -1.3430967517097796e-234;
        bool r31147 = r31139 <= r31146;
        double r31148 = 1.0;
        double r31149 = -r31143;
        double r31150 = a;
        double r31151 = r31139 * r31139;
        double r31152 = fma(r31149, r31150, r31151);
        double r31153 = sqrt(r31152);
        double r31154 = r31153 - r31139;
        double r31155 = sqrt(r31154);
        double r31156 = r31148 / r31155;
        double r31157 = r31150 / r31150;
        double r31158 = r31143 / r31155;
        double r31159 = r31157 * r31158;
        double r31160 = r31156 * r31159;
        double r31161 = 1.302994705082702e+103;
        bool r31162 = r31139 <= r31161;
        double r31163 = -r31139;
        double r31164 = 2.0;
        double r31165 = pow(r31139, r31164);
        double r31166 = r31143 * r31150;
        double r31167 = r31165 - r31166;
        double r31168 = sqrt(r31167);
        double r31169 = r31163 - r31168;
        double r31170 = r31150 / r31169;
        double r31171 = r31148 / r31170;
        double r31172 = -2.0;
        double r31173 = r31139 / r31150;
        double r31174 = r31172 * r31173;
        double r31175 = r31162 ? r31171 : r31174;
        double r31176 = r31147 ? r31160 : r31175;
        double r31177 = r31141 ? r31145 : r31176;
        return r31177;
}

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.7947637937473138e+48

    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.8

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

    if -2.7947637937473138e+48 < b_2 < -1.3430967517097796e-234

    1. Initial program 33.1

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

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

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

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{{\left(\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2\right)}^{1}}}}{a}\]
    8. Using strategy rm
    9. Applied *-un-lft-identity17.3

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

      \[\leadsto \frac{\frac{0 + a \cdot c}{{\color{blue}{\left(\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2} \cdot \sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}\right)}}^{1}}}{1 \cdot a}\]
    11. Applied unpow-prod-down17.5

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

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

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

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

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

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

    if -1.3430967517097796e-234 < b_2 < 1.302994705082702e+103

    1. Initial program 9.5

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

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

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

    if 1.302994705082702e+103 < b_2

    1. Initial program 47.7

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

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.794763793747313808439492098028999694334 \cdot 10^{48}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -1.343096751709779633653539836064556904256 \cdot 10^{-234}:\\ \;\;\;\;\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}} \cdot \left(\frac{a}{a} \cdot \frac{c}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}\right)\\ \mathbf{elif}\;b_2 \le 1.302994705082702092687429648637938290449 \cdot 10^{103}:\\ \;\;\;\;\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{{b_2}^{2} - c \cdot a}}}\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

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