\frac{\left(\left(-b\right) - \left(\sqrt{\left(\left(b \cdot b\right) - \left(\left(4\right) \cdot \left(a \cdot c\right)\right)\right)}\right)\right)}{\left(\left(2\right) \cdot a\right)}\frac{\left(-b\right) - \sqrt{\left(\mathsf{qms}\left(\left(\left(b \cdot b\right)\right), \left(4 \cdot a\right), c\right)\right)}}{2 \cdot a}double f(double a, double b, double c) {
double r1168954 = b;
double r1168955 = -r1168954;
double r1168956 = r1168954 * r1168954;
double r1168957 = 4.0;
double r1168958 = /* ERROR: no posit support in C */;
double r1168959 = a;
double r1168960 = c;
double r1168961 = r1168959 * r1168960;
double r1168962 = r1168958 * r1168961;
double r1168963 = r1168956 - r1168962;
double r1168964 = sqrt(r1168963);
double r1168965 = r1168955 - r1168964;
double r1168966 = 2.0;
double r1168967 = /* ERROR: no posit support in C */;
double r1168968 = r1168967 * r1168959;
double r1168969 = r1168965 / r1168968;
return r1168969;
}
double f(double a, double b, double c) {
double r1168970 = b;
double r1168971 = -r1168970;
double r1168972 = r1168970 * r1168970;
double r1168973 = /*Error: no posit support in C */;
double r1168974 = 4.0;
double r1168975 = a;
double r1168976 = r1168974 * r1168975;
double r1168977 = c;
double r1168978 = /*Error: no posit support in C */;
double r1168979 = /*Error: no posit support in C */;
double r1168980 = sqrt(r1168979);
double r1168981 = r1168971 - r1168980;
double r1168982 = 2.0;
double r1168983 = r1168982 * r1168975;
double r1168984 = r1168981 / r1168983;
return r1168984;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.6
rmApplied associate-*r*1.5
rmApplied introduce-quire1.5
Applied insert-quire-fdp-sub1.5
Final simplification1.5
herbie shell --seed 2019163 +o rules:numerics
(FPCore (a b c)
:name "quadm (p42, negative)"
(/.p16 (-.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 (real->posit16 4) (*.p16 a c))))) (*.p16 (real->posit16 2) a)))