Average Error: 52.3 → 0.4
Time: 6.0s
Precision: 64
\[4.93038 \cdot 10^{-32} \lt a \lt 2.02824 \cdot 10^{31} \land 4.93038 \cdot 10^{-32} \lt b \lt 2.02824 \cdot 10^{31} \land 4.93038 \cdot 10^{-32} \lt c \lt 2.02824 \cdot 10^{31}\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}\]
\[\frac{\frac{4}{\frac{2}{a \cdot c}}}{a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}{2 \cdot a}
\frac{\frac{4}{\frac{2}{a \cdot c}}}{a \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}\right)}
double f(double a, double b, double c) {
        double r32027 = b;
        double r32028 = -r32027;
        double r32029 = r32027 * r32027;
        double r32030 = 4.0;
        double r32031 = a;
        double r32032 = r32030 * r32031;
        double r32033 = c;
        double r32034 = r32032 * r32033;
        double r32035 = r32029 - r32034;
        double r32036 = sqrt(r32035);
        double r32037 = r32028 + r32036;
        double r32038 = 2.0;
        double r32039 = r32038 * r32031;
        double r32040 = r32037 / r32039;
        return r32040;
}

double f(double a, double b, double c) {
        double r32041 = 4.0;
        double r32042 = 2.0;
        double r32043 = a;
        double r32044 = c;
        double r32045 = r32043 * r32044;
        double r32046 = r32042 / r32045;
        double r32047 = r32041 / r32046;
        double r32048 = b;
        double r32049 = -r32048;
        double r32050 = r32048 * r32048;
        double r32051 = r32041 * r32043;
        double r32052 = r32051 * r32044;
        double r32053 = r32050 - r32052;
        double r32054 = sqrt(r32053);
        double r32055 = r32049 - r32054;
        double r32056 = r32043 * r32055;
        double r32057 = r32047 / r32056;
        return r32057;
}

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 52.3

    \[\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-+52.3

    \[\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 div-inv0.5

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

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

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

    \[\leadsto \frac{4}{\frac{2}{a \cdot c}} \cdot \color{blue}{{\left(\frac{\frac{1}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{a}\right)}^{1}}\]
  11. Applied pow10.5

    \[\leadsto \color{blue}{{\left(\frac{4}{\frac{2}{a \cdot c}}\right)}^{1}} \cdot {\left(\frac{\frac{1}{\left(-b\right) - \sqrt{b \cdot b - \left(4 \cdot a\right) \cdot c}}}{a}\right)}^{1}\]
  12. Applied pow-prod-down0.5

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

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

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

Reproduce

herbie shell --seed 2020020 
(FPCore (a b c)
  :name "Quadratic roots, wide range"
  :precision binary64
  :pre (and (< 4.9303800000000003e-32 a 2.02824e+31) (< 4.9303800000000003e-32 b 2.02824e+31) (< 4.9303800000000003e-32 c 2.02824e+31))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 4 a) c)))) (* 2 a)))