Average Error: 34.3 → 8.5
Time: 7.5s
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.76415189671242326 \cdot 10^{-27}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 1.4667701057073822 \cdot 10^{-270}:\\ \;\;\;\;\frac{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 2.8046284917653458 \cdot 10^{91}:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 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.76415189671242326 \cdot 10^{-27}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

\mathbf{elif}\;b_2 \le 1.4667701057073822 \cdot 10^{-270}:\\
\;\;\;\;\frac{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r23940 = b_2;
        double r23941 = -r23940;
        double r23942 = r23940 * r23940;
        double r23943 = a;
        double r23944 = c;
        double r23945 = r23943 * r23944;
        double r23946 = r23942 - r23945;
        double r23947 = sqrt(r23946);
        double r23948 = r23941 - r23947;
        double r23949 = r23948 / r23943;
        return r23949;
}

double f(double a, double b_2, double c) {
        double r23950 = b_2;
        double r23951 = -2.7641518967124233e-27;
        bool r23952 = r23950 <= r23951;
        double r23953 = -0.5;
        double r23954 = c;
        double r23955 = r23954 / r23950;
        double r23956 = r23953 * r23955;
        double r23957 = 1.4667701057073822e-270;
        bool r23958 = r23950 <= r23957;
        double r23959 = a;
        double r23960 = r23950 * r23950;
        double r23961 = r23959 * r23954;
        double r23962 = r23960 - r23961;
        double r23963 = sqrt(r23962);
        double r23964 = r23963 - r23950;
        double r23965 = r23964 / r23954;
        double r23966 = r23959 / r23965;
        double r23967 = r23966 / r23959;
        double r23968 = 2.8046284917653458e+91;
        bool r23969 = r23950 <= r23968;
        double r23970 = -r23950;
        double r23971 = r23970 - r23963;
        double r23972 = r23971 / r23959;
        double r23973 = 0.5;
        double r23974 = r23973 * r23955;
        double r23975 = 2.0;
        double r23976 = r23950 / r23959;
        double r23977 = r23975 * r23976;
        double r23978 = r23974 - r23977;
        double r23979 = r23969 ? r23972 : r23978;
        double r23980 = r23958 ? r23967 : r23979;
        double r23981 = r23952 ? r23956 : r23980;
        return r23981;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 4 regimes
  2. if b_2 < -2.7641518967124233e-27

    1. Initial program 55.1

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

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

    if -2.7641518967124233e-27 < b_2 < 1.4667701057073822e-270

    1. Initial program 23.5

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

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

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

      \[\leadsto \frac{\frac{0 + a \cdot c}{\color{blue}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}}{a}\]
    6. Using strategy rm
    7. Applied *-un-lft-identity17.5

      \[\leadsto \frac{\frac{0 + a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{\color{blue}{1 \cdot a}}\]
    8. Applied associate-/r*17.5

      \[\leadsto \color{blue}{\frac{\frac{\frac{0 + a \cdot c}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}{1}}{a}}\]
    9. Simplified14.4

      \[\leadsto \frac{\color{blue}{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}}{a}\]

    if 1.4667701057073822e-270 < b_2 < 2.8046284917653458e+91

    1. Initial program 9.0

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

    if 2.8046284917653458e+91 < b_2

    1. Initial program 45.3

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

      \[\leadsto \color{blue}{\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification8.5

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.76415189671242326 \cdot 10^{-27}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 1.4667701057073822 \cdot 10^{-270}:\\ \;\;\;\;\frac{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 2.8046284917653458 \cdot 10^{91}:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2020035 
(FPCore (a b_2 c)
  :name "quad2m (problem 3.2.1, negative)"
  :precision binary64
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))