Average Error: 19.2 → 6.5
Time: 1.3m
Precision: 64
\[\begin{array}{l} \mathbf{if}\;b \ge 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 -5.148407540792454 \cdot 10^{+110}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt[3]{\sqrt{b \cdot b + \left(-4 \cdot a\right) \cdot c} \cdot \left(b \cdot b + \left(-4 \cdot a\right) \cdot c\right)}}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\left(\left(c \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{b}}\right) \cdot \frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{b} \cdot \sqrt[3]{b}} - b\right) \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \le 1.6529445176198465 \cdot 10^{+100}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\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}}}\\ \end{array}\\ \mathbf{elif}\;b \ge 0:\\ \;\;\;\;\frac{\left(c \cdot \frac{a}{b} - b\right) \cdot 2}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\left(c \cdot \frac{a}{b} - b\right) \cdot 2}\\ \end{array}\]
\begin{array}{l}
\mathbf{if}\;b \ge 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 -5.148407540792454 \cdot 10^{+110}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt[3]{\sqrt{b \cdot b + \left(-4 \cdot a\right) \cdot c} \cdot \left(b \cdot b + \left(-4 \cdot a\right) \cdot c\right)}}{a \cdot 2}\\

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

\end{array}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{c \cdot 2}{\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}}}\\

\end{array}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r1557592 = b;
        double r1557593 = 0.0;
        bool r1557594 = r1557592 >= r1557593;
        double r1557595 = -r1557592;
        double r1557596 = r1557592 * r1557592;
        double r1557597 = 4.0;
        double r1557598 = a;
        double r1557599 = r1557597 * r1557598;
        double r1557600 = c;
        double r1557601 = r1557599 * r1557600;
        double r1557602 = r1557596 - r1557601;
        double r1557603 = sqrt(r1557602);
        double r1557604 = r1557595 - r1557603;
        double r1557605 = 2.0;
        double r1557606 = r1557605 * r1557598;
        double r1557607 = r1557604 / r1557606;
        double r1557608 = r1557605 * r1557600;
        double r1557609 = r1557595 + r1557603;
        double r1557610 = r1557608 / r1557609;
        double r1557611 = r1557594 ? r1557607 : r1557610;
        return r1557611;
}

double f(double a, double b, double c) {
        double r1557612 = b;
        double r1557613 = -5.148407540792454e+110;
        bool r1557614 = r1557612 <= r1557613;
        double r1557615 = 0.0;
        bool r1557616 = r1557612 >= r1557615;
        double r1557617 = -r1557612;
        double r1557618 = r1557612 * r1557612;
        double r1557619 = -4.0;
        double r1557620 = a;
        double r1557621 = r1557619 * r1557620;
        double r1557622 = c;
        double r1557623 = r1557621 * r1557622;
        double r1557624 = r1557618 + r1557623;
        double r1557625 = sqrt(r1557624);
        double r1557626 = r1557625 * r1557624;
        double r1557627 = cbrt(r1557626);
        double r1557628 = r1557617 - r1557627;
        double r1557629 = 2.0;
        double r1557630 = r1557620 * r1557629;
        double r1557631 = r1557628 / r1557630;
        double r1557632 = r1557622 * r1557629;
        double r1557633 = cbrt(r1557620);
        double r1557634 = cbrt(r1557612);
        double r1557635 = r1557633 / r1557634;
        double r1557636 = r1557622 * r1557635;
        double r1557637 = r1557633 * r1557633;
        double r1557638 = r1557634 * r1557634;
        double r1557639 = r1557637 / r1557638;
        double r1557640 = r1557636 * r1557639;
        double r1557641 = r1557640 - r1557612;
        double r1557642 = r1557641 * r1557629;
        double r1557643 = r1557632 / r1557642;
        double r1557644 = r1557616 ? r1557631 : r1557643;
        double r1557645 = 1.6529445176198465e+100;
        bool r1557646 = r1557612 <= r1557645;
        double r1557647 = 4.0;
        double r1557648 = r1557647 * r1557620;
        double r1557649 = r1557648 * r1557622;
        double r1557650 = r1557618 - r1557649;
        double r1557651 = sqrt(r1557650);
        double r1557652 = r1557617 - r1557651;
        double r1557653 = r1557652 / r1557630;
        double r1557654 = sqrt(r1557651);
        double r1557655 = r1557654 * r1557654;
        double r1557656 = r1557617 + r1557655;
        double r1557657 = r1557632 / r1557656;
        double r1557658 = r1557616 ? r1557653 : r1557657;
        double r1557659 = r1557620 / r1557612;
        double r1557660 = r1557622 * r1557659;
        double r1557661 = r1557660 - r1557612;
        double r1557662 = r1557661 * r1557629;
        double r1557663 = r1557662 / r1557630;
        double r1557664 = r1557632 / r1557662;
        double r1557665 = r1557616 ? r1557663 : r1557664;
        double r1557666 = r1557646 ? r1557658 : r1557665;
        double r1557667 = r1557614 ? r1557644 : r1557666;
        return r1557667;
}

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 < -5.148407540792454e+110

    1. Initial program 31.4

      \[\begin{array}{l} \mathbf{if}\;b \ge 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 6.1

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 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(\frac{a}{\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \sqrt[3]{b}} \cdot c - b\right) \cdot 2}\\ \end{array}\]
    6. Applied add-cube-cbrt2.4

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 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(\frac{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}{\left(\sqrt[3]{b} \cdot \sqrt[3]{b}\right) \cdot \sqrt[3]{b}} \cdot c - b\right) \cdot 2}\\ \end{array}\]
    7. Applied times-frac2.4

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 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(\left(\frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{b} \cdot \sqrt[3]{b}} \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{b}}\right) \cdot c - b\right) \cdot 2}\\ \end{array}\]
    8. Applied associate-*l*2.4

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

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

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

    if -5.148407540792454e+110 < b < 1.6529445176198465e+100

    1. Initial program 8.6

      \[\begin{array}{l} \mathbf{if}\;b \ge 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. Using strategy rm
    3. Applied add-sqr-sqrt8.6

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 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)} + \sqrt{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}\\ \end{array}\]
    4. Applied sqrt-prod8.7

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 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) + \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}}}}\\ \end{array}\]

    if 1.6529445176198465e+100 < b

    1. Initial program 44.2

      \[\begin{array}{l} \mathbf{if}\;b \ge 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 44.2

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -5.148407540792454 \cdot 10^{+110}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt[3]{\sqrt{b \cdot b + \left(-4 \cdot a\right) \cdot c} \cdot \left(b \cdot b + \left(-4 \cdot a\right) \cdot c\right)}}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\left(\left(c \cdot \frac{\sqrt[3]{a}}{\sqrt[3]{b}}\right) \cdot \frac{\sqrt[3]{a} \cdot \sqrt[3]{a}}{\sqrt[3]{b} \cdot \sqrt[3]{b}} - b\right) \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \le 1.6529445176198465 \cdot 10^{+100}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\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}}}\\ \end{array}\\ \mathbf{elif}\;b \ge 0:\\ \;\;\;\;\frac{\left(c \cdot \frac{a}{b} - b\right) \cdot 2}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{\left(c \cdot \frac{a}{b} - b\right) \cdot 2}\\ \end{array}\]

Reproduce

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