Average Error: 19.9 → 6.5
Time: 19.4s
Precision: 64
\[\begin{array}{l} \mathbf{if}\;b \ge 0.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 -7.943482039519133630405882994043698433958 \cdot 10^{75}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\frac{2 \cdot c}{\sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)}}}{\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, -2 \cdot b\right)}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\ \end{array}\\ \mathbf{elif}\;b \le 2.620543139740264315993856298302188165155 \cdot 10^{84}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt{\mathsf{fma}\left(-c, 4 \cdot a, b \cdot b\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(-c, 4 \cdot a, b \cdot b\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, -2 \cdot b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{{\left(\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4}\right)}^{3}} + \left(-b\right)}{a \cdot 2}\\ \end{array}\]
\begin{array}{l}
\mathbf{if}\;b \ge 0.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 -7.943482039519133630405882994043698433958 \cdot 10^{75}:\\
\;\;\;\;\begin{array}{l}
\mathbf{if}\;b \ge 0.0:\\
\;\;\;\;\frac{\frac{2 \cdot c}{\sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)}}}{\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, -2 \cdot b\right)}}\\

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

\end{array}\\

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

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

\end{array}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r39961 = b;
        double r39962 = 0.0;
        bool r39963 = r39961 >= r39962;
        double r39964 = 2.0;
        double r39965 = c;
        double r39966 = r39964 * r39965;
        double r39967 = -r39961;
        double r39968 = r39961 * r39961;
        double r39969 = 4.0;
        double r39970 = a;
        double r39971 = r39969 * r39970;
        double r39972 = r39971 * r39965;
        double r39973 = r39968 - r39972;
        double r39974 = sqrt(r39973);
        double r39975 = r39967 - r39974;
        double r39976 = r39966 / r39975;
        double r39977 = r39967 + r39974;
        double r39978 = r39964 * r39970;
        double r39979 = r39977 / r39978;
        double r39980 = r39963 ? r39976 : r39979;
        return r39980;
}

