Average Error: 43.1 → 0.2
Time: 19.1s
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}{a} \cdot \frac{4 \cdot c}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, b\right)}}{2}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
-\frac{\frac{a}{a} \cdot \frac{4 \cdot c}{\mathsf{fma}\left(\sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, \sqrt{\sqrt{\mathsf{fma}\left(-a, 4 \cdot c, b \cdot b\right)}}, b\right)}}{2}
double f(double a, double b, double c) {
        double r50146 = b;
        double r50147 = -r50146;
        double r50148 = r50146 * r50146;
        double r50149 = 4.0;
        double r50150 = a;
        double r50151 = r50149 * r50150;
        double r50152 = c;
        double r50153 = r50151 * r50152;
        double r50154 = r50148 - r50153;
        double r50155 = sqrt(r50154);
        double r50156 = r50147 + r50155;
        double r50157 = 2.0;
        double r50158 = r50157 * r50150;
        double r50159 = r50156 / r50158;
        return r50159;
}

double f(double a, double b, double c) {
        double r50160 = a;
        double r50161 = r50160 / r50160;
        double r50162 = 4.0;
        double r50163 = c;
        double r50164 = r50162 * r50163;
        double r50165 = -r50160;
        double r50166 = b;
        double r50167 = r50166 * r50166;
        double r50168 = fma(r50165, r50164, r50167);
        double r50169 = sqrt(r50168);
        double r50170 = sqrt(r50169);
        double r50171 = fma(r50170, r50170, r50166);
        double r50172 = r50164 / r50171;
        double r50173 = r50161 * r50172;
        double r50174 = 2.0;
        double r50175 = r50173 / r50174;
        double r50176 = -r50175;
        return r50176;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Derivation

  1. Initial program 43.1

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

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

    \[\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 add-sqr-sqrt0.5

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

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

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

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

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

    \[\leadsto \frac{\frac{\color{blue}{\frac{1}{1} \cdot \frac{\mathsf{fma}\left(-a \cdot 4, c, 0\right)}{\mathsf{fma}\left(\sqrt{b}, \sqrt{b}, \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}\right)}}}{1 \cdot a}}{2}\]
  15. 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)}{\mathsf{fma}\left(\sqrt{b}, \sqrt{b}, \sqrt{\mathsf{fma}\left(4, c \cdot \left(-a\right), b \cdot b\right)}\right)}}{a}}}{2}\]
  16. Simplified0.4

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

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

    \[\leadsto \frac{1 \cdot \left(\frac{a}{a} \cdot \frac{\left(-4\right) \cdot c}{\sqrt{\color{blue}{\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}\right)}{2}\]
  20. Applied sqrt-prod0.3

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

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

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

Reproduce

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