Average Error: 43.7 → 0.4
Time: 5.6s
Precision: 64
\[1.11022 \cdot 10^{-16} \lt a \lt 9.0072 \cdot 10^{15} \land 1.11022 \cdot 10^{-16} \lt b \lt 9.0072 \cdot 10^{15} \land 1.11022 \cdot 10^{-16} \lt c \lt 9.0072 \cdot 10^{15}\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[\frac{1 \cdot \left(4 \cdot \frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right)}{2 \cdot a}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\frac{1 \cdot \left(4 \cdot \frac{a \cdot c}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}\right)}{2 \cdot a}
double f(double a, double b, double c) {
        double r43664 = b;
        double r43665 = -r43664;
        double r43666 = r43664 * r43664;
        double r43667 = 4.0;
        double r43668 = a;
        double r43669 = r43667 * r43668;
        double r43670 = c;
        double r43671 = r43669 * r43670;
        double r43672 = r43666 - r43671;
        double r43673 = sqrt(r43672);
        double r43674 = r43665 + r43673;
        double r43675 = 2.0;
        double r43676 = r43675 * r43668;
        double r43677 = r43674 / r43676;
        return r43677;
}

double f(double a, double b, double c) {
        double r43678 = 1.0;
        double r43679 = 4.0;
        double r43680 = a;
        double r43681 = c;
        double r43682 = r43680 * r43681;
        double r43683 = b;
        double r43684 = -r43683;
        double r43685 = r43683 * r43683;
        double r43686 = r43679 * r43680;
        double r43687 = r43686 * r43681;
        double r43688 = r43685 - r43687;
        double r43689 = sqrt(r43688);
        double r43690 = r43684 - r43689;
        double r43691 = r43682 / r43690;
        double r43692 = r43679 * r43691;
        double r43693 = r43678 * r43692;
        double r43694 = 2.0;
        double r43695 = r43694 * r43680;
        double r43696 = r43693 / r43695;
        return r43696;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 43.7

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

    \[\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. Simplified0.4

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

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

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

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

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

    \[\leadsto \frac{1 \cdot \color{blue}{\frac{4}{\frac{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{a \cdot c}}}}{2 \cdot a}\]
  11. Using strategy rm
  12. Applied div-inv0.5

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

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

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

Reproduce

herbie shell --seed 2020057 
(FPCore (a b c)
  :name "Quadratic roots, medium range"
  :precision binary64
  :pre (and (< 1.11022e-16 a 9.0072e+15) (< 1.11022e-16 b 9.0072e+15) (< 1.11022e-16 c 9.0072e+15))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))