Average Error: 33.2 → 10.1
Time: 22.3s
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 -4.600306435637794 \cdot 10^{+151}:\\ \;\;\;\;\frac{\frac{c}{b_2}}{2} - \frac{b_2}{\frac{a}{2}}\\ \mathbf{elif}\;b_2 \le 5.930445637544082 \cdot 10^{-86}:\\ \;\;\;\;\frac{\sqrt{\sqrt[3]{b_2 \cdot b_2 - c \cdot a}} \cdot \left|\sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right| - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{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 -4.600306435637794 \cdot 10^{+151}:\\
\;\;\;\;\frac{\frac{c}{b_2}}{2} - \frac{b_2}{\frac{a}{2}}\\

\mathbf{elif}\;b_2 \le 5.930445637544082 \cdot 10^{-86}:\\
\;\;\;\;\frac{\sqrt{\sqrt[3]{b_2 \cdot b_2 - c \cdot a}} \cdot \left|\sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right| - b_2}{a}\\

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

\end{array}
double f(double a, double b_2, double c) {
        double r789184 = b_2;
        double r789185 = -r789184;
        double r789186 = r789184 * r789184;
        double r789187 = a;
        double r789188 = c;
        double r789189 = r789187 * r789188;
        double r789190 = r789186 - r789189;
        double r789191 = sqrt(r789190);
        double r789192 = r789185 + r789191;
        double r789193 = r789192 / r789187;
        return r789193;
}

double f(double a, double b_2, double c) {
        double r789194 = b_2;
        double r789195 = -4.600306435637794e+151;
        bool r789196 = r789194 <= r789195;
        double r789197 = c;
        double r789198 = r789197 / r789194;
        double r789199 = 2.0;
        double r789200 = r789198 / r789199;
        double r789201 = a;
        double r789202 = r789201 / r789199;
        double r789203 = r789194 / r789202;
        double r789204 = r789200 - r789203;
        double r789205 = 5.930445637544082e-86;
        bool r789206 = r789194 <= r789205;
        double r789207 = r789194 * r789194;
        double r789208 = r789197 * r789201;
        double r789209 = r789207 - r789208;
        double r789210 = cbrt(r789209);
        double r789211 = sqrt(r789210);
        double r789212 = fabs(r789210);
        double r789213 = r789211 * r789212;
        double r789214 = r789213 - r789194;
        double r789215 = r789214 / r789201;
        double r789216 = -0.5;
        double r789217 = r789198 * r789216;
        double r789218 = r789206 ? r789215 : r789217;
        double r789219 = r789196 ? r789204 : r789218;
        return r789219;
}

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 < -4.600306435637794e+151

    1. Initial program 59.7

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

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

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

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

    if -4.600306435637794e+151 < b_2 < 5.930445637544082e-86

    1. Initial program 11.6

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

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

      \[\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}\]
    5. Applied sqrt-prod12.0

      \[\leadsto \frac{\color{blue}{\sqrt{\sqrt[3]{b_2 \cdot b_2 - a \cdot c} \cdot \sqrt[3]{b_2 \cdot b_2 - a \cdot c}} \cdot \sqrt{\sqrt[3]{b_2 \cdot b_2 - a \cdot c}}} - b_2}{a}\]
    6. Simplified12.0

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

    if 5.930445637544082e-86 < b_2

    1. Initial program 52.2

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -4.600306435637794 \cdot 10^{+151}:\\ \;\;\;\;\frac{\frac{c}{b_2}}{2} - \frac{b_2}{\frac{a}{2}}\\ \mathbf{elif}\;b_2 \le 5.930445637544082 \cdot 10^{-86}:\\ \;\;\;\;\frac{\sqrt{\sqrt[3]{b_2 \cdot b_2 - c \cdot a}} \cdot \left|\sqrt[3]{b_2 \cdot b_2 - c \cdot a}\right| - b_2}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b_2} \cdot \frac{-1}{2}\\ \end{array}\]

Reproduce

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