\sqrt{\left(\left(\left(s - a\right) \cdot \left(s - b\right)\right) \cdot \left(s - c\right)\right) \cdot \left(s - c\right)}\sqrt{\left(\left(\left(s - a\right) \cdot \left(s - b\right)\right) \cdot \left(s - c\right)\right) \cdot \left(s - c\right)}double code(double s, double a, double b, double c) {
return ((double) sqrt(((double) (((double) (((double) (((double) (s - a)) * ((double) (s - b)))) * ((double) (s - c)))) * ((double) (s - c))))));
}
double code(double s, double a, double b, double c) {
return ((double) sqrt(((double) (((double) (((double) (((double) (s - a)) * ((double) (s - b)))) * ((double) (s - c)))) * ((double) (s - c))))));
}



Bits error versus s



Bits error versus a



Bits error versus b



Bits error versus c
Results
Initial program 33.5
Final simplification33.5
herbie shell --seed 2020153
(FPCore (s a b c)
:name "(sqrt (* (* (* (- s a) (- s b)) (- s c)) (- s c)))"
:precision binary64
(sqrt (* (* (* (- s a) (- s b)) (- s c)) (- s c))))