Average Error: 34.3 → 8.1
Time: 6.0s
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 -9.10146118799873429 \cdot 10^{58}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 1.3863010340691693 \cdot 10^{-261}:\\ \;\;\;\;\frac{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 6.51824979065928321 \cdot 10^{93}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{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 -9.10146118799873429 \cdot 10^{58}:\\
\;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\

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

\mathbf{elif}\;b_2 \le 6.51824979065928321 \cdot 10^{93}:\\
\;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{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 r79834 = b_2;
        double r79835 = -r79834;
        double r79836 = r79834 * r79834;
        double r79837 = a;
        double r79838 = c;
        double r79839 = r79837 * r79838;
        double r79840 = r79836 - r79839;
        double r79841 = sqrt(r79840);
        double r79842 = r79835 - r79841;
        double r79843 = r79842 / r79837;
        return r79843;
}

double f(double a, double b_2, double c) {
        double r79844 = b_2;
        double r79845 = -9.101461187998734e+58;
        bool r79846 = r79844 <= r79845;
        double r79847 = -0.5;
        double r79848 = c;
        double r79849 = r79848 / r79844;
        double r79850 = r79847 * r79849;
        double r79851 = 1.3863010340691693e-261;
        bool r79852 = r79844 <= r79851;
        double r79853 = a;
        double r79854 = r79844 * r79844;
        double r79855 = r79853 * r79848;
        double r79856 = r79854 - r79855;
        double r79857 = sqrt(r79856);
        double r79858 = r79857 - r79844;
        double r79859 = r79858 / r79848;
        double r79860 = r79853 / r79859;
        double r79861 = r79860 / r79853;
        double r79862 = 6.518249790659283e+93;
        bool r79863 = r79844 <= r79862;
        double r79864 = -r79844;
        double r79865 = r79864 - r79857;
        double r79866 = 1.0;
        double r79867 = r79866 / r79853;
        double r79868 = r79865 * r79867;
        double r79869 = 0.5;
        double r79870 = r79869 * r79849;
        double r79871 = 2.0;
        double r79872 = r79844 / r79853;
        double r79873 = r79871 * r79872;
        double r79874 = r79870 - r79873;
        double r79875 = r79863 ? r79868 : r79874;
        double r79876 = r79852 ? r79861 : r79875;
        double r79877 = r79846 ? r79850 : r79876;
        return r79877;
}

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 < -9.101461187998734e+58

    1. Initial program 57.7

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

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

    if -9.101461187998734e+58 < b_2 < 1.3863010340691693e-261

    1. Initial program 29.5

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

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

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

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

      \[\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*16.7

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

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

    if 1.3863010340691693e-261 < b_2 < 6.518249790659283e+93

    1. Initial program 8.0

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

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

    if 6.518249790659283e+93 < b_2

    1. Initial program 46.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -9.10146118799873429 \cdot 10^{58}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \mathbf{elif}\;b_2 \le 1.3863010340691693 \cdot 10^{-261}:\\ \;\;\;\;\frac{\frac{a}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{c}}}{a}\\ \mathbf{elif}\;b_2 \le 6.51824979065928321 \cdot 10^{93}:\\ \;\;\;\;\left(\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}\right) \cdot \frac{1}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2020027 
(FPCore (a b_2 c)
  :name "NMSE problem 3.2.1"
  :precision binary64
  (/ (- (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))