\frac{\left(\frac{\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)}\left(\frac{\left(1.0\right)}{\left(2\right)}\right) \cdot \left(\frac{\left(\left(\sqrt{\left(\left(b \cdot b\right) - \left(\left(c \cdot a\right) \cdot \left(4\right)\right)\right)}\right) - b\right)}{a}\right)double f(double a, double b, double c) {
double r1124935 = b;
double r1124936 = -r1124935;
double r1124937 = r1124935 * r1124935;
double r1124938 = 4.0;
double r1124939 = /* ERROR: no posit support in C */;
double r1124940 = a;
double r1124941 = c;
double r1124942 = r1124940 * r1124941;
double r1124943 = r1124939 * r1124942;
double r1124944 = r1124937 - r1124943;
double r1124945 = sqrt(r1124944);
double r1124946 = r1124936 + r1124945;
double r1124947 = 2.0;
double r1124948 = /* ERROR: no posit support in C */;
double r1124949 = r1124948 * r1124940;
double r1124950 = r1124946 / r1124949;
return r1124950;
}
double f(double a, double b, double c) {
double r1124951 = 1.0;
double r1124952 = /* ERROR: no posit support in C */;
double r1124953 = 2.0;
double r1124954 = /* ERROR: no posit support in C */;
double r1124955 = r1124952 / r1124954;
double r1124956 = b;
double r1124957 = r1124956 * r1124956;
double r1124958 = c;
double r1124959 = a;
double r1124960 = r1124958 * r1124959;
double r1124961 = 4.0;
double r1124962 = /* ERROR: no posit support in C */;
double r1124963 = r1124960 * r1124962;
double r1124964 = r1124957 - r1124963;
double r1124965 = sqrt(r1124964);
double r1124966 = r1124965 - r1124956;
double r1124967 = r1124966 / r1124959;
double r1124968 = r1124955 * r1124967;
return r1124968;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.5
Simplified1.5
rmApplied p16-*-un-lft-identity1.5
Applied p16-times-frac1.5
Final simplification1.5
herbie shell --seed 2019168
(FPCore (a b c)
:name "quadp (p42, positive)"
(/.p16 (+.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 (real->posit16 4) (*.p16 a c))))) (*.p16 (real->posit16 2) a)))