Average Error: 28.4 → 16.2
Time: 20.1s
Precision: 64
\[1.053671212772350866701172186984739043147 \cdot 10^{-8} \lt a \lt 94906265.62425155937671661376953125 \land 1.053671212772350866701172186984739043147 \cdot 10^{-8} \lt b \lt 94906265.62425155937671661376953125 \land 1.053671212772350866701172186984739043147 \cdot 10^{-8} \lt c \lt 94906265.62425155937671661376953125\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[\begin{array}{l} \mathbf{if}\;b \le 835.2343651472419878700748085975646972656:\\ \;\;\;\;\frac{\frac{\frac{\left(b \cdot b - 4 \cdot \left(c \cdot a\right)\right) - b \cdot b}{b + \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}}{2}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-2}{\sqrt{a}} \cdot \frac{\frac{\frac{c \cdot a}{b}}{2}}{\sqrt{a}}\\ \end{array}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\begin{array}{l}
\mathbf{if}\;b \le 835.2343651472419878700748085975646972656:\\
\;\;\;\;\frac{\frac{\frac{\left(b \cdot b - 4 \cdot \left(c \cdot a\right)\right) - b \cdot b}{b + \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}}{2}}{a}\\

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

\end{array}
double f(double a, double b, double c) {
        double r2317376 = b;
        double r2317377 = -r2317376;
        double r2317378 = r2317376 * r2317376;
        double r2317379 = 4.0;
        double r2317380 = a;
        double r2317381 = r2317379 * r2317380;
        double r2317382 = c;
        double r2317383 = r2317381 * r2317382;
        double r2317384 = r2317378 - r2317383;
        double r2317385 = sqrt(r2317384);
        double r2317386 = r2317377 + r2317385;
        double r2317387 = 2.0;
        double r2317388 = r2317387 * r2317380;
        double r2317389 = r2317386 / r2317388;
        return r2317389;
}

double f(double a, double b, double c) {
        double r2317390 = b;
        double r2317391 = 835.234365147242;
        bool r2317392 = r2317390 <= r2317391;
        double r2317393 = r2317390 * r2317390;
        double r2317394 = 4.0;
        double r2317395 = c;
        double r2317396 = a;
        double r2317397 = r2317395 * r2317396;
        double r2317398 = r2317394 * r2317397;
        double r2317399 = r2317393 - r2317398;
        double r2317400 = r2317399 - r2317393;
        double r2317401 = sqrt(r2317399);
        double r2317402 = r2317390 + r2317401;
        double r2317403 = r2317400 / r2317402;
        double r2317404 = 2.0;
        double r2317405 = r2317403 / r2317404;
        double r2317406 = r2317405 / r2317396;
        double r2317407 = -2.0;
        double r2317408 = sqrt(r2317396);
        double r2317409 = r2317407 / r2317408;
        double r2317410 = r2317397 / r2317390;
        double r2317411 = r2317410 / r2317404;
        double r2317412 = r2317411 / r2317408;
        double r2317413 = r2317409 * r2317412;
        double r2317414 = r2317392 ? r2317406 : r2317413;
        return r2317414;
}

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

Derivation

  1. Split input into 2 regimes
  2. if b < 835.234365147242

    1. Initial program 16.7

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

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

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

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

    if 835.234365147242 < b

    1. Initial program 36.1

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

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

      \[\leadsto \frac{\frac{\color{blue}{-2 \cdot \frac{a \cdot c}{b}}}{2}}{a}\]
    4. Using strategy rm
    5. Applied add-sqr-sqrt16.6

      \[\leadsto \frac{\frac{-2 \cdot \frac{a \cdot c}{b}}{2}}{\color{blue}{\sqrt{a} \cdot \sqrt{a}}}\]
    6. Applied *-un-lft-identity16.6

      \[\leadsto \frac{\frac{-2 \cdot \frac{a \cdot c}{b}}{\color{blue}{1 \cdot 2}}}{\sqrt{a} \cdot \sqrt{a}}\]
    7. Applied times-frac16.6

      \[\leadsto \frac{\color{blue}{\frac{-2}{1} \cdot \frac{\frac{a \cdot c}{b}}{2}}}{\sqrt{a} \cdot \sqrt{a}}\]
    8. Applied times-frac16.6

      \[\leadsto \color{blue}{\frac{\frac{-2}{1}}{\sqrt{a}} \cdot \frac{\frac{\frac{a \cdot c}{b}}{2}}{\sqrt{a}}}\]
    9. Simplified16.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;b \le 835.2343651472419878700748085975646972656:\\ \;\;\;\;\frac{\frac{\frac{\left(b \cdot b - 4 \cdot \left(c \cdot a\right)\right) - b \cdot b}{b + \sqrt{b \cdot b - 4 \cdot \left(c \cdot a\right)}}}{2}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{-2}{\sqrt{a}} \cdot \frac{\frac{\frac{c \cdot a}{b}}{2}}{\sqrt{a}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019171 
(FPCore (a b c)
  :name "Quadratic roots, narrow range"
  :pre (and (< 1.0536712127723509e-08 a 94906265.62425156) (< 1.0536712127723509e-08 b 94906265.62425156) (< 1.0536712127723509e-08 c 94906265.62425156))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 4.0 a) c)))) (* 2.0 a)))