\frac{\left(\frac{\left(-b_2\right)}{\left(\sqrt{\left(\left(b_2 \cdot b_2\right) - \left(a \cdot c\right)\right)}\right)}\right)}{a}\frac{\sqrt{\frac{b_2 \cdot b_2 + c \cdot a}{\frac{b_2 \cdot b_2 + c \cdot a}{b_2 \cdot b_2 - c \cdot a}}} - b_2}{a}double f(double a, double b_2, double c) {
double r309669 = b_2;
double r309670 = -r309669;
double r309671 = r309669 * r309669;
double r309672 = a;
double r309673 = c;
double r309674 = r309672 * r309673;
double r309675 = r309671 - r309674;
double r309676 = sqrt(r309675);
double r309677 = r309670 + r309676;
double r309678 = r309677 / r309672;
return r309678;
}
double f(double a, double b_2, double c) {
double r309679 = b_2;
double r309680 = r309679 * r309679;
double r309681 = c;
double r309682 = a;
double r309683 = r309681 * r309682;
double r309684 = r309680 + r309683;
double r309685 = r309680 - r309683;
double r309686 = r309684 / r309685;
double r309687 = r309684 / r309686;
double r309688 = sqrt(r309687);
double r309689 = r309688 - r309679;
double r309690 = r309689 / r309682;
return r309690;
}



Bits error versus a



Bits error versus b_2



Bits error versus c
Initial program 1.7
Simplified1.7
rmApplied p16-flip--2.7
rmApplied difference-of-squares2.6
Applied associate-/l*1.7
Final simplification1.7
herbie shell --seed 2019151 +o rules:numerics
(FPCore (a b_2 c)
:name "quad2p (problem 3.2.1, positive)"
(/.p16 (+.p16 (neg.p16 b_2) (sqrt.p16 (-.p16 (*.p16 b_2 b_2) (*.p16 a c)))) a))