Average Error: 43.9 → 0.2
Time: 2.7m
Precision: 64
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[\frac{2 \cdot c}{(\left(-\sqrt{b}\right) \cdot \left(\sqrt{b}\right) + \left(-\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}\right))_*}\]
double f(double a, double b, double c) {
        double r12030641 = b;
        double r12030642 = -r12030641;
        double r12030643 = r12030641 * r12030641;
        double r12030644 = 4.0;
        double r12030645 = a;
        double r12030646 = r12030644 * r12030645;
        double r12030647 = c;
        double r12030648 = r12030646 * r12030647;
        double r12030649 = r12030643 - r12030648;
        double r12030650 = sqrt(r12030649);
        double r12030651 = r12030642 + r12030650;
        double r12030652 = 2.0;
        double r12030653 = r12030652 * r12030645;
        double r12030654 = r12030651 / r12030653;
        return r12030654;
}

double f(double a, double b, double c) {
        double r12030655 = 2.0;
        double r12030656 = c;
        double r12030657 = r12030655 * r12030656;
        double r12030658 = b;
        double r12030659 = sqrt(r12030658);
        double r12030660 = -r12030659;
        double r12030661 = a;
        double r12030662 = -4.0;
        double r12030663 = r12030661 * r12030662;
        double r12030664 = r12030658 * r12030658;
        double r12030665 = fma(r12030656, r12030663, r12030664);
        double r12030666 = sqrt(r12030665);
        double r12030667 = -r12030666;
        double r12030668 = fma(r12030660, r12030659, r12030667);
        double r12030669 = r12030657 / r12030668;
        return r12030669;
}

\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\frac{2 \cdot c}{(\left(-\sqrt{b}\right) \cdot \left(\sqrt{b}\right) + \left(-\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}\right))_*}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 43.9

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

    \[\leadsto \frac{\color{blue}{\frac{\left(-b\right) \cdot \left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}}{2 \cdot a}\]
  4. Applied associate-/l/43.9

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

    \[\leadsto \frac{\color{blue}{4 \cdot \left(c \cdot a\right)}}{\left(2 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}\]
  6. Using strategy rm
  7. Applied associate-/r*0.2

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

    \[\leadsto \frac{\frac{4 \cdot \left(c \cdot a\right)}{2 \cdot a}}{\color{blue}{\left(-b\right) - \sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}}\]
  9. Taylor expanded around 0 0.2

    \[\leadsto \frac{\color{blue}{2 \cdot c}}{\left(-b\right) - \sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\]
  10. Using strategy rm
  11. Applied add-sqr-sqrt0.3

    \[\leadsto \frac{2 \cdot c}{\left(-\color{blue}{\sqrt{b} \cdot \sqrt{b}}\right) - \sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\]
  12. Applied distribute-lft-neg-in0.3

    \[\leadsto \frac{2 \cdot c}{\color{blue}{\left(-\sqrt{b}\right) \cdot \sqrt{b}} - \sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\]
  13. Applied fma-neg0.2

    \[\leadsto \frac{2 \cdot c}{\color{blue}{(\left(-\sqrt{b}\right) \cdot \left(\sqrt{b}\right) + \left(-\sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}\right))_*}}\]
  14. Final simplification0.2

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

Reproduce

herbie shell --seed 2019101 +o rules:numerics
(FPCore (a b c)
  :name "Quadratic roots, medium range"
  :pre (and (< 1.1102230246251565e-16 a 9007199254740992.0) (< 1.1102230246251565e-16 b 9007199254740992.0) (< 1.1102230246251565e-16 c 9007199254740992.0))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))