Average Error: 34.2 → 10.7
Time: 5.1s
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 -7373025010395948:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -2.3690761110420922 \cdot 10^{-106}:\\ \;\;\;\;1 \cdot \frac{\frac{0 + a \cdot c}{\sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)} - b_2}}{a}\\ \mathbf{elif}\;b_2 \le -2.48477194923176723 \cdot 10^{-177}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 2445759453.4737968:\\ \;\;\;\;1 \cdot \frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}{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 -7373025010395948:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

\mathbf{elif}\;b_2 \le -2.48477194923176723 \cdot 10^{-177}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r16472 = b_2;
        double r16473 = -r16472;
        double r16474 = r16472 * r16472;
        double r16475 = a;
        double r16476 = c;
        double r16477 = r16475 * r16476;
        double r16478 = r16474 - r16477;
        double r16479 = sqrt(r16478);
        double r16480 = r16473 - r16479;
        double r16481 = r16480 / r16475;
        return r16481;
}

double f(double a, double b_2, double c) {
        double r16482 = b_2;
        double r16483 = -7373025010395948.0;
        bool r16484 = r16482 <= r16483;
        double r16485 = -0.5;
        double r16486 = c;
        double r16487 = r16486 / r16482;
        double r16488 = r16485 * r16487;
        double r16489 = -2.369076111042092e-106;
        bool r16490 = r16482 <= r16489;
        double r16491 = 1.0;
        double r16492 = 0.0;
        double r16493 = a;
        double r16494 = r16493 * r16486;
        double r16495 = r16492 + r16494;
        double r16496 = -r16494;
        double r16497 = fma(r16482, r16482, r16496);
        double r16498 = sqrt(r16497);
        double r16499 = r16498 - r16482;
        double r16500 = r16495 / r16499;
        double r16501 = r16500 / r16493;
        double r16502 = r16491 * r16501;
        double r16503 = -2.4847719492317672e-177;
        bool r16504 = r16482 <= r16503;
        double r16505 = 2445759453.473797;
        bool r16506 = r16482 <= r16505;
        double r16507 = -r16482;
        double r16508 = r16507 - r16498;
        double r16509 = r16508 / r16493;
        double r16510 = r16491 * r16509;
        double r16511 = -2.0;
        double r16512 = r16482 / r16493;
        double r16513 = r16511 * r16512;
        double r16514 = r16506 ? r16510 : r16513;
        double r16515 = r16504 ? r16488 : r16514;
        double r16516 = r16490 ? r16502 : r16515;
        double r16517 = r16484 ? r16488 : r16516;
        return r16517;
}

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 < -7373025010395948.0 or -2.369076111042092e-106 < b_2 < -2.4847719492317672e-177

    1. Initial program 52.1

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

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

    if -7373025010395948.0 < b_2 < -2.369076111042092e-106

    1. Initial program 38.6

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

      \[\leadsto \color{blue}{\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}\]
    4. Using strategy rm
    5. Applied fma-neg38.6

      \[\leadsto \frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{\color{blue}{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}}}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity38.6

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

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

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

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

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

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

      \[\leadsto 1 \cdot \color{blue}{\frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}{a}}\]
    14. Using strategy rm
    15. Applied flip--38.6

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

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

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

    if -2.4847719492317672e-177 < b_2 < 2445759453.473797

    1. Initial program 12.3

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

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

      \[\leadsto \frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{\color{blue}{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}}}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity12.4

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

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

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

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

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

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

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

    if 2445759453.473797 < b_2

    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 clear-num33.2

      \[\leadsto \color{blue}{\frac{1}{\frac{a}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}}\]
    4. Taylor expanded around 0 6.7

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -7373025010395948:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -2.3690761110420922 \cdot 10^{-106}:\\ \;\;\;\;1 \cdot \frac{\frac{0 + a \cdot c}{\sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)} - b_2}}{a}\\ \mathbf{elif}\;b_2 \le -2.48477194923176723 \cdot 10^{-177}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 2445759453.4737968:\\ \;\;\;\;1 \cdot \frac{\left(-b_2\right) - \sqrt{\mathsf{fma}\left(b_2, b_2, -a \cdot c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;-2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2020059 +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))