\frac{\left(\left(8 \cdot {d}^{6} + \left(8 \cdot {d}^{4}\right) \cdot {r}^{2}\right) + \left(7 \cdot {d}^{2}\right) \cdot {r}^{4}\right) + 2 \cdot {r}^{6}}{2 \cdot {\left({d}^{2} + {r}^{2}\right)}^{3.5}}\frac{\frac{\left(2 \cdot {r}^{6} + 8 \cdot \left({d}^{4} \cdot {r}^{2} + {d}^{6}\right)\right) + \left(7 \cdot {d}^{2}\right) \cdot {r}^{4}}{{\left({d}^{2} + {r}^{2}\right)}^{3.5}}}{2}double code(double d, double r) {
return ((double) (((double) (((double) (((double) (((double) (8.0 * ((double) pow(d, 6.0)))) + ((double) (((double) (8.0 * ((double) pow(d, 4.0)))) * ((double) pow(r, 2.0)))))) + ((double) (((double) (7.0 * ((double) pow(d, 2.0)))) * ((double) pow(r, 4.0)))))) + ((double) (2.0 * ((double) pow(r, 6.0)))))) / ((double) (2.0 * ((double) pow(((double) (((double) pow(d, 2.0)) + ((double) pow(r, 2.0)))), 3.5))))));
}
double code(double d, double r) {
return ((double) (((double) (((double) (((double) (((double) (2.0 * ((double) pow(r, 6.0)))) + ((double) (8.0 * ((double) (((double) (((double) pow(d, 4.0)) * ((double) pow(r, 2.0)))) + ((double) pow(d, 6.0)))))))) + ((double) (((double) (7.0 * ((double) pow(d, 2.0)))) * ((double) pow(r, 4.0)))))) / ((double) pow(((double) (((double) pow(d, 2.0)) + ((double) pow(r, 2.0)))), 3.5)))) / 2.0));
}



Bits error versus d



Bits error versus r
Results
Initial program 54.6
Simplified54.6
Final simplification54.6
herbie shell --seed 2020153
(FPCore (d r)
:name "(/ (+ (+ (+ (* 8 (pow d 6)) (* (* 8 (pow d 4)) (pow r 2))) (* (* 7 (pow d 2)) (pow r 4))) (* 2 (pow r 6))) (* 2.0 (pow (+ (pow d 2) (pow r 2)) 3.5)))"
:precision binary64
(/ (+ (+ (+ (* 8.0 (pow d 6.0)) (* (* 8.0 (pow d 4.0)) (pow r 2.0))) (* (* 7.0 (pow d 2.0)) (pow r 4.0))) (* 2.0 (pow r 6.0))) (* 2.0 (pow (+ (pow d 2.0) (pow r 2.0)) 3.5))))