Average Error: 33.7 → 9.0
Time: 19.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 -2.847204280282031663920354805138023860461 \cdot 10^{48}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 5.513214641062073036943084078199526511409 \cdot 10^{-195}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\ \mathbf{elif}\;b_2 \le 2.85809468897048124259159652911465859912 \cdot 10^{111}:\\ \;\;\;\;\frac{\frac{1}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \left(a \cdot c\right)}{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 -2.847204280282031663920354805138023860461 \cdot 10^{48}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\

\mathbf{elif}\;b_2 \le 5.513214641062073036943084078199526511409 \cdot 10^{-195}:\\
\;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\

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

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

\end{array}
double f(double a, double b_2, double c) {
        double r29132 = b_2;
        double r29133 = -r29132;
        double r29134 = r29132 * r29132;
        double r29135 = a;
        double r29136 = c;
        double r29137 = r29135 * r29136;
        double r29138 = r29134 - r29137;
        double r29139 = sqrt(r29138);
        double r29140 = r29133 + r29139;
        double r29141 = r29140 / r29135;
        return r29141;
}

double f(double a, double b_2, double c) {
        double r29142 = b_2;
        double r29143 = -2.8472042802820317e+48;
        bool r29144 = r29142 <= r29143;
        double r29145 = 0.5;
        double r29146 = c;
        double r29147 = r29146 / r29142;
        double r29148 = r29145 * r29147;
        double r29149 = 2.0;
        double r29150 = a;
        double r29151 = r29142 / r29150;
        double r29152 = r29149 * r29151;
        double r29153 = r29148 - r29152;
        double r29154 = 5.513214641062073e-195;
        bool r29155 = r29142 <= r29154;
        double r29156 = 1.0;
        double r29157 = r29142 * r29142;
        double r29158 = r29150 * r29146;
        double r29159 = r29157 - r29158;
        double r29160 = sqrt(r29159);
        double r29161 = r29160 - r29142;
        double r29162 = r29150 / r29161;
        double r29163 = r29156 / r29162;
        double r29164 = 2.858094688970481e+111;
        bool r29165 = r29142 <= r29164;
        double r29166 = -r29142;
        double r29167 = r29166 - r29160;
        double r29168 = r29156 / r29167;
        double r29169 = r29168 * r29158;
        double r29170 = r29169 / r29150;
        double r29171 = -0.5;
        double r29172 = r29171 * r29147;
        double r29173 = r29165 ? r29170 : r29172;
        double r29174 = r29155 ? r29163 : r29173;
        double r29175 = r29144 ? r29153 : r29174;
        return r29175;
}

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.8472042802820317e+48

    1. Initial program 38.0

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

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

    if -2.8472042802820317e+48 < b_2 < 5.513214641062073e-195

    1. Initial program 11.1

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

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

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

    if 5.513214641062073e-195 < b_2 < 2.858094688970481e+111

    1. Initial program 36.2

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

      \[\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. Simplified15.4

      \[\leadsto \frac{\frac{\color{blue}{0 + a \cdot c}}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\]
    5. Using strategy rm
    6. Applied div-inv15.5

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

    if 2.858094688970481e+111 < b_2

    1. Initial program 59.6

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b_2 \le -2.847204280282031663920354805138023860461 \cdot 10^{48}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{c}{b_2} - 2 \cdot \frac{b_2}{a}\\ \mathbf{elif}\;b_2 \le 5.513214641062073036943084078199526511409 \cdot 10^{-195}:\\ \;\;\;\;\frac{1}{\frac{a}{\sqrt{b_2 \cdot b_2 - a \cdot c} - b_2}}\\ \mathbf{elif}\;b_2 \le 2.85809468897048124259159652911465859912 \cdot 10^{111}:\\ \;\;\;\;\frac{\frac{1}{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}} \cdot \left(a \cdot c\right)}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-1}{2} \cdot \frac{c}{b_2}\\ \end{array}\]

Reproduce

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