Average Error: 1.7 → 0.5
Time: 19.8s
Precision: 64
\[\frac{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}{a}\]
\[\begin{array}{l} \mathbf{if}\;b_2 \le 0.0019683837890625:\\ \;\;\;\;\frac{\frac{\left(b_2 + \left(-b_2\right)\right) \cdot \left(\left(-b_2\right) + \left(-b_2\right)\right) + c \cdot a}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\ \end{array}\]
\frac{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}{a}
\begin{array}{l}
\mathbf{if}\;b_2 \le 0.0019683837890625:\\
\;\;\;\;\frac{\frac{\left(b_2 + \left(-b_2\right)\right) \cdot \left(\left(-b_2\right) + \left(-b_2\right)\right) + c \cdot a}{\left(-b_2\right) + \sqrt{b_2 \cdot b_2 - a \cdot c}}}{a}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(-b_2\right) - \sqrt{b_2 \cdot b_2 - a \cdot c}}{a}\\

\end{array}
double f(double a, double b_2, double c) {
        double r1627601 = b_2;
        double r1627602 = -r1627601;
        double r1627603 = r1627601 * r1627601;
        double r1627604 = a;
        double r1627605 = c;
        double r1627606 = r1627604 * r1627605;
        double r1627607 = r1627603 - r1627606;
        double r1627608 = sqrt(r1627607);
        double r1627609 = r1627602 - r1627608;
        double r1627610 = r1627609 / r1627604;
        return r1627610;
}

double f(double a, double b_2, double c) {
        double r1627611 = b_2;
        double r1627612 = 0.0019683837890625;
        bool r1627613 = r1627611 <= r1627612;
        double r1627614 = -r1627611;
        double r1627615 = r1627611 + r1627614;
        double r1627616 = r1627614 + r1627614;
        double r1627617 = r1627615 * r1627616;
        double r1627618 = c;
        double r1627619 = a;
        double r1627620 = r1627618 * r1627619;
        double r1627621 = r1627617 + r1627620;
        double r1627622 = r1627611 * r1627611;
        double r1627623 = r1627619 * r1627618;
        double r1627624 = r1627622 - r1627623;
        double r1627625 = sqrt(r1627624);
        double r1627626 = r1627614 + r1627625;
        double r1627627 = r1627621 / r1627626;
        double r1627628 = r1627627 / r1627619;
        double r1627629 = r1627614 - r1627625;
        double r1627630 = r1627629 / r1627619;
        double r1627631 = r1627613 ? r1627628 : r1627630;
        return r1627631;
}

Error

Bits error versus a

Bits error versus b_2

Bits error versus c

Derivation

  1. Split input into 2 regimes
  2. if b_2 < 0.0019683837890625

    1. Initial program 3.0

      \[\frac{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}{a}\]
    2. Using strategy rm
    3. Applied p16-flip--2.7

      \[\leadsto \frac{\color{blue}{\left(\frac{\left(\left(\left(-b_2\right) \cdot \left(-b_2\right)\right) - \left(\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right) \cdot \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)\right)}{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}\right)}}{a}\]
    4. Using strategy rm
    5. Applied difference-of-squares3.1

      \[\leadsto \frac{\left(\frac{\color{blue}{\left(\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right) \cdot \left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)\right)}}{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}\right)}{a}\]
    6. Using strategy rm
    7. Applied associate-/l*3.3

      \[\leadsto \frac{\color{blue}{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}\right)}\right)}}{a}\]
    8. Using strategy rm
    9. Applied p16-flip--3.4

      \[\leadsto \frac{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\color{blue}{\left(\frac{\left(\left(\left(-b_2\right) \cdot \left(-b_2\right)\right) - \left(\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right) \cdot \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)\right)}{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}\right)}}\right)}\right)}{a}\]
    10. Applied associate-/r/3.4

      \[\leadsto \frac{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\color{blue}{\left(\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\left(\left(-b_2\right) \cdot \left(-b_2\right)\right) - \left(\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right) \cdot \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)\right)}\right) \cdot \left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)\right)}}\right)}{a}\]
    11. Applied associate-/r*3.4

      \[\leadsto \frac{\color{blue}{\left(\frac{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{\left(\left(\left(-b_2\right) \cdot \left(-b_2\right)\right) - \left(\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right) \cdot \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)\right)}\right)}\right)}{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}\right)}}{a}\]
    12. Simplified0.6

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

    if 0.0019683837890625 < b_2

    1. Initial program 0.4

      \[\frac{\left(\left(-b_2\right) - \left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)\right)}{a}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification0.5

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

Reproduce

herbie shell --seed 2019135 +o rules:numerics
(FPCore (a b_2 c)
  :name "quad2m (problem 3.2.1, negative)"
  (/.p16 (-.p16 (neg.p16 b_2) (sqrt.p16 (-.p16 (*.p16 b_2 b_2) (*.p16 a c)))) a))