Average Error: 33.6 → 7.8
Time: 25.4s
Precision: 64
\[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;b \le -3.8260933955440565 \cdot 10^{-16}:\\ \;\;\;\;-\frac{c}{b}\\ \mathbf{elif}\;b \le -1.0403213044374248 \cdot 10^{-202}:\\ \;\;\;\;\frac{c}{\frac{2 \cdot a}{\frac{a \cdot 4}{\sqrt{b \cdot b - \left(a \cdot 4\right) \cdot c} - b}}}\\ \mathbf{elif}\;b \le 4.738941069295542 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]
\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}
\begin{array}{l}
\mathbf{if}\;b \le -3.8260933955440565 \cdot 10^{-16}:\\
\;\;\;\;-\frac{c}{b}\\

\mathbf{elif}\;b \le -1.0403213044374248 \cdot 10^{-202}:\\
\;\;\;\;\frac{c}{\frac{2 \cdot a}{\frac{a \cdot 4}{\sqrt{b \cdot b - \left(a \cdot 4\right) \cdot c} - b}}}\\

\mathbf{elif}\;b \le 4.738941069295542 \cdot 10^{+124}:\\
\;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\

\mathbf{else}:\\
\;\;\;\;\frac{c}{b} - \frac{b}{a}\\

\end{array}
double f(double a, double b, double c) {
        double r3762992 = b;
        double r3762993 = -r3762992;
        double r3762994 = r3762992 * r3762992;
        double r3762995 = 4.0;
        double r3762996 = a;
        double r3762997 = c;
        double r3762998 = r3762996 * r3762997;
        double r3762999 = r3762995 * r3762998;
        double r3763000 = r3762994 - r3762999;
        double r3763001 = sqrt(r3763000);
        double r3763002 = r3762993 - r3763001;
        double r3763003 = 2.0;
        double r3763004 = r3763003 * r3762996;
        double r3763005 = r3763002 / r3763004;
        return r3763005;
}

double f(double a, double b, double c) {
        double r3763006 = b;
        double r3763007 = -3.8260933955440565e-16;
        bool r3763008 = r3763006 <= r3763007;
        double r3763009 = c;
        double r3763010 = r3763009 / r3763006;
        double r3763011 = -r3763010;
        double r3763012 = -1.0403213044374248e-202;
        bool r3763013 = r3763006 <= r3763012;
        double r3763014 = 2.0;
        double r3763015 = a;
        double r3763016 = r3763014 * r3763015;
        double r3763017 = 4.0;
        double r3763018 = r3763015 * r3763017;
        double r3763019 = r3763006 * r3763006;
        double r3763020 = r3763018 * r3763009;
        double r3763021 = r3763019 - r3763020;
        double r3763022 = sqrt(r3763021);
        double r3763023 = r3763022 - r3763006;
        double r3763024 = r3763018 / r3763023;
        double r3763025 = r3763016 / r3763024;
        double r3763026 = r3763009 / r3763025;
        double r3763027 = 4.738941069295542e+124;
        bool r3763028 = r3763006 <= r3763027;
        double r3763029 = -r3763006;
        double r3763030 = r3763009 * r3763015;
        double r3763031 = r3763017 * r3763030;
        double r3763032 = r3763019 - r3763031;
        double r3763033 = sqrt(r3763032);
        double r3763034 = r3763029 - r3763033;
        double r3763035 = r3763034 / r3763016;
        double r3763036 = r3763006 / r3763015;
        double r3763037 = r3763010 - r3763036;
        double r3763038 = r3763028 ? r3763035 : r3763037;
        double r3763039 = r3763013 ? r3763026 : r3763038;
        double r3763040 = r3763008 ? r3763011 : r3763039;
        return r3763040;
}

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

Target

Original33.6
Target20.8
Herbie7.8
\[\begin{array}{l} \mathbf{if}\;b \lt 0:\\ \;\;\;\;\frac{c}{a \cdot \frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\\ \end{array}\]

Derivation

  1. Split input into 4 regimes
  2. if b < -3.8260933955440565e-16

    1. Initial program 54.0

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Taylor expanded around -inf 6.5

      \[\leadsto \color{blue}{-1 \cdot \frac{c}{b}}\]
    3. Simplified6.5

      \[\leadsto \color{blue}{-\frac{c}{b}}\]

    if -3.8260933955440565e-16 < b < -1.0403213044374248e-202

    1. Initial program 28.6

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt28.6

      \[\leadsto \frac{\left(-b\right) - \sqrt{\color{blue}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    4. Applied sqrt-prod28.9

      \[\leadsto \frac{\left(-b\right) - \color{blue}{\sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    5. Using strategy rm
    6. Applied flip--29.0

      \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \left(\sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right) \cdot \left(\sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\right)}{\left(-b\right) + \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}}{2 \cdot a}\]
    7. Simplified17.7

      \[\leadsto \frac{\frac{\color{blue}{c \cdot \left(4 \cdot a\right)}}{\left(-b\right) + \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \sqrt{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}{2 \cdot a}\]
    8. Simplified17.5

      \[\leadsto \frac{\frac{c \cdot \left(4 \cdot a\right)}{\color{blue}{\sqrt{b \cdot b - c \cdot \left(4 \cdot a\right)} - b}}}{2 \cdot a}\]
    9. Using strategy rm
    10. Applied *-un-lft-identity17.5

      \[\leadsto \frac{\frac{c \cdot \left(4 \cdot a\right)}{\color{blue}{1 \cdot \left(\sqrt{b \cdot b - c \cdot \left(4 \cdot a\right)} - b\right)}}}{2 \cdot a}\]
    11. Applied times-frac13.0

      \[\leadsto \frac{\color{blue}{\frac{c}{1} \cdot \frac{4 \cdot a}{\sqrt{b \cdot b - c \cdot \left(4 \cdot a\right)} - b}}}{2 \cdot a}\]
    12. Applied associate-/l*7.9

      \[\leadsto \color{blue}{\frac{\frac{c}{1}}{\frac{2 \cdot a}{\frac{4 \cdot a}{\sqrt{b \cdot b - c \cdot \left(4 \cdot a\right)} - b}}}}\]

    if -1.0403213044374248e-202 < b < 4.738941069295542e+124

    1. Initial program 10.6

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]

    if 4.738941069295542e+124 < b

    1. Initial program 50.6

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Taylor expanded around inf 2.9

      \[\leadsto \color{blue}{\frac{c}{b} - \frac{b}{a}}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification7.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -3.8260933955440565 \cdot 10^{-16}:\\ \;\;\;\;-\frac{c}{b}\\ \mathbf{elif}\;b \le -1.0403213044374248 \cdot 10^{-202}:\\ \;\;\;\;\frac{c}{\frac{2 \cdot a}{\frac{a \cdot 4}{\sqrt{b \cdot b - \left(a \cdot 4\right) \cdot c} - b}}}\\ \mathbf{elif}\;b \le 4.738941069295542 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]

Reproduce

herbie shell --seed 2019162 
(FPCore (a b c)
  :name "quadm (p42, negative)"

  :herbie-target
  (if (< b 0) (/ c (* a (/ (+ (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))) (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))

  (/ (- (- b) (sqrt (- (* b b) (* 4 (* a c))))) (* 2 a)))