Average Error: 34.4 → 8.8
Time: 9.9s
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 -5.10985616674947893 \cdot 10^{57}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -2.57120366754749 \cdot 10^{-295}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(c, a, 0\right)}{a}}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}\\ \mathbf{elif}\;b_2 \le 2.09453346119227227 \cdot 10^{90}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\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 -5.10985616674947893 \cdot 10^{57}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -2.57120366754749 \cdot 10^{-295}:\\
\;\;\;\;\frac{\frac{\mathsf{fma}\left(c, a, 0\right)}{a}}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r70352 = b_2;
        double r70353 = -r70352;
        double r70354 = r70352 * r70352;
        double r70355 = a;
        double r70356 = c;
        double r70357 = r70355 * r70356;
        double r70358 = r70354 - r70357;
        double r70359 = sqrt(r70358);
        double r70360 = r70353 - r70359;
        double r70361 = r70360 / r70355;
        return r70361;
}

double f(double a, double b_2, double c) {
        double r70362 = b_2;
        double r70363 = -5.109856166749479e+57;
        bool r70364 = r70362 <= r70363;
        double r70365 = -0.5;
        double r70366 = c;
        double r70367 = r70366 / r70362;
        double r70368 = r70365 * r70367;
        double r70369 = -2.57120366754749e-295;
        bool r70370 = r70362 <= r70369;
        double r70371 = a;
        double r70372 = 0.0;
        double r70373 = fma(r70366, r70371, r70372);
        double r70374 = r70373 / r70371;
        double r70375 = 2.0;
        double r70376 = pow(r70362, r70375);
        double r70377 = r70371 * r70366;
        double r70378 = r70376 - r70377;
        double r70379 = sqrt(r70378);
        double r70380 = r70379 - r70362;
        double r70381 = r70374 / r70380;
        double r70382 = 2.0945334611922723e+90;
        bool r70383 = r70362 <= r70382;
        double r70384 = -r70362;
        double r70385 = r70362 * r70362;
        double r70386 = r70385 - r70377;
        double r70387 = sqrt(r70386);
        double r70388 = r70384 - r70387;
        double r70389 = 1.0;
        double r70390 = r70389 / r70371;
        double r70391 = r70388 * r70390;
        double r70392 = 0.5;
        double r70393 = r70362 / r70371;
        double r70394 = -2.0;
        double r70395 = r70393 * r70394;
        double r70396 = fma(r70367, r70392, r70395);
        double r70397 = r70383 ? r70391 : r70396;
        double r70398 = r70370 ? r70381 : r70397;
        double r70399 = r70364 ? r70368 : r70398;
        return r70399;
}

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 < -5.109856166749479e+57

    1. Initial program 58.1

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

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

    if -5.109856166749479e+57 < b_2 < -2.57120366754749e-295

    1. Initial program 30.9

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

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

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

      \[\leadsto \frac{\frac{b_2 \cdot \left(b_2 - b_2\right) + a \cdot c}{\color{blue}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied div-inv17.1

      \[\leadsto \frac{\color{blue}{\left(b_2 \cdot \left(b_2 - b_2\right) + a \cdot c\right) \cdot \frac{1}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}}}{a}\]
    8. Applied associate-/l*22.4

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

      \[\leadsto \frac{b_2 \cdot \left(b_2 - b_2\right) + a \cdot c}{\color{blue}{a \cdot \left(\sqrt{{b_2}^{2} - a \cdot c} - b_2\right)}}\]
    10. Using strategy rm
    11. Applied associate-/r*16.7

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

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

    if -2.57120366754749e-295 < b_2 < 2.0945334611922723e+90

    1. Initial program 9.2

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

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

    if 2.0945334611922723e+90 < b_2

    1. Initial program 45.6

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

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

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

      \[\leadsto \frac{\frac{b_2 \cdot \left(b_2 - b_2\right) + a \cdot c}{\color{blue}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied div-inv61.8

      \[\leadsto \frac{\color{blue}{\left(b_2 \cdot \left(b_2 - b_2\right) + a \cdot c\right) \cdot \frac{1}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}}}{a}\]
    8. Applied associate-/l*62.2

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

      \[\leadsto \frac{b_2 \cdot \left(b_2 - b_2\right) + a \cdot c}{\color{blue}{a \cdot \left(\sqrt{{b_2}^{2} - a \cdot c} - b_2\right)}}\]
    10. Taylor expanded around inf 4.4

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -5.10985616674947893 \cdot 10^{57}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -2.57120366754749 \cdot 10^{-295}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(c, a, 0\right)}{a}}{\sqrt{{b_2}^{2} - a \cdot c} - b_2}\\ \mathbf{elif}\;b_2 \le 2.09453346119227227 \cdot 10^{90}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\frac{c}{b_2}, \frac{1}{2}, \frac{b_2}{a} \cdot -2\right)\\ \end{array}\]

Reproduce

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