Average Error: 43.7 → 12.1
Time: 46.3s
Precision: 64
\[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
\[\frac{c}{b} \cdot \frac{-1}{2}\]
double f(double a, double b, double c, double __attribute__((unused)) d) {
        double r12969778 = b;
        double r12969779 = -r12969778;
        double r12969780 = r12969778 * r12969778;
        double r12969781 = 3.0;
        double r12969782 = a;
        double r12969783 = r12969781 * r12969782;
        double r12969784 = c;
        double r12969785 = r12969783 * r12969784;
        double r12969786 = r12969780 - r12969785;
        double r12969787 = sqrt(r12969786);
        double r12969788 = r12969779 + r12969787;
        double r12969789 = r12969788 / r12969783;
        return r12969789;
}

double f(double __attribute__((unused)) a, double b, double c, double __attribute__((unused)) d) {
        double r12969790 = c;
        double r12969791 = b;
        double r12969792 = r12969790 / r12969791;
        double r12969793 = -0.5;
        double r12969794 = r12969792 * r12969793;
        return r12969794;
}

\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}
\frac{c}{b} \cdot \frac{-1}{2}

Error

Bits error versus a

Bits error versus b

Bits error versus c

Bits error versus d

Derivation

  1. Initial program 43.7

    \[\frac{\left(-b\right) + \sqrt{b \cdot b - \left(3 \cdot a\right) \cdot c}}{3 \cdot a}\]
  2. Simplified43.7

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

    \[\leadsto \color{blue}{\frac{-1}{2} \cdot \frac{c}{b}}\]
  4. Final simplification12.1

    \[\leadsto \frac{c}{b} \cdot \frac{-1}{2}\]

Reproduce

herbie shell --seed 2019102 
(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)))