Average Error: 44.0 → 0.2
Time: 2.8m
Precision: 64
\[1.1102230246251565 \cdot 10^{-16} \lt a \lt 9007199254740992.0 \land 1.1102230246251565 \cdot 10^{-16} \lt b \lt 9007199254740992.0 \land 1.1102230246251565 \cdot 10^{-16} \lt c \lt 9007199254740992.0\]
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\frac{c}{\left(-b\right) - \sqrt{b \cdot b - c \cdot \left(3 \cdot a\right)}}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\frac{c}{\left(-b\right) - \sqrt{b \cdot b - c \cdot \left(3 \cdot a\right)}}
double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r19999184 = b;
        double r19999185 = -r19999184;
        double r19999186 = r19999184 * r19999184;
        double r19999187 = 3.0;
        double r19999188 = a;
        double r19999189 = r19999187 * r19999188;
        double r19999190 = c;
        double r19999191 = r19999189 * r19999190;
        double r19999192 = r19999186 - r19999191;
        double r19999193 = sqrt(r19999192);
        double r19999194 = r19999185 + r19999193;
        double r19999195 = r19999194 / r19999189;
        return r19999195;
}

double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r19999196 = c;
        double r19999197 = b;
        double r19999198 = -r19999197;
        double r19999199 = r19999197 * r19999197;
        double r19999200 = 3.0;
        double r19999201 = a;
        double r19999202 = r19999200 * r19999201;
        double r19999203 = r19999196 * r19999202;
        double r19999204 = r19999199 - r19999203;
        double r19999205 = sqrt(r19999204);
        double r19999206 = r19999198 - r19999205;
        double r19999207 = r19999196 / r19999206;
        return r19999207;
}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 44.0

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

    \[\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. Applied associate-/l/44.0

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

    \[\leadsto \frac{\color{blue}{3 \cdot \left(c \cdot a\right)}}{\left(3 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}\]
  6. Using strategy rm
  7. Applied associate-/l*0.5

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

    \[\leadsto \frac{3}{\color{blue}{1 \cdot \frac{\left(3 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}{c \cdot a}}}\]
  10. Applied *-un-lft-identity0.5

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

    \[\leadsto \color{blue}{\frac{1}{1} \cdot \frac{3}{\frac{\left(3 \cdot a\right) \cdot \left(\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}\right)}{c \cdot a}}}\]
  12. Simplified0.5

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

    \[\leadsto 1 \cdot \color{blue}{\frac{\frac{c \cdot \left(3 \cdot a\right)}{3 \cdot a}}{\left(-b\right) - \sqrt{b \cdot b - c \cdot \left(3 \cdot a\right)}}}\]
  14. Taylor expanded around -inf 0.2

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

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

Reproduce

herbie shell --seed 2019104 +o rules:numerics
(FPCore (a b c d)
  :name "Cubic critical, 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) (* (* 3 a) c)))) (* 3 a)))