Average Error: 34.1 → 6.7
Time: 27.3s
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 -4.463381827278506 \cdot 10^{+97}:\\ \;\;\;\;-\frac{c}{b}\\ \mathbf{elif}\;b \le -2.7394104193355045 \cdot 10^{-295}:\\ \;\;\;\;\frac{1}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b} \cdot \left(2 \cdot c\right)\\ \mathbf{elif}\;b \le 4.0392005370549217 \cdot 10^{+149}:\\ \;\;\;\;\frac{1}{\frac{a \cdot 2}{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}\\ \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 -4.463381827278506 \cdot 10^{+97}:\\
\;\;\;\;-\frac{c}{b}\\

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

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

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

\end{array}
double f(double a, double b, double c) {
        double r3356491 = b;
        double r3356492 = -r3356491;
        double r3356493 = r3356491 * r3356491;
        double r3356494 = 4.0;
        double r3356495 = a;
        double r3356496 = c;
        double r3356497 = r3356495 * r3356496;
        double r3356498 = r3356494 * r3356497;
        double r3356499 = r3356493 - r3356498;
        double r3356500 = sqrt(r3356499);
        double r3356501 = r3356492 - r3356500;
        double r3356502 = 2.0;
        double r3356503 = r3356502 * r3356495;
        double r3356504 = r3356501 / r3356503;
        return r3356504;
}

double f(double a, double b, double c) {
        double r3356505 = b;
        double r3356506 = -4.463381827278506e+97;
        bool r3356507 = r3356505 <= r3356506;
        double r3356508 = c;
        double r3356509 = r3356508 / r3356505;
        double r3356510 = -r3356509;
        double r3356511 = -2.7394104193355045e-295;
        bool r3356512 = r3356505 <= r3356511;
        double r3356513 = 1.0;
        double r3356514 = r3356505 * r3356505;
        double r3356515 = 4.0;
        double r3356516 = a;
        double r3356517 = r3356516 * r3356508;
        double r3356518 = r3356515 * r3356517;
        double r3356519 = r3356514 - r3356518;
        double r3356520 = sqrt(r3356519);
        double r3356521 = r3356520 - r3356505;
        double r3356522 = r3356513 / r3356521;
        double r3356523 = 2.0;
        double r3356524 = r3356523 * r3356508;
        double r3356525 = r3356522 * r3356524;
        double r3356526 = 4.0392005370549217e+149;
        bool r3356527 = r3356505 <= r3356526;
        double r3356528 = r3356516 * r3356523;
        double r3356529 = -r3356505;
        double r3356530 = r3356529 - r3356520;
        double r3356531 = r3356528 / r3356530;
        double r3356532 = r3356513 / r3356531;
        double r3356533 = r3356505 / r3356516;
        double r3356534 = r3356509 - r3356533;
        double r3356535 = r3356527 ? r3356532 : r3356534;
        double r3356536 = r3356512 ? r3356525 : r3356535;
        double r3356537 = r3356507 ? r3356510 : r3356536;
        return r3356537;
}

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

Original34.1
Target21.0
Herbie6.7
\[\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 < -4.463381827278506e+97

    1. Initial program 58.7

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

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

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

    if -4.463381827278506e+97 < b < -2.7394104193355045e-295

    1. Initial program 32.9

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity32.9

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

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

      \[\leadsto \frac{1}{\frac{2 \cdot a}{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}}}\]
    7. Applied associate-/r/33.1

      \[\leadsto \frac{1}{\color{blue}{\frac{2 \cdot a}{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}} \cdot \left(\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}\]
    8. Applied add-cube-cbrt33.1

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

      \[\leadsto \color{blue}{\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\frac{2 \cdot a}{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} \cdot \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}} \cdot \frac{\sqrt[3]{1}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}\]
    10. Simplified15.6

      \[\leadsto \color{blue}{\left(\left(0 - -4 \cdot \left(a \cdot c\right)\right) \cdot \frac{\frac{1}{2}}{a}\right)} \cdot \frac{\sqrt[3]{1}}{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}\]
    11. Simplified15.6

      \[\leadsto \left(\left(0 - -4 \cdot \left(a \cdot c\right)\right) \cdot \frac{\frac{1}{2}}{a}\right) \cdot \color{blue}{\frac{1}{\sqrt{b \cdot b - \left(a \cdot c\right) \cdot 4} - b}}\]
    12. Taylor expanded around inf 8.7

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

    if -2.7394104193355045e-295 < b < 4.0392005370549217e+149

    1. Initial program 9.4

      \[\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity9.4

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

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

    if 4.0392005370549217e+149 < b

    1. Initial program 59.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.463381827278506 \cdot 10^{+97}:\\ \;\;\;\;-\frac{c}{b}\\ \mathbf{elif}\;b \le -2.7394104193355045 \cdot 10^{-295}:\\ \;\;\;\;\frac{1}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b} \cdot \left(2 \cdot c\right)\\ \mathbf{elif}\;b \le 4.0392005370549217 \cdot 10^{+149}:\\ \;\;\;\;\frac{1}{\frac{a \cdot 2}{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]

Reproduce

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