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}


Bits error versus a



Bits error versus b



Bits error versus c



Bits error versus d
Initial program 43.7
Simplified43.7
Taylor expanded around inf 12.1
Final simplification12.1
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)))