Average Error: 43.8 → 0.4
Time: 19.8s
Precision: 64
\[1.1102230246251565404236316680908203125 \cdot 10^{-16} \lt a \lt 9007199254740992 \land 1.1102230246251565404236316680908203125 \cdot 10^{-16} \lt b \lt 9007199254740992 \land 1.1102230246251565404236316680908203125 \cdot 10^{-16} \lt c \lt 9007199254740992\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[-\frac{\frac{a \cdot 4}{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)} + b} \cdot \frac{c}{a}}{2}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
-\frac{\frac{a \cdot 4}{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)} + b} \cdot \frac{c}{a}}{2}
double f(double a, double b, double c) {
        double r44147 = b;
        double r44148 = -r44147;
        double r44149 = r44147 * r44147;
        double r44150 = 4.0;
        double r44151 = a;
        double r44152 = r44150 * r44151;
        double r44153 = c;
        double r44154 = r44152 * r44153;
        double r44155 = r44149 - r44154;
        double r44156 = sqrt(r44155);
        double r44157 = r44148 + r44156;
        double r44158 = 2.0;
        double r44159 = r44158 * r44151;
        double r44160 = r44157 / r44159;
        return r44160;
}

double f(double a, double b, double c) {
        double r44161 = a;
        double r44162 = 4.0;
        double r44163 = r44161 * r44162;
        double r44164 = -r44161;
        double r44165 = c;
        double r44166 = r44162 * r44165;
        double r44167 = b;
        double r44168 = r44167 * r44167;
        double r44169 = fma(r44164, r44166, r44168);
        double r44170 = sqrt(r44169);
        double r44171 = r44170 + r44167;
        double r44172 = r44163 / r44171;
        double r44173 = r44165 / r44161;
        double r44174 = r44172 * r44173;
        double r44175 = 2.0;
        double r44176 = r44174 / r44175;
        double r44177 = -r44176;
        return r44177;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 43.8

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

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

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

    \[\leadsto \frac{\frac{\frac{\color{blue}{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}}{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)} + b}}{a}}{2}\]
  6. Simplified0.4

    \[\leadsto \frac{\frac{\frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{\color{blue}{b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}}}}{a}}{2}\]
  7. Using strategy rm
  8. Applied *-un-lft-identity0.4

    \[\leadsto \frac{\frac{\frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}}}{\color{blue}{1 \cdot a}}}{2}\]
  9. Applied *-un-lft-identity0.4

    \[\leadsto \frac{\frac{\frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{\color{blue}{1 \cdot \left(b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}\right)}}}{1 \cdot a}}{2}\]
  10. Applied *-un-lft-identity0.4

    \[\leadsto \frac{\frac{\frac{\color{blue}{1 \cdot \mathsf{fma}\left(-a \cdot 4, c, 0\right)}}{1 \cdot \left(b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}\right)}}{1 \cdot a}}{2}\]
  11. Applied times-frac0.4

    \[\leadsto \frac{\frac{\color{blue}{\frac{1}{1} \cdot \frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}}}}{1 \cdot a}}{2}\]
  12. Applied times-frac0.4

    \[\leadsto \frac{\color{blue}{\frac{\frac{1}{1}}{1} \cdot \frac{\frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}}}{a}}}{2}\]
  13. Simplified0.4

    \[\leadsto \frac{\color{blue}{1} \cdot \frac{\frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{b + \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}}}{a}}{2}\]
  14. Simplified0.4

    \[\leadsto \frac{1 \cdot \color{blue}{\frac{-a \cdot \left(4 \cdot c\right)}{a \cdot \left(b + \sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}\right)}}}{2}\]
  15. Using strategy rm
  16. Applied clear-num0.5

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

    \[\leadsto \frac{1 \cdot \frac{1}{\color{blue}{\frac{b + \sqrt{\mathsf{fma}\left(c, 4 \cdot \left(-a\right), b \cdot b\right)}}{-4 \cdot a} \cdot \frac{a}{c}}}}{2}\]
  18. Using strategy rm
  19. Applied add-cube-cbrt0.5

    \[\leadsto \frac{1 \cdot \frac{\color{blue}{\left(\sqrt[3]{1} \cdot \sqrt[3]{1}\right) \cdot \sqrt[3]{1}}}{\frac{b + \sqrt{\mathsf{fma}\left(c, 4 \cdot \left(-a\right), b \cdot b\right)}}{-4 \cdot a} \cdot \frac{a}{c}}}{2}\]
  20. Applied times-frac0.5

    \[\leadsto \frac{1 \cdot \color{blue}{\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\frac{b + \sqrt{\mathsf{fma}\left(c, 4 \cdot \left(-a\right), b \cdot b\right)}}{-4 \cdot a}} \cdot \frac{\sqrt[3]{1}}{\frac{a}{c}}\right)}}{2}\]
  21. Simplified0.5

    \[\leadsto \frac{1 \cdot \left(\color{blue}{\frac{1 \cdot \left(-4 \cdot a\right)}{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)} + b}} \cdot \frac{\sqrt[3]{1}}{\frac{a}{c}}\right)}{2}\]
  22. Simplified0.4

    \[\leadsto \frac{1 \cdot \left(\frac{1 \cdot \left(-4 \cdot a\right)}{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)} + b} \cdot \color{blue}{\frac{1 \cdot c}{a}}\right)}{2}\]
  23. Final simplification0.4

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

Reproduce

herbie shell --seed 2019179 +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.0 a) c)))) (* 2.0 a)))