A New Book on Computer Arithmetic

Amos Omondi uunet!Comp.VUW.AC.NZ!Amos.Omondi
Tue Feb 22 14:31:19 PST 1994


David, I have now added a second level of detail to the t.o.c, and this is 
appended; a third level would probably be too tedious.   By the way, I 
have no doubt that, despite my best efforts, some errors remain in the text 
and that there is much room for improvement.  I should be extremely 
grateful if you and others who eventually read the book would bring these 
to my attention. 

************************************************************************


Table of contents
=================

1. Fixed-point number systems
	1.1 Introduction
	1.2 Representing signed numbers
		1.2.1 Sign-and-magnitude representation
		1.2.2 One's complement representation
		1.2.3 Two's complement representation
		1.2.4 Redundant signed-digit number systems
		1.2.5 Shifting negative numbers
	1.3 Other fixed-point number systems
	1.4 Summary
	1.5 Bibliographic notes
	1.6 Exercises

2. Fixed-point addition and subtraction
	2.1 Algorithms
		2.1.1 One's complement
		2.1.2 Two's complement
		2.1.3 Sign-and-magnitude
	2.2 Implementation 
		2.2.1  Serial adder
		2.2.2  Carry-ripple adder
		2.2.3  Analysis of carry propagation
		2.2.4  Carry-completion adder
		2.2.5  Carry-skip adder
		2.2.6  Carry-lookahead adders
		2.2.7  Conditional-sum adder
		2.2.8  Carry-select adder
		2.2.9  Pyramid adder
		2.2.10 Manchester adder
		2.2.11 Adders for negative number
		2.2.12 Summary and comparison of adders
	2.3 Subtraction
 	2.4 Case studies
		2.4.1 A sequential-state adder
		2.4.2 A subtractive adder
	2.5 Bibliographic notes
	2.6 Exercises

3. Fixed-point multiplication 
	3.1 Basic algorithms
		3.1.1 One's complement
		3.1.2 Two's complement
		3.1.3 Sign-and-magnitude
	3.2 Fast multiplication
		3.2.1 Scanning multiple bits per cycle
		3.2.2 Shifting over 0s and 1s
		3.2.3 Multiple-bit scanning with shifting over 0s and 1s
		3.2.4 Adding several multiples per cycle
		3.2.5 Negative numbers
		3.2.6 Analysis 
	3.3 Evaluation of powers
	3.4 Implementation 
		3.4.1 Serial multiplier
		3.4.2 Sequential multiplier
		3.4.3 Sequential multiplier with carry-save adders
		3.4.4 Parallel multiplier with carry-save adders
		3.4.5 Table-lookup multiplier
		3.4.6 Summary
 	3.5 Case studies
		3.5.1 A twin-beat multiplier
		3.5.2 An iterative split-multiplier
		3.5.3 A Wallace tree split-multiplier
		3.5.4 Iterative-array multipliers
	3.6 Bibliographic notes
	3.7 Exercises

4. Fixed-point division 
	4.1 Basic algorithms
		4.1.1 Restoring division
		4.1.2 Non-performing division
		4.1.3 Non-restoring division
		4.1.4 Negative numbers
	4.2 Fast division 
		4.2.1 Operand alignment
		4.2.2 Shifting over 0s and 1s
		4.2.3 High-radix restoring and non-restoring division
		4.2.4 SRT division
		4.2.5 Normalization algorithms
		4.2.6 Division with approximations of quotient
		4.2.7 Summary
	4.3 Implementation 
		4.3.1 Serial divider
		4.3.2 Sequential divider
		4.3.3 Sequential SRT divider
		4.3.4 Sequential-parallel divider 
		4.3.5 Redundant signed-digit multiplicative-normalization divide 
		4.3.6 Parallel SRT dividers
		4.3.7 Parallel-array dividers
		4.3.8 Summary
 	4.4 Case studies
		4.4.1 A Newton-Raphson divider
		4.4.2 A self-timed SRT divider
	4.5 Bibliographic notes
	4.6 Exercises

5. Floating-point arithmetic
	5.1 Introduction
	5.2 Normalization
	5.3 Basic arithmetic operations
	5.4 Overflow and underflow
	5.5 Representation format
		5.5.1 Radix
		5.5.2 Exponent representation
		5.5.3 Significand representation
		5.5.4 Location of radix point
		5.5.5 Range, precision, and accuracy
		5.5.6 Summary
	5.6 Error analysis
		5.6.1 Rounding: representation error
		5.6.2 Arithmetic operations: generated and propagated errors
	5.7 Case studies
		5.7.1 IBM Stretch (IBM 7030) floating-point system
		5.7.2 CDC 6600 floating-point system
		5.7.3 IEEE Standard 754 on floating-point arithmetic 
	5.8 Bibliographic notes
	5.9 Exercises

6. Basic floating-point operations: implementation
	6.1 Rounding
	6.2 Addition and subtraction 
		6.2.1 Exponent arithmetic
		6.2.2 Alignment shifting and normalization
		6.2.3 Significand arithmetic
		6.2.4 Leading-zeros/ones prediction
		6.2.5 Rounding
		6.2.6 Exceptions
		6.2.7 Case studies
	6.3 Multiplication and division
		6.3.1 Exponent and significand arithmetic
		6.3.2 Rounding
		6.3.3 Case studies 
	6.4 Summary
	6.5 Bibliographic notes
	6.6 Exercises

7. Elementary functions
	7.1 Square root and related functions
		7.1.1 Simple pseudo-division algorithms
		7.1.2 Newton-Raphson algorithm
		7.1.3 Multiplicative normalization algorithm
		7.1.4 Additive normalization algorithm
		7.1.5 Other iterative methods
		7.1.6 Summary
		7.1.7 Implementations
	7.2 Trigonometric functions
		7.2.1 Normalization algorithm for tangent and cotangent
		7.2.2 Normalization algorithm for sine and cosine
		7.2.3 Normalization algorithm for arctan, arcsine, and arccosine
		7.2.4 Summary
		7.2.5 Implementation
	7.3 Exponential and logarithm functions
		7.3.1 Normalization algorithm for natural logarithms
		7.3.2 Normalization algorithm for exponential
	7.4 Polynomial approximations
		7.4.1 Taylor-Maclaurin and Chebyshev expansions
		7.4.2 Interpolation from tabular data
		7.4.3 Evaluation of polynomials
		7.4.4 Summary
	7.5 Summary
	7.6 Case study
	7.7 Bibliographic notes
	7.8 Exercises
	
8. Unconventional number systems and arithmetic
	8.1 Residue number systems and arithmetic
		8.1.1 Conversion to and from residue representation
		8.1.2 Arithmetic
		8.1.3 Summary 
	8.2 Decimal number systems and arithmetic
		8.2.1 Conversion to and from decimal representation
		8.2.2 Arithmetic
		8.2.3 Summary 
	8.3 Redundant signed-digit number systems and arithmetic
		8.3.1 Conversion to and from r.s.d representation
		8.3.2 Arithmetic
		8.3.3 Summary 
	8.4 Bibliographic notes
	8.5 Exercises


Bibliography
	[A very  extensive one]

Appendix A: Pipelining

Appendix B: Design of shifters 





More information about the Numeric-interest mailing list