\frac{\left(\left(-b\right) + \left(\sqrt{\left(\left(b \cdot b\right) - \left(4 \cdot \left(a \cdot c\right)\right)\right)}\right)\right)}{\left(2 \cdot a\right)}\left(\frac{\left(\left(\sqrt{\left(\left(\mathsf{qms}\left(\left(\left(b \cdot b\right)\right), \left(a \cdot 4\right), c\right)\right)\right)}\right) - b\right)}{2}\right) \cdot \left(\frac{\left(1\right)}{a}\right)double f(double a, double b, double c) {
double r1052078 = b;
double r1052079 = -r1052078;
double r1052080 = r1052078 * r1052078;
double r1052081 = /* ERROR: no support for value #<cpointer:posit16> in C */;
double r1052082 = a;
double r1052083 = c;
double r1052084 = r1052082 * r1052083;
double r1052085 = r1052081 * r1052084;
double r1052086 = r1052080 - r1052085;
double r1052087 = sqrt(r1052086);
double r1052088 = r1052079 + r1052087;
double r1052089 = /* ERROR: no support for value #<cpointer:posit16> in C */;
double r1052090 = r1052089 * r1052082;
double r1052091 = r1052088 / r1052090;
return r1052091;
}
double f(double a, double b, double c) {
double r1052092 = b;
double r1052093 = r1052092 * r1052092;
double r1052094 = /*Error: no posit support in C */;
double r1052095 = a;
double r1052096 = /* ERROR: no support for value #<cpointer:posit16> in C */;
double r1052097 = r1052095 * r1052096;
double r1052098 = c;
double r1052099 = /*Error: no posit support in C */;
double r1052100 = /*Error: no posit support in C */;
double r1052101 = sqrt(r1052100);
double r1052102 = r1052101 - r1052092;
double r1052103 = /* ERROR: no support for value #<cpointer:posit16> in C */;
double r1052104 = r1052102 / r1052103;
double r1052105 = 1.0;
double r1052106 = /* ERROR: no posit support in C */;
double r1052107 = r1052106 / r1052095;
double r1052108 = r1052104 * r1052107;
return r1052108;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 1.6
Simplified1.6
rmApplied introduce-quire1.6
Applied insert-quire-fdp-sub1.6
rmApplied *p16-rgt-identity-expand1.6
Applied p16-times-frac1.6
Final simplification1.6
herbie shell --seed 0
(FPCore (a b c)
:name "quadp (p42, positive)"
(/.p16 (+.p16 (neg.p16 b) (sqrt.p16 (-.p16 (*.p16 b b) (*.p16 #<cpointer:posit16> (*.p16 a c))))) (*.p16 #<cpointer:posit16> a)))