Average Error: 32.9 → 11.6
Time: 26.6s
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 -3.3791899056981596 \cdot 10^{+108}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\ \mathbf{elif}\;b_2 \le 6.671555931634925 \cdot 10^{+42}:\\ \;\;\;\;\frac{\sqrt{\left(\sqrt[3]{b_2 \cdot b_2 - c \cdot a} \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right) \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \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 -3.3791899056981596 \cdot 10^{+108}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\

\mathbf{elif}\;b_2 \le 6.671555931634925 \cdot 10^{+42}:\\
\;\;\;\;\frac{\sqrt{\left(\sqrt[3]{b_2 \cdot b_2 - c \cdot a} \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right) \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}} - b_2}{a}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r961812 = b_2;
        double r961813 = -r961812;
        double r961814 = r961812 * r961812;
        double r961815 = a;
        double r961816 = c;
        double r961817 = r961815 * r961816;
        double r961818 = r961814 - r961817;
        double r961819 = sqrt(r961818);
        double r961820 = r961813 + r961819;
        double r961821 = r961820 / r961815;
        return r961821;
}

double f(double a, double b_2, double c) {
        double r961822 = b_2;
        double r961823 = -3.3791899056981596e+108;
        bool r961824 = r961822 <= r961823;
        double r961825 = 0.5;
        double r961826 = c;
        double r961827 = r961826 / r961822;
        double r961828 = r961825 * r961827;
        double r961829 = a;
        double r961830 = r961822 / r961829;
        double r961831 = 2.0;
        double r961832 = r961830 * r961831;
        double r961833 = r961828 - r961832;
        double r961834 = 6.671555931634925e+42;
        bool r961835 = r961822 <= r961834;
        double r961836 = r961822 * r961822;
        double r961837 = r961826 * r961829;
        double r961838 = r961836 - r961837;
        double r961839 = cbrt(r961838);
        double r961840 = r961839 * r961839;
        double r961841 = r961840 * r961839;
        double r961842 = sqrt(r961841);
        double r961843 = r961842 - r961822;
        double r961844 = r961843 / r961829;
        double r961845 = -0.5;
        double r961846 = r961845 * r961827;
        double r961847 = r961835 ? r961844 : r961846;
        double r961848 = r961824 ? r961833 : r961847;
        return r961848;
}

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 3 regimes
  2. if b_2 < -3.3791899056981596e+108

    1. Initial program 45.7

      \[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified45.7

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}}\]
    3. Taylor expanded around -inf 3.0

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

    if -3.3791899056981596e+108 < b_2 < 6.671555931634925e+42

    1. Initial program 17.3

      \[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified17.3

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}}\]
    3. Using strategy rm
    4. Applied add-cube-cbrt17.8

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

    if 6.671555931634925e+42 < b_2

    1. Initial program 56.4

      \[\frac{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\]
    2. Simplified56.4

      \[\leadsto \color{blue}{\frac{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}{a}}\]
    3. Taylor expanded around inf 4.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -3.3791899056981596 \cdot 10^{+108}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - \frac{b_2}{a} \cdot 2\\ \mathbf{elif}\;b_2 \le 6.671555931634925 \cdot 10^{+42}:\\ \;\;\;\;\frac{\sqrt{\left(\sqrt[3]{b_2 \cdot b_2 - c \cdot a} \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right) \cdot \sqrt[3]{b_2 \cdot b_2 - c \cdot a}} - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019124 
(FPCore (a b_2 c)
  :name "quad2p (problem 3.2.1, positive)"
  (/ (+ (- b_2) (sqrt (- (* b_2 b_2) (* a c)))) a))