Average Error: 34.1 → 10.0
Time: 5.6s
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 -2.644409376808577592769878215530106196344 \cdot 10^{-69}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{c}{b}\right)\\ \mathbf{elif}\;b \le 2.542951486580225494391623071663800816645 \cdot 10^{93}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{b}{a}\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 -2.644409376808577592769878215530106196344 \cdot 10^{-69}:\\
\;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{c}{b}\right)\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r77491 = b;
        double r77492 = -r77491;
        double r77493 = r77491 * r77491;
        double r77494 = 4.0;
        double r77495 = a;
        double r77496 = c;
        double r77497 = r77495 * r77496;
        double r77498 = r77494 * r77497;
        double r77499 = r77493 - r77498;
        double r77500 = sqrt(r77499);
        double r77501 = r77492 - r77500;
        double r77502 = 2.0;
        double r77503 = r77502 * r77495;
        double r77504 = r77501 / r77503;
        return r77504;
}

double f(double a, double b, double c) {
        double r77505 = b;
        double r77506 = -2.6444093768085776e-69;
        bool r77507 = r77505 <= r77506;
        double r77508 = 1.0;
        double r77509 = 2.0;
        double r77510 = r77508 / r77509;
        double r77511 = -2.0;
        double r77512 = c;
        double r77513 = r77512 / r77505;
        double r77514 = r77511 * r77513;
        double r77515 = r77510 * r77514;
        double r77516 = 2.5429514865802255e+93;
        bool r77517 = r77505 <= r77516;
        double r77518 = -r77505;
        double r77519 = r77505 * r77505;
        double r77520 = 4.0;
        double r77521 = a;
        double r77522 = r77521 * r77512;
        double r77523 = r77520 * r77522;
        double r77524 = r77519 - r77523;
        double r77525 = sqrt(r77524);
        double r77526 = r77518 - r77525;
        double r77527 = r77526 / r77521;
        double r77528 = r77510 * r77527;
        double r77529 = r77505 / r77521;
        double r77530 = r77511 * r77529;
        double r77531 = r77510 * r77530;
        double r77532 = r77517 ? r77528 : r77531;
        double r77533 = r77507 ? r77515 : r77532;
        return r77533;
}

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
Target20.8
Herbie10.0
\[\begin{array}{l} \mathbf{if}\;b \lt 0.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 3 regimes
  2. if b < -2.6444093768085776e-69

    1. Initial program 53.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-identity53.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 times-frac53.4

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

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

    if -2.6444093768085776e-69 < b < 2.5429514865802255e+93

    1. Initial program 13.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-identity13.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 times-frac13.4

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

    if 2.5429514865802255e+93 < b

    1. Initial program 45.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 *-un-lft-identity45.2

      \[\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 times-frac45.2

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -2.644409376808577592769878215530106196344 \cdot 10^{-69}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{c}{b}\right)\\ \mathbf{elif}\;b \le 2.542951486580225494391623071663800816645 \cdot 10^{93}:\\ \;\;\;\;\frac{1}{2} \cdot \frac{\left(-b\right) - \sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{2} \cdot \left(-2 \cdot \frac{b}{a}\right)\\ \end{array}\]

Reproduce

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

  :herbie-target
  (if (< b 0.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)))