Computer Arithmetic: Algorithms and Hardware