\frac{tdx \cdot dx + tdy \cdot dy}{dx \cdot dx + dy \cdot dy}\frac{tdx \cdot dx + tdy \cdot dy}{dx \cdot dx + dy \cdot dy}double code(double tdx, double dx, double tdy, double dy) {
return ((double) (((double) (((double) (tdx * dx)) + ((double) (tdy * dy)))) / ((double) (((double) (dx * dx)) + ((double) (dy * dy))))));
}
double code(double tdx, double dx, double tdy, double dy) {
return ((double) (((double) (((double) (tdx * dx)) + ((double) (tdy * dy)))) / ((double) (((double) (dx * dx)) + ((double) (dy * dy))))));
}



Bits error versus tdx



Bits error versus dx



Bits error versus tdy



Bits error versus dy
Results
Initial program 26.2
Final simplification26.2
herbie shell --seed 2020153
(FPCore (tdx dx tdy dy)
:name "(/ (+ (* tdx dx) (* tdy dy)) (+ (* dx dx) (* dy dy)))"
:precision binary64
(/ (+ (* tdx dx) (* tdy dy)) (+ (* dx dx) (* dy dy))))