\sqrt{\left(\left(\left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) \cdot \left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) - a\right)\right) \cdot \left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) - b\right)\right) \cdot \left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) - c\right)\right)}\sqrt{\left(\left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) \cdot \left(\left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) - a\right) \cdot \left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) - b\right)\right)\right) \cdot \left(\frac{\left(\left(\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right) \cdot \left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right)\right) - \left(c \cdot c\right)\right)}{\left(\frac{\left(\frac{\left(\frac{\left(\frac{a}{b}\right)}{c}\right)}{\left(2\right)}\right)}{c}\right)}\right)\right)}double f(double a, double b, double c) {
double r6271294 = a;
double r6271295 = b;
double r6271296 = r6271294 + r6271295;
double r6271297 = c;
double r6271298 = r6271296 + r6271297;
double r6271299 = 2.0;
double r6271300 = /* ERROR: no posit support in C */;
double r6271301 = r6271298 / r6271300;
double r6271302 = r6271301 - r6271294;
double r6271303 = r6271301 * r6271302;
double r6271304 = r6271301 - r6271295;
double r6271305 = r6271303 * r6271304;
double r6271306 = r6271301 - r6271297;
double r6271307 = r6271305 * r6271306;
double r6271308 = sqrt(r6271307);
return r6271308;
}
double f(double a, double b, double c) {
double r6271309 = a;
double r6271310 = b;
double r6271311 = r6271309 + r6271310;
double r6271312 = c;
double r6271313 = r6271311 + r6271312;
double r6271314 = 2.0;
double r6271315 = /* ERROR: no posit support in C */;
double r6271316 = r6271313 / r6271315;
double r6271317 = r6271316 - r6271309;
double r6271318 = r6271316 - r6271310;
double r6271319 = r6271317 * r6271318;
double r6271320 = r6271316 * r6271319;
double r6271321 = r6271316 * r6271316;
double r6271322 = r6271312 * r6271312;
double r6271323 = r6271321 - r6271322;
double r6271324 = r6271316 + r6271312;
double r6271325 = r6271323 / r6271324;
double r6271326 = r6271320 * r6271325;
double r6271327 = sqrt(r6271326);
return r6271327;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 0.1
rmApplied associate-*l*0.1
rmApplied p16-flip--0.2
Final simplification0.2
herbie shell --seed 2019164 +o rules:numerics
(FPCore (a b c)
:name "Area of a triangle"
:pre (and (<.p16 (real->posit16 0) a) (<.p16 (real->posit16 0) b) (<.p16 (real->posit16 0) c))
(sqrt.p16 (*.p16 (*.p16 (*.p16 (/.p16 (+.p16 (+.p16 a b) c) (real->posit16 2)) (-.p16 (/.p16 (+.p16 (+.p16 a b) c) (real->posit16 2)) a)) (-.p16 (/.p16 (+.p16 (+.p16 a b) c) (real->posit16 2)) b)) (-.p16 (/.p16 (+.p16 (+.p16 a b) c) (real->posit16 2)) c))))