Average Error: 43.9 → 0.5
Time: 24.5s
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(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\frac{\frac{1}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \left(\left(3 \cdot a\right) \cdot c\right)}{3 \cdot a}\]
\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\frac{\frac{1}{\left(-b\right) - \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}} \cdot \left(\left(3 \cdot a\right) \cdot c\right)}{3 \cdot a}
double f(double a, double b, double c) {
        double r100465 = b;
        double r100466 = -r100465;
        double r100467 = r100465 * r100465;
        double r100468 = 3.0;
        double r100469 = a;
        double r100470 = r100468 * r100469;
        double r100471 = c;
        double r100472 = r100470 * r100471;
        double r100473 = r100467 - r100472;
        double r100474 = sqrt(r100473);
        double r100475 = r100466 + r100474;
        double r100476 = r100475 / r100470;
        return r100476;
}

double f(double a, double b, double c) {
        double r100477 = 1.0;
        double r100478 = b;
        double r100479 = -r100478;
        double r100480 = r100478 * r100478;
        double r100481 = 3.0;
        double r100482 = a;
        double r100483 = r100481 * r100482;
        double r100484 = c;
        double r100485 = r100483 * r100484;
        double r100486 = r100480 - r100485;
        double r100487 = sqrt(r100486);
        double r100488 = r100479 - r100487;
        double r100489 = r100477 / r100488;
        double r100490 = r100489 * r100485;
        double r100491 = r100490 / r100483;
        return r100491;
}

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.9

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

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

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

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

Reproduce

herbie shell --seed 2019199 
(FPCore (a b c)
  :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.0 a) c)))) (* 3.0 a)))