Average Error: 34.9 → 8.8
Time: 23.7s
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.18698358163757920529281413894268206376 \cdot 10^{50}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -3.2648782224884627498150304098269944547 \cdot 10^{-158}:\\ \;\;\;\;\left(\frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{c}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}\right) \cdot \frac{\frac{a}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{a}}\\ \mathbf{elif}\;b_2 \le 2.750597423682242910828949792302222725036 \cdot 10^{107}:\\ \;\;\;\;\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{1}{2}, \frac{c}{b_2}, -2 \cdot \frac{b_2}{a}\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 -2.18698358163757920529281413894268206376 \cdot 10^{50}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le -3.2648782224884627498150304098269944547 \cdot 10^{-158}:\\
\;\;\;\;\left(\frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{c}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}\right) \cdot \frac{\frac{a}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{a}}\\

\mathbf{elif}\;b_2 \le 2.750597423682242910828949792302222725036 \cdot 10^{107}:\\
\;\;\;\;\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{1}{2}, \frac{c}{b_2}, -2 \cdot \frac{b_2}{a}\right)\\

\end{array}
double f(double a, double b_2, double c) {
        double r37879 = b_2;
        double r37880 = -r37879;
        double r37881 = r37879 * r37879;
        double r37882 = a;
        double r37883 = c;
        double r37884 = r37882 * r37883;
        double r37885 = r37881 - r37884;
        double r37886 = sqrt(r37885);
        double r37887 = r37880 - r37886;
        double r37888 = r37887 / r37882;
        return r37888;
}

double f(double a, double b_2, double c) {
        double r37889 = b_2;
        double r37890 = -2.186983581637579e+50;
        bool r37891 = r37889 <= r37890;
        double r37892 = -0.5;
        double r37893 = c;
        double r37894 = r37893 / r37889;
        double r37895 = r37892 * r37894;
        double r37896 = -3.2648782224884627e-158;
        bool r37897 = r37889 <= r37896;
        double r37898 = 1.0;
        double r37899 = -r37893;
        double r37900 = a;
        double r37901 = r37889 * r37889;
        double r37902 = fma(r37899, r37900, r37901);
        double r37903 = sqrt(r37902);
        double r37904 = r37903 - r37889;
        double r37905 = sqrt(r37904);
        double r37906 = r37898 / r37905;
        double r37907 = cbrt(r37900);
        double r37908 = r37907 * r37907;
        double r37909 = r37906 / r37908;
        double r37910 = sqrt(r37905);
        double r37911 = r37893 / r37910;
        double r37912 = r37909 * r37911;
        double r37913 = r37900 / r37910;
        double r37914 = r37913 / r37907;
        double r37915 = r37912 * r37914;
        double r37916 = 2.750597423682243e+107;
        bool r37917 = r37889 <= r37916;
        double r37918 = -r37889;
        double r37919 = r37900 * r37893;
        double r37920 = r37901 - r37919;
        double r37921 = sqrt(r37920);
        double r37922 = r37918 - r37921;
        double r37923 = r37898 / r37900;
        double r37924 = r37922 * r37923;
        double r37925 = 0.5;
        double r37926 = -2.0;
        double r37927 = r37889 / r37900;
        double r37928 = r37926 * r37927;
        double r37929 = fma(r37925, r37894, r37928);
        double r37930 = r37917 ? r37924 : r37929;
        double r37931 = r37897 ? r37915 : r37930;
        double r37932 = r37891 ? r37895 : r37931;
        return r37932;
}

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.186983581637579e+50

    1. Initial program 58.2

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

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

    if -2.186983581637579e+50 < b_2 < -3.2648782224884627e-158

    1. Initial program 37.2

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

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

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

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

      \[\leadsto \frac{\frac{0 + c \cdot a}{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
    8. Applied add-sqr-sqrt18.6

      \[\leadsto \frac{\frac{0 + c \cdot a}{\color{blue}{\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}}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    9. Applied *-un-lft-identity18.6

      \[\leadsto \frac{\frac{\color{blue}{1 \cdot \left(0 + c \cdot a\right)}}{\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}}}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}\]
    10. Applied times-frac18.6

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

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

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

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

      \[\leadsto \frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{c \cdot a}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\color{blue}{\sqrt[3]{1} \cdot \sqrt[3]{a}}}\]
    16. Applied add-sqr-sqrt18.4

      \[\leadsto \frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{\frac{c \cdot a}{\sqrt{\color{blue}{\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}}}}}{\sqrt[3]{1} \cdot \sqrt[3]{a}}\]
    17. Applied sqrt-prod18.4

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

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

      \[\leadsto \frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \color{blue}{\left(\frac{\frac{c}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{1}} \cdot \frac{\frac{a}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{a}}\right)}\]
    20. Applied associate-*r*16.3

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

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

    if -3.2648782224884627e-158 < b_2 < 2.750597423682243e+107

    1. Initial program 11.2

      \[\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Using strategy rm
    3. Applied div-inv11.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.750597423682243e+107 < b_2

    1. Initial program 49.6

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

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
    3. Simplified3.0

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.18698358163757920529281413894268206376 \cdot 10^{50}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le -3.2648782224884627498150304098269944547 \cdot 10^{-158}:\\ \;\;\;\;\left(\frac{\frac{1}{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}{\sqrt[3]{a} \cdot \sqrt[3]{a}} \cdot \frac{c}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}\right) \cdot \frac{\frac{a}{\sqrt{\sqrt{\sqrt{\mathsf{fma}\left(-c, a, b_2 \cdot b_2\right)} - b_2}}}}{\sqrt[3]{a}}\\ \mathbf{elif}\;b_2 \le 2.750597423682242910828949792302222725036 \cdot 10^{107}:\\ \;\;\;\;\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{1}{2}, \frac{c}{b_2}, -2 \cdot \frac{b_2}{a}\right)\\ \end{array}\]

Reproduce

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