\frac{u \cdot u1 + v \cdot v1}{{u}^{2} + {v}^{2}}\frac{u \cdot u1 + v \cdot v1}{{u}^{2} + {v}^{2}}double code(double u, double u1, double v, double v1) {
return ((double) (((double) (((double) (u * u1)) + ((double) (v * v1)))) / ((double) (((double) pow(u, 2.0)) + ((double) pow(v, 2.0))))));
}
double code(double u, double u1, double v, double v1) {
return ((double) (((double) (((double) (u * u1)) + ((double) (v * v1)))) / ((double) (((double) pow(u, 2.0)) + ((double) pow(v, 2.0))))));
}



Bits error versus u



Bits error versus u1



Bits error versus v



Bits error versus v1
Results
Initial program 26.5
Final simplification26.5
herbie shell --seed 2020152
(FPCore (u u1 v v1)
:name "(/ (+ (* u u1) (* v v1)) (+ (pow u 2) (pow v 2)))"
:precision binary64
(/ (+ (* u u1) (* v v1)) (+ (pow u 2.0) (pow v 2.0))))