Average Error: 19.4 → 8.3
Time: 6.5s
Precision: 64
\[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
\[\begin{array}{l} \mathbf{if}\;b \le -4.285271160992641813120516826275381392108 \cdot 10^{136}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - e^{\log \left(\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\\ \mathbf{elif}\;b \le -1.609290623087753495768254237988414450863 \cdot 10^{-284}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\\ \mathbf{elif}\;b \le 2.678238127073728805877873599258558355989 \cdot 10^{53}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot e^{\log \left(\sqrt[3]{\frac{b}{c}}\right)}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\

\end{array}
\begin{array}{l}
\mathbf{if}\;b \le -4.285271160992641813120516826275381392108 \cdot 10^{136}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - e^{\log \left(\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\

\end{array}\\

\mathbf{elif}\;b \le -1.609290623087753495768254237988414450863 \cdot 10^{-284}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\

\end{array}\\

\mathbf{elif}\;b \le 2.678238127073728805877873599258558355989 \cdot 10^{53}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot e^{\log \left(\sqrt[3]{\frac{b}{c}}\right)}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\

\end{array}\\

\mathbf{elif}\;b \ge 0.0:\\
\;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\

\end{array}
double f(double a, double b, double c) {
        double r51140 = b;
        double r51141 = 0.0;
        bool r51142 = r51140 >= r51141;
        double r51143 = -r51140;
        double r51144 = r51140 * r51140;
        double r51145 = 4.0;
        double r51146 = a;
        double r51147 = r51145 * r51146;
        double r51148 = c;
        double r51149 = r51147 * r51148;
        double r51150 = r51144 - r51149;
        double r51151 = sqrt(r51150);
        double r51152 = r51143 - r51151;
        double r51153 = 2.0;
        double r51154 = r51153 * r51146;
        double r51155 = r51152 / r51154;
        double r51156 = r51153 * r51148;
        double r51157 = r51143 + r51151;
        double r51158 = r51156 / r51157;
        double r51159 = r51142 ? r51155 : r51158;
        return r51159;
}

double f(double a, double b, double c) {
        double r51160 = b;
        double r51161 = -4.285271160992642e+136;
        bool r51162 = r51160 <= r51161;
        double r51163 = 0.0;
        bool r51164 = r51160 >= r51163;
        double r51165 = -r51160;
        double r51166 = r51160 * r51160;
        double r51167 = 4.0;
        double r51168 = a;
        double r51169 = r51167 * r51168;
        double r51170 = c;
        double r51171 = r51169 * r51170;
        double r51172 = r51166 - r51171;
        double r51173 = sqrt(r51172);
        double r51174 = log(r51173);
        double r51175 = exp(r51174);
        double r51176 = r51165 - r51175;
        double r51177 = 2.0;
        double r51178 = r51177 * r51168;
        double r51179 = r51176 / r51178;
        double r51180 = r51177 * r51170;
        double r51181 = cbrt(r51168);
        double r51182 = r51181 * r51181;
        double r51183 = r51160 / r51170;
        double r51184 = cbrt(r51183);
        double r51185 = r51184 * r51184;
        double r51186 = r51182 / r51185;
        double r51187 = r51181 / r51184;
        double r51188 = r51186 * r51187;
        double r51189 = r51177 * r51188;
        double r51190 = r51189 - r51160;
        double r51191 = r51165 + r51190;
        double r51192 = r51180 / r51191;
        double r51193 = r51164 ? r51179 : r51192;
        double r51194 = -1.6092906230877535e-284;
        bool r51195 = r51160 <= r51194;
        double r51196 = r51168 * r51170;
        double r51197 = r51196 / r51160;
        double r51198 = r51177 * r51197;
        double r51199 = r51160 - r51198;
        double r51200 = r51165 - r51199;
        double r51201 = r51200 / r51178;
        double r51202 = r51165 + r51173;
        double r51203 = r51180 / r51202;
        double r51204 = r51164 ? r51201 : r51203;
        double r51205 = 2.678238127073729e+53;
        bool r51206 = r51160 <= r51205;
        double r51207 = r51165 - r51173;
        double r51208 = r51207 / r51178;
        double r51209 = log(r51184);
        double r51210 = exp(r51209);
        double r51211 = r51184 * r51210;
        double r51212 = r51182 / r51211;
        double r51213 = r51212 * r51187;
        double r51214 = r51177 * r51213;
        double r51215 = r51214 - r51160;
        double r51216 = r51165 + r51215;
        double r51217 = r51180 / r51216;
        double r51218 = r51164 ? r51208 : r51217;
        double r51219 = r51206 ? r51218 : r51204;
        double r51220 = r51195 ? r51204 : r51219;
        double r51221 = r51162 ? r51193 : r51220;
        return r51221;
}

Error

Bits error versus a

Bits error versus b

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 < -4.285271160992642e+136

    1. Initial program 34.3

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Taylor expanded around -inf 5.9

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}}\\ \end{array}\]
    3. Using strategy rm
    4. Applied associate-/l*1.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a}{\frac{b}{c}} - b\right)}\\ \end{array}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt1.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a}{\left(\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}\right) \cdot \sqrt[3]{\frac{b}{c}}} - b\right)}\\ \end{array}\]
    7. Applied add-cube-cbrt1.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}{\left(\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}\right) \cdot \sqrt[3]{\frac{b}{c}}} - b\right)}\\ \end{array}\]
    8. Applied times-frac1.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\]
    9. Using strategy rm
    10. Applied add-exp-log1.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \color{blue}{e^{\log \left(\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\]

    if -4.285271160992642e+136 < b < -1.6092906230877535e-284 or 2.678238127073729e+53 < b

    1. Initial program 19.2

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Taylor expanded around inf 9.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \color{blue}{\left(b - 2 \cdot \frac{a \cdot c}{b}\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]

    if -1.6092906230877535e-284 < b < 2.678238127073729e+53

    1. Initial program 9.2

      \[\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]
    2. Taylor expanded around -inf 11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\left(-b\right) + \left(2 \cdot \frac{a \cdot c}{b} - b\right)}}\\ \end{array}\]
    3. Using strategy rm
    4. Applied associate-/l*11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a}{\frac{b}{c}} - b\right)}\\ \end{array}\]
    5. Using strategy rm
    6. Applied add-cube-cbrt11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{a}{\left(\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}\right) \cdot \sqrt[3]{\frac{b}{c}}} - b\right)}\\ \end{array}\]
    7. Applied add-cube-cbrt11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \frac{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}{\left(\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}\right) \cdot \sqrt[3]{\frac{b}{c}}} - b\right)}\\ \end{array}\]
    8. Applied times-frac11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\]
    9. Using strategy rm
    10. Applied add-exp-log11.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot e^{\log \left(\sqrt[3]{\frac{b}{c}}\right)}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\]
  3. Recombined 3 regimes into one program.
  4. Final simplification8.3

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.285271160992641813120516826275381392108 \cdot 10^{136}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - e^{\log \left(\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot \sqrt[3]{\frac{b}{c}}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\\ \mathbf{elif}\;b \le -1.609290623087753495768254237988414450863 \cdot 10^{-284}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\\ \mathbf{elif}\;b \le 2.678238127073728805877873599258558355989 \cdot 10^{53}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \left(2 \cdot \left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}} \cdot e^{\log \left(\sqrt[3]{\frac{b}{c}}\right)}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{\frac{b}{c}}}\right) - b\right)}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{\left(-b\right) - \left(b - 2 \cdot \frac{a \cdot c}{b}\right)}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019362 +o rules:numerics
(FPCore (a b c)
  :name "jeff quadratic root 1"
  :precision binary64
  (if (>= b 0.0) (/ (- (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)) (/ (* 2 c) (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))))))