Average Error: 33.6 → 9.9
Time: 22.8s
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 -8.1855168042470635 \cdot 10^{-53}:\\ \;\;\;\;-\frac{c}{b}\\ \mathbf{elif}\;b \le 2.9356897939138002 \cdot 10^{+147}:\\ \;\;\;\;\frac{\left(-b\right) - \sqrt{b \cdot b - \left(c \cdot a\right) \cdot 4}}{a \cdot 2}\\ \mathbf{else}:\\ \;\;\;\;-\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 -8.1855168042470635 \cdot 10^{-53}:\\
\;\;\;\;-\frac{c}{b}\\

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

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

\end{array}
double f(double a, double b, double c) {
        double r3475952 = b;
        double r3475953 = -r3475952;
        double r3475954 = r3475952 * r3475952;
        double r3475955 = 4.0;
        double r3475956 = a;
        double r3475957 = c;
        double r3475958 = r3475956 * r3475957;
        double r3475959 = r3475955 * r3475958;
        double r3475960 = r3475954 - r3475959;
        double r3475961 = sqrt(r3475960);
        double r3475962 = r3475953 - r3475961;
        double r3475963 = 2.0;
        double r3475964 = r3475963 * r3475956;
        double r3475965 = r3475962 / r3475964;
        return r3475965;
}

double f(double a, double b, double c) {
        double r3475966 = b;
        double r3475967 = -8.1855168042470635e-53;
        bool r3475968 = r3475966 <= r3475967;
        double r3475969 = c;
        double r3475970 = r3475969 / r3475966;
        double r3475971 = -r3475970;
        double r3475972 = 2.9356897939138002e+147;
        bool r3475973 = r3475966 <= r3475972;
        double r3475974 = -r3475966;
        double r3475975 = r3475966 * r3475966;
        double r3475976 = a;
        double r3475977 = r3475969 * r3475976;
        double r3475978 = 4.0;
        double r3475979 = r3475977 * r3475978;
        double r3475980 = r3475975 - r3475979;
        double r3475981 = sqrt(r3475980);
        double r3475982 = r3475974 - r3475981;
        double r3475983 = 2.0;
        double r3475984 = r3475976 * r3475983;
        double r3475985 = r3475982 / r3475984;
        double r3475986 = r3475966 / r3475976;
        double r3475987 = -r3475986;
        double r3475988 = r3475973 ? r3475985 : r3475987;
        double r3475989 = r3475968 ? r3475971 : r3475988;
        return r3475989;
}

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.6
Target20.6
Herbie9.9
\[\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 3 regimes
  2. if b < -8.1855168042470635e-53

    1. Initial program 54.3

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

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

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

      \[\leadsto \color{blue}{-1 \cdot \frac{c}{b}}\]
    7. Simplified7.5

      \[\leadsto \color{blue}{-\frac{c}{b}}\]

    if -8.1855168042470635e-53 < b < 2.9356897939138002e+147

    1. Initial program 13.3

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

    if 2.9356897939138002e+147 < b

    1. Initial program 58.7

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

      \[\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. Simplified62.3

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

      \[\leadsto \frac{\frac{\left(b \cdot b - b \cdot b\right) + 4 \cdot \left(a \cdot c\right)}{\color{blue}{\sqrt{b \cdot b - 4 \cdot \left(a \cdot c\right)} - b}}}{2 \cdot a}\]
    6. Using strategy rm
    7. Applied div-inv62.3

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

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

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

      \[\leadsto \color{blue}{-1 \cdot \frac{b}{a}}\]
    11. Simplified2.2

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

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

Reproduce

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