\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(\frac{\left(a + b\right) + c}{2} \cdot \left(\frac{\left(a + b\right) + c}{2} - a\right)\right) \cdot \left(\frac{\left(a + b\right) + c}{2} - b\right)\right) \cdot \left(\frac{a + \left(b + c\right)}{2} - c\right)}double f(double a, double b, double c) {
double r4562487 = a;
double r4562488 = b;
double r4562489 = r4562487 + r4562488;
double r4562490 = c;
double r4562491 = r4562489 + r4562490;
double r4562492 = 2.0;
double r4562493 = /* ERROR: no posit support in C */;
double r4562494 = r4562491 / r4562493;
double r4562495 = r4562494 - r4562487;
double r4562496 = r4562494 * r4562495;
double r4562497 = r4562494 - r4562488;
double r4562498 = r4562496 * r4562497;
double r4562499 = r4562494 - r4562490;
double r4562500 = r4562498 * r4562499;
double r4562501 = sqrt(r4562500);
return r4562501;
}
double f(double a, double b, double c) {
double r4562502 = a;
double r4562503 = b;
double r4562504 = r4562502 + r4562503;
double r4562505 = c;
double r4562506 = r4562504 + r4562505;
double r4562507 = 2.0;
double r4562508 = r4562506 / r4562507;
double r4562509 = r4562508 - r4562502;
double r4562510 = r4562508 * r4562509;
double r4562511 = r4562508 - r4562503;
double r4562512 = r4562510 * r4562511;
double r4562513 = r4562503 + r4562505;
double r4562514 = r4562502 + r4562513;
double r4562515 = r4562514 / r4562507;
double r4562516 = r4562515 - r4562505;
double r4562517 = r4562512 * r4562516;
double r4562518 = sqrt(r4562517);
return r4562518;
}



Bits error versus a



Bits error versus b



Bits error versus c
Initial program 0.2
rmApplied associate-+l+0.2
Final simplification0.2
herbie shell --seed 2019125
(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))))