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



Bits error versus s



Bits error versus a



Bits error versus b



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