\frac{\left({dist}^{2} - {RA}^{2}\right) + {RB}^{2}}{2 \cdot dist}\frac{\left({dist}^{2} - {RA}^{2}\right) + {RB}^{2}}{2 \cdot dist}double code(double dist, double RA, double RB) {
return ((double) (((double) (((double) (((double) pow(dist, 2.0)) - ((double) pow(RA, 2.0)))) + ((double) pow(RB, 2.0)))) / ((double) (2.0 * dist))));
}
double code(double dist, double RA, double RB) {
return ((double) (((double) (((double) (((double) pow(dist, 2.0)) - ((double) pow(RA, 2.0)))) + ((double) pow(RB, 2.0)))) / ((double) (2.0 * dist))));
}



Bits error versus dist



Bits error versus RA



Bits error versus RB
Results
Initial program 28.4
Final simplification28.4
herbie shell --seed 2020152
(FPCore (dist RA RB)
:name "(/ (+ (- (pow dist 2) (pow RA 2)) (pow RB 2)) (* 2 dist))"
:precision binary64
(/ (+ (- (pow dist 2.0) (pow RA 2.0)) (pow RB 2.0)) (* 2.0 dist)))