Average Error: 33.3 → 9.1
Time: 21.3s
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 -868804.7105499643:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -1.1921243675281261 \cdot 10^{-86}:\\ \;\;\;\;\left(\frac{a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2} \cdot \left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right)\right) \cdot \sqrt[3]{\frac{1}{a}}\\ \mathbf{elif}\;b_2 \le 2.408727112940545 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \left(\frac{c}{b_2}\right), \left(\frac{b_2 \cdot -2}{a}\right)\right)\\ \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 -868804.7105499643:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -1.1921243675281261 \cdot 10^{-86}:\\
\;\;\;\;\left(\frac{a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2} \cdot \left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right)\right) \cdot \sqrt[3]{\frac{1}{a}}\\

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

\mathbf{else}:\\
\;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \left(\frac{c}{b_2}\right), \left(\frac{b_2 \cdot -2}{a}\right)\right)\\

\end{array}
double f(double a, double b_2, double c) {
        double r2355211 = b_2;
        double r2355212 = -r2355211;
        double r2355213 = r2355211 * r2355211;
        double r2355214 = a;
        double r2355215 = c;
        double r2355216 = r2355214 * r2355215;
        double r2355217 = r2355213 - r2355216;
        double r2355218 = sqrt(r2355217);
        double r2355219 = r2355212 - r2355218;
        double r2355220 = r2355219 / r2355214;
        return r2355220;
}

double f(double a, double b_2, double c) {
        double r2355221 = b_2;
        double r2355222 = -868804.7105499643;
        bool r2355223 = r2355221 <= r2355222;
        double r2355224 = -0.5;
        double r2355225 = c;
        double r2355226 = r2355225 / r2355221;
        double r2355227 = r2355224 * r2355226;
        double r2355228 = -1.1921243675281261e-86;
        bool r2355229 = r2355221 <= r2355228;
        double r2355230 = a;
        double r2355231 = r2355230 * r2355225;
        double r2355232 = r2355221 * r2355221;
        double r2355233 = r2355232 - r2355232;
        double r2355234 = r2355231 + r2355233;
        double r2355235 = r2355232 - r2355231;
        double r2355236 = sqrt(r2355235);
        double r2355237 = r2355236 - r2355221;
        double r2355238 = r2355234 / r2355237;
        double r2355239 = 1.0;
        double r2355240 = r2355239 / r2355230;
        double r2355241 = cbrt(r2355240);
        double r2355242 = r2355241 * r2355241;
        double r2355243 = r2355238 * r2355242;
        double r2355244 = r2355243 * r2355241;
        double r2355245 = 2.408727112940545e+124;
        bool r2355246 = r2355221 <= r2355245;
        double r2355247 = -r2355221;
        double r2355248 = r2355247 - r2355236;
        double r2355249 = r2355248 / r2355230;
        double r2355250 = 0.5;
        double r2355251 = -2.0;
        double r2355252 = r2355221 * r2355251;
        double r2355253 = r2355252 / r2355230;
        double r2355254 = fma(r2355250, r2355226, r2355253);
        double r2355255 = r2355246 ? r2355249 : r2355254;
        double r2355256 = r2355229 ? r2355244 : r2355255;
        double r2355257 = r2355223 ? r2355227 : r2355256;
        return r2355257;
}

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 < -868804.7105499643

    1. Initial program 55.2

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

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

    if -868804.7105499643 < b_2 < -1.1921243675281261e-86

    1. Initial program 37.7

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

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

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

      \[\leadsto \color{blue}{\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}}\]
    6. Using strategy rm
    7. Applied add-cube-cbrt38.1

      \[\leadsto \left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \color{blue}{\left(\left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right) \cdot \sqrt[3]{\frac{1}{a}}\right)}\]
    8. Applied associate-*r*38.1

      \[\leadsto \color{blue}{\left(\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right)\right) \cdot \sqrt[3]{\frac{1}{a}}}\]
    9. Using strategy rm
    10. Applied flip--38.2

      \[\leadsto \left(\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}}} \cdot \left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right)\right) \cdot \sqrt[3]{\frac{1}{a}}\]
    11. Simplified17.6

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

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

    if -1.1921243675281261e-86 < b_2 < 2.408727112940545e+124

    1. Initial program 12.0

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

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

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

    if 2.408727112940545e+124 < b_2

    1. Initial program 50.3

      \[\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} - 2 \cdot \frac{b_2}{a}}\]
    3. Simplified3.2

      \[\leadsto \color{blue}{\mathsf{fma}\left(\frac{1}{2}, \left(\frac{c}{b_2}\right), \left(\frac{b_2 \cdot -2}{a}\right)\right)}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification9.1

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -868804.7105499643:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -1.1921243675281261 \cdot 10^{-86}:\\ \;\;\;\;\left(\frac{a \cdot c + \left(b_2 \cdot b_2 - b_2 \cdot b_2\right)}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2} \cdot \left(\sqrt[3]{\frac{1}{a}} \cdot \sqrt[3]{\frac{1}{a}}\right)\right) \cdot \sqrt[3]{\frac{1}{a}}\\ \mathbf{elif}\;b_2 \le 2.408727112940545 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{1}{2}, \left(\frac{c}{b_2}\right), \left(\frac{b_2 \cdot -2}{a}\right)\right)\\ \end{array}\]

Reproduce

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