Average Error: 52.3 → 0.2
Time: 29.0s
Precision: 64
\[4.930380657631323783823303533017413935458 \cdot 10^{-32} \lt a \lt 20282409603651670423947251286016 \land 4.930380657631323783823303533017413935458 \cdot 10^{-32} \lt b \lt 20282409603651670423947251286016 \land 4.930380657631323783823303533017413935458 \cdot 10^{-32} \lt c \lt 20282409603651670423947251286016\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\frac{\frac{-3 \cdot a}{-1}}{\frac{3 \cdot a}{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\frac{\frac{-3 \cdot a}{-1}}{\frac{3 \cdot a}{\frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}
double f(double a, double b, double c) {
        double r93345 = b;
        double r93346 = -r93345;
        double r93347 = r93345 * r93345;
        double r93348 = 3.0;
        double r93349 = a;
        double r93350 = r93348 * r93349;
        double r93351 = c;
        double r93352 = r93350 * r93351;
        double r93353 = r93347 - r93352;
        double r93354 = sqrt(r93353);
        double r93355 = r93346 + r93354;
        double r93356 = r93355 / r93350;
        return r93356;
}

double f(double a, double b, double c) {
        double r93357 = 3.0;
        double r93358 = a;
        double r93359 = r93357 * r93358;
        double r93360 = -r93359;
        double r93361 = -1.0;
        double r93362 = r93360 / r93361;
        double r93363 = c;
        double r93364 = b;
        double r93365 = -r93364;
        double r93366 = r93364 * r93364;
        double r93367 = r93359 * r93363;
        double r93368 = r93366 - r93367;
        double r93369 = sqrt(r93368);
        double r93370 = r93365 - r93369;
        double r93371 = r93363 / r93370;
        double r93372 = r93359 / r93371;
        double r93373 = r93362 / r93372;
        return r93373;
}

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(3 \cdot a\right) \cdot c}}{3 \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(3 \cdot a\right) \cdot c} \cdot \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
  4. Simplified0.5

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

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

    \[\leadsto \frac{\frac{\color{blue}{-\left(3 \cdot a\right) \cdot c}}{-\left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}{3 \cdot a}\]
  8. Using strategy rm
  9. Applied *-un-lft-identity0.4

    \[\leadsto \frac{\frac{-\left(3 \cdot a\right) \cdot c}{-\color{blue}{1 \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{3 \cdot a}\]
  10. Applied distribute-lft-neg-in0.4

    \[\leadsto \frac{\frac{-\left(3 \cdot a\right) \cdot c}{\color{blue}{\left(-1\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}}}{3 \cdot a}\]
  11. Applied distribute-lft-neg-in0.4

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

    \[\leadsto \frac{\color{blue}{\frac{-3 \cdot a}{-1} \cdot \frac{c}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}}}{3 \cdot a}\]
  13. Applied associate-/l*0.2

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

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

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (a b c)
  :name "Cubic critical, wide range"
  :precision binary64
  :pre (and (< 4.93038e-32 a 2.02824e+31) (< 4.93038e-32 b 2.02824e+31) (< 4.93038e-32 c 2.02824e+31))
  (/ (+ (- b) (sqrt (- (* b b) (* (* 3 a) c)))) (* 3 a)))