Average Error: 32.8 → 6.4
Time: 2.0m
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 -1.1214768270116103 \cdot 10^{+154}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\ \mathbf{elif}\;b \le 1.199441090208904 \cdot 10^{-250}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b}\\ \mathbf{elif}\;b \le 3.3389954009657566 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\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 -1.1214768270116103 \cdot 10^{+154}:\\
\;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\

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

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

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

\end{array}
double f(double a, double b, double c) {
        double r10947654 = b;
        double r10947655 = -r10947654;
        double r10947656 = r10947654 * r10947654;
        double r10947657 = 4.0;
        double r10947658 = a;
        double r10947659 = c;
        double r10947660 = r10947658 * r10947659;
        double r10947661 = r10947657 * r10947660;
        double r10947662 = r10947656 - r10947661;
        double r10947663 = sqrt(r10947662);
        double r10947664 = r10947655 - r10947663;
        double r10947665 = 2.0;
        double r10947666 = r10947665 * r10947658;
        double r10947667 = r10947664 / r10947666;
        return r10947667;
}

double f(double a, double b, double c) {
        double r10947668 = b;
        double r10947669 = -1.1214768270116103e+154;
        bool r10947670 = r10947668 <= r10947669;
        double r10947671 = 0.5;
        double r10947672 = 4.0;
        double r10947673 = c;
        double r10947674 = r10947672 * r10947673;
        double r10947675 = a;
        double r10947676 = r10947673 / r10947668;
        double r10947677 = r10947675 * r10947676;
        double r10947678 = r10947677 - r10947668;
        double r10947679 = 2.0;
        double r10947680 = r10947678 * r10947679;
        double r10947681 = r10947674 / r10947680;
        double r10947682 = r10947671 * r10947681;
        double r10947683 = 1.199441090208904e-250;
        bool r10947684 = r10947668 <= r10947683;
        double r10947685 = r10947668 * r10947668;
        double r10947686 = r10947675 * r10947673;
        double r10947687 = r10947672 * r10947686;
        double r10947688 = r10947685 - r10947687;
        double r10947689 = sqrt(r10947688);
        double r10947690 = r10947689 - r10947668;
        double r10947691 = r10947674 / r10947690;
        double r10947692 = r10947671 * r10947691;
        double r10947693 = 3.3389954009657566e+124;
        bool r10947694 = r10947668 <= r10947693;
        double r10947695 = -r10947668;
        double r10947696 = r10947695 - r10947689;
        double r10947697 = r10947679 * r10947675;
        double r10947698 = r10947696 / r10947697;
        double r10947699 = r10947668 / r10947675;
        double r10947700 = r10947676 - r10947699;
        double r10947701 = r10947694 ? r10947698 : r10947700;
        double r10947702 = r10947684 ? r10947692 : r10947701;
        double r10947703 = r10947670 ? r10947682 : r10947702;
        return r10947703;
}

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

Original32.8
Target20.1
Herbie6.4
\[\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 < -1.1214768270116103e+154

    1. Initial program 62.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--62.9

      \[\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. Simplified37.6

      \[\leadsto \frac{\frac{\color{blue}{\left(a \cdot c\right) \cdot 4}}{\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-identity37.6

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

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

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

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

      \[\leadsto \frac{1}{2} \cdot \frac{4 \cdot c}{\color{blue}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}\]
    11. Simplified1.5

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

    if -1.1214768270116103e+154 < b < 1.199441090208904e-250

    1. Initial program 32.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 flip--32.3

      \[\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.1

      \[\leadsto \frac{\frac{\color{blue}{\left(a \cdot c\right) \cdot 4}}{\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.1

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

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

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

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

    if 1.199441090208904e-250 < b < 3.3389954009657566e+124

    1. Initial program 7.8

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

    if 3.3389954009657566e+124 < b

    1. Initial program 50.5

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.1214768270116103 \cdot 10^{+154}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\left(a \cdot \frac{c}{b} - b\right) \cdot 2}\\ \mathbf{elif}\;b \le 1.199441090208904 \cdot 10^{-250}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{4 \cdot c}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b}\\ \mathbf{elif}\;b \le 3.3389954009657566 \cdot 10^{+124}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{2 \cdot a}\\ \mathbf{else}:\\ \;\;\;\;\frac{c}{b} - \frac{b}{a}\\ \end{array}\]

Reproduce

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