Average Error: 34.3 → 7.0
Time: 5.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.297522851756149307625287590446857172218 \cdot 10^{130}:\\ \;\;\;\;\frac{1}{2} \cdot \left(2 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\right)\\ \mathbf{elif}\;b \le -7.499564665356541230478133000064554936556 \cdot 10^{-290}:\\ \;\;\;\;\left(\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{1}{2 \cdot a}\\ \mathbf{elif}\;b \le 2.043334298601044940502096480059938459672 \cdot 10^{53}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{1}{\frac{\frac{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}{c}}{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{c}{b}\right)\\ \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.297522851756149307625287590446857172218 \cdot 10^{130}:\\
\;\;\;\;\frac{1}{2} \cdot \left(2 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\right)\\

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

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

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

\end{array}
double f(double a, double b, double c) {
        double r73590 = b;
        double r73591 = -r73590;
        double r73592 = r73590 * r73590;
        double r73593 = 4.0;
        double r73594 = a;
        double r73595 = c;
        double r73596 = r73594 * r73595;
        double r73597 = r73593 * r73596;
        double r73598 = r73592 - r73597;
        double r73599 = sqrt(r73598);
        double r73600 = r73591 + r73599;
        double r73601 = 2.0;
        double r73602 = r73601 * r73594;
        double r73603 = r73600 / r73602;
        return r73603;
}

double f(double a, double b, double c) {
        double r73604 = b;
        double r73605 = -4.2975228517561493e+130;
        bool r73606 = r73604 <= r73605;
        double r73607 = 1.0;
        double r73608 = 2.0;
        double r73609 = r73607 / r73608;
        double r73610 = c;
        double r73611 = r73610 / r73604;
        double r73612 = a;
        double r73613 = r73604 / r73612;
        double r73614 = r73611 - r73613;
        double r73615 = r73608 * r73614;
        double r73616 = r73609 * r73615;
        double r73617 = -7.499564665356541e-290;
        bool r73618 = r73604 <= r73617;
        double r73619 = -r73604;
        double r73620 = r73604 * r73604;
        double r73621 = 4.0;
        double r73622 = r73612 * r73610;
        double r73623 = r73621 * r73622;
        double r73624 = r73620 - r73623;
        double r73625 = sqrt(r73624);
        double r73626 = r73619 + r73625;
        double r73627 = r73608 * r73612;
        double r73628 = r73607 / r73627;
        double r73629 = r73626 * r73628;
        double r73630 = 2.043334298601045e+53;
        bool r73631 = r73604 <= r73630;
        double r73632 = r73619 - r73625;
        double r73633 = r73607 * r73632;
        double r73634 = r73633 / r73610;
        double r73635 = r73634 / r73621;
        double r73636 = r73607 / r73635;
        double r73637 = r73609 * r73636;
        double r73638 = -2.0;
        double r73639 = r73638 * r73611;
        double r73640 = r73609 * r73639;
        double r73641 = r73631 ? r73637 : r73640;
        double r73642 = r73618 ? r73629 : r73641;
        double r73643 = r73606 ? r73616 : r73642;
        return r73643;
}

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.3
Target20.6
Herbie7.0
\[\begin{array}{l} \mathbf{if}\;b \lt 0.0:\\ \;\;\;\;\frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{a \cdot \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.2975228517561493e+130

    1. Initial program 54.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 flip-+63.7

      \[\leadsto \frac{\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)}}}}{2 \cdot a}\]
    4. Simplified62.6

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

      \[\leadsto \frac{\frac{0 + 4 \cdot \left(a \cdot c\right)}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}}{2 \cdot a}\]
    7. Applied *-un-lft-identity62.6

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

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

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

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

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{4 \cdot \left(a \cdot c\right)}{a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}\]
    12. Using strategy rm
    13. Applied clear-num62.7

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

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

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(2 \cdot \frac{c}{b} - 2 \cdot \frac{b}{a}\right)}\]
    16. Simplified2.8

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

    if -4.2975228517561493e+130 < b < -7.499564665356541e-290

    1. Initial program 9.2

      \[\frac{\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\]
    2. Using strategy rm
    3. Applied div-inv9.4

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

    if -7.499564665356541e-290 < b < 2.043334298601045e+53

    1. Initial program 29.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 flip-+30.0

      \[\leadsto \frac{\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)}}}}{2 \cdot a}\]
    4. Simplified16.2

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

      \[\leadsto \frac{\frac{0 + 4 \cdot \left(a \cdot c\right)}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}}{2 \cdot a}\]
    7. Applied *-un-lft-identity16.2

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

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

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

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

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{4 \cdot \left(a \cdot c\right)}{a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}\]
    12. Using strategy rm
    13. Applied clear-num21.8

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

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

    if 2.043334298601045e+53 < b

    1. Initial program 57.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 flip-+57.4

      \[\leadsto \frac{\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)}}}}{2 \cdot a}\]
    4. Simplified29.4

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

      \[\leadsto \frac{\frac{0 + 4 \cdot \left(a \cdot c\right)}{\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}}{2 \cdot a}\]
    7. Applied *-un-lft-identity29.4

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

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

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

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

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\frac{4 \cdot \left(a \cdot c\right)}{a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}}\]
    12. Using strategy rm
    13. Applied clear-num29.1

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

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

      \[\leadsto \frac{1}{2} \cdot \color{blue}{\left(-2 \cdot \frac{c}{b}\right)}\]
  3. Recombined 4 regimes into one program.
  4. Final simplification7.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -4.297522851756149307625287590446857172218 \cdot 10^{130}:\\ \;\;\;\;\frac{1}{2} \cdot \left(2 \cdot \left(\frac{c}{b} - \frac{b}{a}\right)\right)\\ \mathbf{elif}\;b \le -7.499564665356541230478133000064554936556 \cdot 10^{-290}:\\ \;\;\;\;\left(\left(-b\right) + \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right) \cdot \frac{1}{2 \cdot a}\\ \mathbf{elif}\;b \le 2.043334298601044940502096480059938459672 \cdot 10^{53}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{1}{\frac{\frac{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}\right)}{c}}{4}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{c}{b}\right)\\ \end{array}\]

Reproduce

herbie shell --seed 2019362 
(FPCore (a b c)
  :name "quadp (p42, positive)"
  :precision binary64

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

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