double f(double a, double b, double c) {
        double r39981 = b;
        double r39982 = -7.943482039519134e+75;
        bool r39983 = r39981 <= r39982;
        double r39984 = 0.0;
        bool r39985 = r39981 >= r39984;
        double r39986 = 2.0;
        double r39987 = c;
        double r39988 = r39986 * r39987;
        double r39989 = a;
        double r39990 = r39987 * r39989;
        double r39991 = r39990 / r39981;
        double r39992 = -2.0;
        double r39993 = r39992 * r39981;
        double r39994 = fma(r39991, r39986, r39993);
        double r39995 = cbrt(r39994);
        double r39996 = r39995 * r39995;
        double r39997 = r39988 / r39996;
        double r39998 = r39981 / r39989;
        double r39999 = r39987 / r39998;
        double r40000 = fma(r39986, r39999, r39993);
        double r40001 = cbrt(r40000);
        double r40002 = r39997 / r40001;
        double r40003 = r39987 / r39981;
        double r40004 = r40003 - r39998;
        double r40005 = 1.0;
        double r40006 = r40004 * r40005;
        double r40007 = r39985 ? r40002 : r40006;
        double r40008 = 2.6205431397402643e+84;
        bool r40009 = r39981 <= r40008;
        double r40010 = -r39981;
        double r40011 = -r39987;
        double r40012 = 4.0;
        double r40013 = r40012 * r39989;
        double r40014 = r39981 * r39981;
        double r40015 = fma(r40011, r40013, r40014);
        double r40016 = sqrt(r40015);
        double r40017 = sqrt(r40016);
        double r40018 = r40017 * r40017;
        double r40019 = r40010 - r40018;
        double r40020 = r39988 / r40019;
        double r40021 = r40013 * r39987;
        double r40022 = r40014 - r40021;
        double r40023 = sqrt(r40022);
        double r40024 = r40023 + r40010;
        double r40025 = r39989 * r39986;
        double r40026 = r40024 / r40025;
        double r40027 = r39985 ? r40020 : r40026;
        double r40028 = r39988 / r40000;
        double r40029 = r39990 * r40012;
        double r40030 = r40014 - r40029;
        double r40031 = sqrt(r40030);
        double r40032 = 3.0;
        double r40033 = pow(r40031, r40032);
        double r40034 = cbrt(r40033);
        double r40035 = r40034 + r40010;
        double r40036 = r40035 / r40025;
        double r40037 = r39985 ? r40028 : r40036;
        double r40038 = r40009 ? r40027 : r40037;
        double r40039 = r39983 ? r40007 : r40038;
        return r40039;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Split input into 3 regimes
  2. if b < -7.943482039519134e+75

    1. Initial program 42.7

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

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}{2 \cdot a}\\ \end{array}\]
    5. Simplified4.3

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(-2, b, \left(\frac{a}{b} \cdot c\right) \cdot 2\right)}{2 \cdot a}\\ \end{array}\]
    6. Taylor expanded around 0 4.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\\ \mathbf{else}:\\ \;\;\;\;1 \cdot \frac{c}{b} - 1 \cdot \frac{b}{a}\\ \end{array}\]
    7. Simplified4.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\ \end{array}\]
    8. Using strategy rm
    9. Applied add-cube-cbrt4.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\ \end{array}\]
    10. Applied associate-/r*4.2

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\color{blue}{\frac{\frac{2 \cdot c}{\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}}}{\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\ \end{array}\]
    11. Simplified4.2

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

    if -7.943482039519134e+75 < b < 2.6205431397402643e+84

    1. Initial program 9.0

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\color{blue}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \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}\]
    4. Applied sqrt-prod9.1

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \color{blue}{\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}}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\\ \end{array}\]
    5. Simplified9.1

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \color{blue}{\sqrt{\sqrt{\mathsf{fma}\left(-c, 4 \cdot a, b \cdot b\right)}}} \cdot \sqrt{\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}\]
    6. Simplified9.1

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

    if 2.6205431397402643e+84 < b

    1. Initial program 27.7

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

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

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\color{blue}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}}\\ \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-cbrt-cube2.4

      \[\leadsto \begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, b \cdot -2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) + \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}\\ \end{array}\]
    6. Simplified2.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -7.943482039519133630405882994043698433958 \cdot 10^{75}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{\frac{2 \cdot c}{\sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)} \cdot \sqrt[3]{\mathsf{fma}\left(\frac{c \cdot a}{b}, 2, -2 \cdot b\right)}}}{\sqrt[3]{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, -2 \cdot b\right)}}\\ \mathbf{else}:\\ \;\;\;\;\left(\frac{c}{b} - \frac{b}{a}\right) \cdot 1\\ \end{array}\\ \mathbf{elif}\;b \le 2.620543139740264315993856298302188165155 \cdot 10^{84}:\\ \;\;\;\;\begin{array}{l} \mathbf{if}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\left(-b\right) - \sqrt{\sqrt{\mathsf{fma}\left(-c, 4 \cdot a, b \cdot b\right)}} \cdot \sqrt{\sqrt{\mathsf{fma}\left(-c, 4 \cdot a, b \cdot b\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + \left(-b\right)}{a \cdot 2}\\ \end{array}\\ \mathbf{elif}\;b \ge 0.0:\\ \;\;\;\;\frac{2 \cdot c}{\mathsf{fma}\left(2, \frac{c}{\frac{b}{a}}, -2 \cdot b\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{{\left(\sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4}\right)}^{3}} + \left(-b\right)}{a \cdot 2}\\ \end{array}\]

Reproduce

herbie shell --seed 2019194 +o rules:numerics
(FPCore (a b c)
  :name "jeff quadratic root 2"
  (if (>= b 0.0) (/ (* 2.0 c) (- (- b) (sqrt (- (* b b) (* (* 4.0 a) c))))) (/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a))))