Computer Arithmetic: Principles, Architecture and Design