Average Error: 19.6 → 6.6
Time: 25.8s
Precision: 64
\[\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \end{array}\]
\[\begin{array}{l} \mathbf{if}\;b \le -4.82289647433212 \cdot 10^{+153}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \left(\frac{a}{\frac{b}{c}} - b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{a}{b} \cdot c - b\right) \cdot 2}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \le 4.866803345215698 \cdot 10^{+83}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)} \cdot \sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}} \cdot \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} + \left(-b\right)}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \left(\frac{a}{\frac{b}{c}} - b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\sqrt{\left(b \cdot \left(b \cdot b\right)\right) \cdot \left(b \cdot \left(b \cdot b\right)\right) - \left(\left(c \cdot \left(a \cdot 4\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)}}{\sqrt{\left(b \cdot b\right) \cdot \left(b \cdot b\right) + \left(\left(b \cdot b\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right) + \left(c \cdot \left(a \cdot 4\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)\right)}} + \left(-b\right)}{a \cdot 2}\\ \end{array}\]
\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\\

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

\end{array}
\begin{array}{l}
\mathbf{if}\;b \le -4.82289647433212 \cdot 10^{+153}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{2 \cdot \left(\frac{a}{\frac{b}{c}} - b\right)}\\

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

\end{array}\\

\mathbf{elif}\;b \le 4.866803345215698 \cdot 10^{+83}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)} \cdot \sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}} \cdot \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}}}\\

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

\end{array}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r722097 = b;
        double r722098 = 0.0;
        bool r722099 = r722097 >= r722098;
        double r722100 = 2.0;
        double r722101 = c;
        double r722102 = r722100 * r722101;
        double r722103 = -r722097;
        double r722104 = r722097 * r722097;
        double r722105 = 4.0;
        double r722106 = a;
        double r722107 = r722105 * r722106;
        double r722108 = r722107 * r722101;
        double r722109 = r722104 - r722108;
        double r722110 = sqrt(r722109);
        double r722111 = r722103 - r722110;
        double r722112 = r722102 / r722111;
        double r722113 = r722103 + r722110;
        double r722114 = r722100 * r722106;
        double r722115 = r722113 / r722114;
        double r722116 = r722099 ? r722112 : r722115;
        return r722116;
}

double f(double a, double b, double c) {
        double r722117 = b;
        double r722118 = -4.82289647433212e+153;
        bool r722119 = r722117 <= r722118;
        double r722120 = 0.0;
        bool r722121 = r722117 >= r722120;
        double r722122 = 2.0;
        double r722123 = c;
        double r722124 = r722122 * r722123;
        double r722125 = a;
        double r722126 = r722117 / r722123;
        double r722127 = r722125 / r722126;
        double r722128 = r722127 - r722117;
        double r722129 = r722122 * r722128;
        double r722130 = r722124 / r722129;
        double r722131 = r722125 / r722117;
        double r722132 = r722131 * r722123;
        double r722133 = r722132 - r722117;
        double r722134 = r722133 * r722122;
        double r722135 = r722125 * r722122;
        double r722136 = r722134 / r722135;
        double r722137 = r722121 ? r722130 : r722136;
        double r722138 = 4.866803345215698e+83;
        bool r722139 = r722117 <= r722138;
        double r722140 = -r722117;
        double r722141 = r722117 * r722117;
        double r722142 = 4.0;
        double r722143 = r722125 * r722142;
        double r722144 = r722123 * r722143;
        double r722145 = r722141 - r722144;
        double r722146 = cbrt(r722145);
        double r722147 = r722146 * r722146;
        double r722148 = sqrt(r722147);
        double r722149 = sqrt(r722146);
        double r722150 = r722148 * r722149;
        double r722151 = r722140 - r722150;
        double r722152 = r722124 / r722151;
        double r722153 = sqrt(r722145);
        double r722154 = r722153 + r722140;
        double r722155 = r722154 / r722135;
        double r722156 = r722121 ? r722152 : r722155;
        double r722157 = r722117 * r722141;
        double r722158 = r722157 * r722157;
        double r722159 = r722144 * r722144;
        double r722160 = r722159 * r722144;
        double r722161 = r722158 - r722160;
        double r722162 = sqrt(r722161);
        double r722163 = r722141 * r722141;
        double r722164 = r722141 * r722144;
        double r722165 = r722164 + r722159;
        double r722166 = r722163 + r722165;
        double r722167 = sqrt(r722166);
        double r722168 = r722162 / r722167;
        double r722169 = r722168 + r722140;
        double r722170 = r722169 / r722135;
        double r722171 = r722121 ? r722130 : r722170;
        double r722172 = r722139 ? r722156 : r722171;
        double r722173 = r722119 ? r722137 : r722172;
        return r722173;
}

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.82289647433212e+153

    1. Initial program 60.9

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \end{array}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt60.9

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{2 \cdot a}\\ \end{array}\]
    8. Simplified2.5

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{a}{b} \cdot c - b\right) \cdot 2}{2 \cdot a}\\ \end{array}\]

    if -4.82289647433212e+153 < b < 4.866803345215698e+83

    1. Initial program 8.7

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

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

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

    if 4.866803345215698e+83 < b

    1. Initial program 28.8

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \end{array}\]
    4. Using strategy rm
    5. Applied flip3--2.9

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(\frac{a}{\frac{b}{c}} - b\right) \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \frac{\sqrt{{\left(b \cdot b\right)}^{3} - {\left(\left(4 \cdot a\right) \cdot c\right)}^{3}}}{\sqrt{\left(b \cdot b\right) \cdot \left(b \cdot b\right) + \left(\left(\left(4 \cdot a\right) \cdot c\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right) + \left(b \cdot b\right) \cdot \left(\left(4 \cdot a\right) \cdot c\right)\right)}}}{2 \cdot a}\\ \end{array}\]
    7. Simplified2.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.82289647433212 \cdot 10^{+153}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \left(\frac{a}{\frac{b}{c}} - b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\frac{a}{b} \cdot c - b\right) \cdot 2}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \le 4.866803345215698 \cdot 10^{+83}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)} \cdot \sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}} \cdot \sqrt{\sqrt[3]{b \cdot b - c \cdot \left(a \cdot 4\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - c \cdot \left(a \cdot 4\right)} + \left(-b\right)}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \ge 0:\\ \;\;\;\;\frac{2 \cdot c}{2 \cdot \left(\frac{a}{\frac{b}{c}} - b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\sqrt{\left(b \cdot \left(b \cdot b\right)\right) \cdot \left(b \cdot \left(b \cdot b\right)\right) - \left(\left(c \cdot \left(a \cdot 4\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)}}{\sqrt{\left(b \cdot b\right) \cdot \left(b \cdot b\right) + \left(\left(b \cdot b\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right) + \left(c \cdot \left(a \cdot 4\right)\right) \cdot \left(c \cdot \left(a \cdot 4\right)\right)\right)}} + \left(-b\right)}{a \cdot 2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019142 
(FPCore (a b c)
  :name "jeff quadratic root 2"
  (if (>= b 0) (/ (* 2 c) (- (- b) (sqrt (- (* b b) (* (* 4 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a))))