Average Error: 28.6 → 17.2
Time: 6.8s
Precision: 64
\[1.05367121277235087 \cdot 10^{-8} \lt a \lt 94906265.6242515594 \land 1.05367121277235087 \cdot 10^{-8} \lt b \lt 94906265.6242515594 \land 1.05367121277235087 \cdot 10^{-8} \lt c \lt 94906265.6242515594\]
\[\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 17.714642954298647:\\ \;\;\;\;\frac{\frac{\frac{\left({b}^{2} - 4 \cdot \left(a \cdot c\right)\right) - {b}^{2}}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + b}}{2}}{a}\\ \mathbf{else}:\\ \;\;\;\;-1 \cdot \frac{c}{b}\\ \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 17.714642954298647:\\
\;\;\;\;\frac{\frac{\frac{\left({b}^{2} - 4 \cdot \left(a \cdot c\right)\right) - {b}^{2}}{\sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} + b}}{2}}{a}\\

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

\end{array}
double f(double a, double b, double c) {
        double r24795 = b;
        double r24796 = -r24795;
        double r24797 = r24795 * r24795;
        double r24798 = 4.0;
        double r24799 = a;
        double r24800 = r24798 * r24799;
        double r24801 = c;
        double r24802 = r24800 * r24801;
        double r24803 = r24797 - r24802;
        double r24804 = sqrt(r24803);
        double r24805 = r24796 + r24804;
        double r24806 = 2.0;
        double r24807 = r24806 * r24799;
        double r24808 = r24805 / r24807;
        return r24808;
}

double f(double a, double b, double c) {
        double r24809 = b;
        double r24810 = 17.714642954298647;
        bool r24811 = r24809 <= r24810;
        double r24812 = 2.0;
        double r24813 = pow(r24809, r24812);
        double r24814 = 4.0;
        double r24815 = a;
        double r24816 = c;
        double r24817 = r24815 * r24816;
        double r24818 = r24814 * r24817;
        double r24819 = r24813 - r24818;
        double r24820 = r24819 - r24813;
        double r24821 = r24809 * r24809;
        double r24822 = r24814 * r24815;
        double r24823 = r24822 * r24816;
        double r24824 = r24821 - r24823;
        double r24825 = sqrt(r24824);
        double r24826 = r24825 + r24809;
        double r24827 = r24820 / r24826;
        double r24828 = 2.0;
        double r24829 = r24827 / r24828;
        double r24830 = r24829 / r24815;
        double r24831 = -1.0;
        double r24832 = r24816 / r24809;
        double r24833 = r24831 * r24832;
        double r24834 = r24811 ? r24830 : r24833;
        return r24834;
}

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 < 17.714642954298647

    1. Initial program 13.9

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

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

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

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

    if 17.714642954298647 < b

    1. Initial program 33.3

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

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

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

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

Reproduce

herbie shell --seed 2020046 
(FPCore (a b c)
  :name "Quadratic roots, narrow range"
  :precision binary64
  :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 a) c)))) (* 2 a)))