Average Error: 33.4 → 14.0
Time: 20.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 -1.178432289663324 \cdot 10^{+129}:\\ \;\;\;\;\frac{\frac{\left(\frac{c}{\frac{b}{a}} - b\right) \cdot 2}{a}}{2}\\ \mathbf{elif}\;b \le 2.2927953806734678 \cdot 10^{-60}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b + \left(-4 \cdot a\right) \cdot c} - b}{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{c \cdot a}{b} \cdot -2}{a}}{2}\\ \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.178432289663324 \cdot 10^{+129}:\\
\;\;\;\;\frac{\frac{\left(\frac{c}{\frac{b}{a}} - b\right) \cdot 2}{a}}{2}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r1334214 = b;
        double r1334215 = -r1334214;
        double r1334216 = r1334214 * r1334214;
        double r1334217 = 4.0;
        double r1334218 = a;
        double r1334219 = c;
        double r1334220 = r1334218 * r1334219;
        double r1334221 = r1334217 * r1334220;
        double r1334222 = r1334216 - r1334221;
        double r1334223 = sqrt(r1334222);
        double r1334224 = r1334215 + r1334223;
        double r1334225 = 2.0;
        double r1334226 = r1334225 * r1334218;
        double r1334227 = r1334224 / r1334226;
        return r1334227;
}

double f(double a, double b, double c) {
        double r1334228 = b;
        double r1334229 = -1.178432289663324e+129;
        bool r1334230 = r1334228 <= r1334229;
        double r1334231 = c;
        double r1334232 = a;
        double r1334233 = r1334228 / r1334232;
        double r1334234 = r1334231 / r1334233;
        double r1334235 = r1334234 - r1334228;
        double r1334236 = 2.0;
        double r1334237 = r1334235 * r1334236;
        double r1334238 = r1334237 / r1334232;
        double r1334239 = r1334238 / r1334236;
        double r1334240 = 2.2927953806734678e-60;
        bool r1334241 = r1334228 <= r1334240;
        double r1334242 = r1334228 * r1334228;
        double r1334243 = -4.0;
        double r1334244 = r1334243 * r1334232;
        double r1334245 = r1334244 * r1334231;
        double r1334246 = r1334242 + r1334245;
        double r1334247 = sqrt(r1334246);
        double r1334248 = r1334247 - r1334228;
        double r1334249 = r1334248 / r1334232;
        double r1334250 = r1334249 / r1334236;
        double r1334251 = r1334231 * r1334232;
        double r1334252 = r1334251 / r1334228;
        double r1334253 = -2.0;
        double r1334254 = r1334252 * r1334253;
        double r1334255 = r1334254 / r1334232;
        double r1334256 = r1334255 / r1334236;
        double r1334257 = r1334241 ? r1334250 : r1334256;
        double r1334258 = r1334230 ? r1334239 : r1334257;
        return r1334258;
}

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.4
Target20.6
Herbie14.0
\[\begin{array}{l} \mathbf{if}\;b \lt 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 3 regimes
  2. if b < -1.178432289663324e+129

    1. Initial program 52.3

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

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

      \[\leadsto \frac{\frac{\color{blue}{2 \cdot \frac{a \cdot c}{b} - 2 \cdot b}}{a}}{2}\]
    4. Simplified2.7

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

    if -1.178432289663324e+129 < b < 2.2927953806734678e-60

    1. Initial program 13.2

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

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

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

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

    if 2.2927953806734678e-60 < b

    1. Initial program 52.8

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le -1.178432289663324 \cdot 10^{+129}:\\ \;\;\;\;\frac{\frac{\left(\frac{c}{\frac{b}{a}} - b\right) \cdot 2}{a}}{2}\\ \mathbf{elif}\;b \le 2.2927953806734678 \cdot 10^{-60}:\\ \;\;\;\;\frac{\frac{\sqrt{b \cdot b + \left(-4 \cdot a\right) \cdot c} - b}{a}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{c \cdot a}{b} \cdot -2}{a}}{2}\\ \end{array}\]

Reproduce

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

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