Average Error: 19.4 → 7.5
Time: 38.6s
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.155933750194025 \cdot 10^{+21}:\\ \;\;\;\;\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{c \cdot 2}{\left(\left(\left(c \cdot \frac{a}{b}\right)\right) - b\right) \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \le 2.9270846490810628 \cdot 10^{+66}:\\ \;\;\;\;\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{c \cdot 2}{\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)} \cdot \left(\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)} \cdot \sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\right)}\\ \end{array}\\ \mathbf{elif}\;b \ge 0:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c \cdot 2}{2 \cdot \left(c \cdot \frac{a}{b} - b\right)}\\ \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.155933750194025 \cdot 10^{+21}:\\
\;\;\;\;\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{c \cdot 2}{\left(\left(\left(c \cdot \frac{a}{b}\right)\right) - b\right) \cdot 2}\\

\end{array}\\

\mathbf{elif}\;b \le 2.9270846490810628 \cdot 10^{+66}:\\
\;\;\;\;\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{c \cdot 2}{\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)} \cdot \left(\sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)} \cdot \sqrt[3]{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}\right)}\\

\end{array}\\

\mathbf{elif}\;b \ge 0:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\

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

\end{array}
double f(double a, double b, double c) {
        double r1176690 = b;
        double r1176691 = 0.0;
        bool r1176692 = r1176690 >= r1176691;
        double r1176693 = -r1176690;
        double r1176694 = r1176690 * r1176690;
        double r1176695 = 4.0;
        double r1176696 = a;
        double r1176697 = r1176695 * r1176696;
        double r1176698 = c;
        double r1176699 = r1176697 * r1176698;
        double r1176700 = r1176694 - r1176699;
        double r1176701 = sqrt(r1176700);
        double r1176702 = r1176693 - r1176701;
        double r1176703 = 2.0;
        double r1176704 = r1176703 * r1176696;
        double r1176705 = r1176702 / r1176704;
        double r1176706 = r1176703 * r1176698;
        double r1176707 = r1176693 + r1176701;
        double r1176708 = r1176706 / r1176707;
        double r1176709 = r1176692 ? r1176705 : r1176708;
        return r1176709;
}

double f(double a, double b, double c) {
        double r1176710 = b;
        double r1176711 = -5.155933750194025e+21;
        bool r1176712 = r1176710 <= r1176711;
        double r1176713 = 0.0;
        bool r1176714 = r1176710 >= r1176713;
        double r1176715 = -r1176710;
        double r1176716 = r1176710 * r1176710;
        double r1176717 = 4.0;
        double r1176718 = a;
        double r1176719 = r1176717 * r1176718;
        double r1176720 = c;
        double r1176721 = r1176719 * r1176720;
        double r1176722 = r1176716 - r1176721;
        double r1176723 = sqrt(r1176722);
        double r1176724 = r1176715 - r1176723;
        double r1176725 = 2.0;
        double r1176726 = r1176725 * r1176718;
        double r1176727 = r1176724 / r1176726;
        double r1176728 = r1176720 * r1176725;
        double r1176729 = r1176718 / r1176710;
        double r1176730 = r1176720 * r1176729;
        double r1176731 = /* ERROR: no posit support in C */;
        double r1176732 = /* ERROR: no posit support in C */;
        double r1176733 = r1176732 - r1176710;
        double r1176734 = r1176733 * r1176725;
        double r1176735 = r1176728 / r1176734;
        double r1176736 = r1176714 ? r1176727 : r1176735;
        double r1176737 = 2.9270846490810628e+66;
        bool r1176738 = r1176710 <= r1176737;
        double r1176739 = r1176723 + r1176715;
        double r1176740 = cbrt(r1176739);
        double r1176741 = r1176740 * r1176740;
        double r1176742 = r1176740 * r1176741;
        double r1176743 = r1176728 / r1176742;
        double r1176744 = r1176714 ? r1176727 : r1176743;
        double r1176745 = r1176720 / r1176710;
        double r1176746 = r1176710 / r1176718;
        double r1176747 = r1176745 - r1176746;
        double r1176748 = r1176730 - r1176710;
        double r1176749 = r1176725 * r1176748;
        double r1176750 = r1176728 / r1176749;
        double r1176751 = r1176714 ? r1176747 : r1176750;
        double r1176752 = r1176738 ? r1176744 : r1176751;
        double r1176753 = r1176712 ? r1176736 : r1176752;
        return r1176753;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Split input into 3 regimes
  2. if b < -5.155933750194025e+21

    1. Initial program 23.9

      \[\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 7.5

      \[\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. Simplified4.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}:\\ \;\;\;\;\color{blue}{\frac{2 \cdot c}{\left(\frac{a}{b} \cdot c - b\right) \cdot 2}}\\ \end{array}\]
    4. Using strategy rm
    5. Applied insert-posit164.8

      \[\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(\left(\left(\frac{a}{b} \cdot c\right)\right) - b\right) \cdot 2}\\ \end{array}\]

    if -5.155933750194025e+21 < b < 2.9270846490810628e+66

    1. Initial program 9.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. Using strategy rm
    3. Applied add-cube-cbrt9.8

      \[\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(\sqrt[3]{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}} \cdot \sqrt[3]{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right) \cdot \sqrt[3]{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}}\\ \end{array}\]

    if 2.9270846490810628e+66 < b

    1. Initial program 38.5

      \[\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 38.5

      \[\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. Simplified38.5

      \[\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 11.2

      \[\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. Simplified11.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\frac{\color{blue}{\left(\frac{a \cdot c}{b} - 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}\]
    6. Taylor expanded around 0 5.8

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0:\\ \;\;\;\;\color{blue}{\frac{c}{b} - \frac{b}{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 simplification7.5

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

Reproduce

herbie shell --seed 2019146 
(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)))))))