Average Error: 44.0 → 43.4
Time: 51.4s
Precision: 64
\[1.1102230246251565 \cdot 10^{-16} \lt a \lt 9007199254740992.0 \land 1.1102230246251565 \cdot 10^{-16} \lt b \lt 9007199254740992.0 \land 1.1102230246251565 \cdot 10^{-16} \lt c \lt 9007199254740992.0\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[\frac{\frac{\frac{(\left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}{2}}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt[3]{\sqrt[3]{a}} \cdot \left(\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}\right)}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\frac{\frac{\frac{(\left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(c \cdot \left(a \cdot -4\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}{2}}{\sqrt[3]{a} \cdot \sqrt[3]{a}}}{\sqrt[3]{\sqrt[3]{a}} \cdot \left(\sqrt[3]{\sqrt[3]{a}} \cdot \sqrt[3]{\sqrt[3]{a}}\right)}
double f(double a, double b, double c) {
        double r3874798 = b;
        double r3874799 = -r3874798;
        double r3874800 = r3874798 * r3874798;
        double r3874801 = 4.0;
        double r3874802 = a;
        double r3874803 = r3874801 * r3874802;
        double r3874804 = c;
        double r3874805 = r3874803 * r3874804;
        double r3874806 = r3874800 - r3874805;
        double r3874807 = sqrt(r3874806);
        double r3874808 = r3874799 + r3874807;
        double r3874809 = 2.0;
        double r3874810 = r3874809 * r3874802;
        double r3874811 = r3874808 / r3874810;
        return r3874811;
}

double f(double a, double b, double c) {
        double r3874812 = c;
        double r3874813 = a;
        double r3874814 = -4.0;
        double r3874815 = r3874813 * r3874814;
        double r3874816 = b;
        double r3874817 = r3874816 * r3874816;
        double r3874818 = fma(r3874812, r3874815, r3874817);
        double r3874819 = sqrt(r3874818);
        double r3874820 = sqrt(r3874819);
        double r3874821 = -r3874816;
        double r3874822 = fma(r3874820, r3874820, r3874821);
        double r3874823 = 2.0;
        double r3874824 = r3874822 / r3874823;
        double r3874825 = cbrt(r3874813);
        double r3874826 = r3874825 * r3874825;
        double r3874827 = r3874824 / r3874826;
        double r3874828 = cbrt(r3874825);
        double r3874829 = r3874828 * r3874828;
        double r3874830 = r3874828 * r3874829;
        double r3874831 = r3874827 / r3874830;
        return r3874831;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 44.0

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

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

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

    \[\leadsto \frac{\frac{\color{blue}{(\left(\sqrt{\sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}}{2}}{a}\]
  6. Using strategy rm
  7. Applied add-cube-cbrt43.4

    \[\leadsto \frac{\frac{(\left(\sqrt{\sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\right) \cdot \left(\sqrt{\sqrt{(c \cdot \left(-4 \cdot a\right) + \left(b \cdot b\right))_*}}\right) + \left(-b\right))_*}{2}}{\color{blue}{\left(\sqrt[3]{a} \cdot \sqrt[3]{a}\right) \cdot \sqrt[3]{a}}}\]
  8. Applied associate-/r*43.4

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

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

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

Reproduce

herbie shell --seed 2019107 +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)))