Cover image for Modern computer arithmetic
Title:
Modern computer arithmetic
Personal Author:
Series:
Cambridge monographs on applied and computational mathematics ; 18
Publication Information:
Cambridge ; New York : Cambridge University Press, 2010
Physical Description:
xvi, 221 p. : ill. ; 24 cm.
ISBN:
9780521194693
Subject Term:

Available:*

Library
Item Barcode
Call Number
Material Type
Item Category 1
Status
Searching...
30000010251414 QA76.9.C62 B74 2011 Open Access Book Book
Searching...

On Order

Summary

Summary

Modern Computer Arithmetic focuses on arbitrary-precision algorithms for efficiently performing arithmetic operations such as addition, multiplication and division, and their connections to topics such as modular arithmetic, greatest common divisors, the Fast Fourier Transform (FFT), and the computation of elementary and special functions. Brent and Zimmermann present algorithms that are ready to implement in your favorite language, while keeping a high-level description and avoiding too low-level or machine-dependent details. The book is intended for anyone interested in the design and implementation of efficient high-precision algorithms for computer arithmetic, and more generally efficient multiple-precision numerical algorithms. It may also be used in a graduate course in mathematics or computer science, for which exercises are included. These vary considerably in difficulty, from easy to small research projects, and expand on topics discussed in the text. Solutions are available from the authors.


Author Notes

Richard Brent is a Professor of Mathematics and Computer Science at the Australian National University, Canberra.
Paul Zimmermann is a Researcher at the Institut National de Recherche en Informatique et en Automatique (INRIA), France.


Table of Contents

Prefacep. ix
Acknowledgementsp. xi
Notationp. xiii
1 Integer arithmeticp. 1
1.1 Representation and notationsp. 1
1.2 Addition and subtractionp. 2
1.3 Multiplicationp. 3
1.3.1 Naive multiplicationp. 4
1.3.2 Karatsuba's algorithmp. 5
1.3.3 Toom-Cook multiplicationp. 6
1.3.4 Use of the fast Fourier transform (FFT)p. 8
1.3.5 Unbalanced multiplicationp. 8
1.3.6 Squaringp. 11
1.3.7 Multiplication by a constantp. 13
1.4 Divisionp. 14
1.4.1 Naive divisionp. 14
1.4.2 Divisor preconditioningp. 16
1.4.3 Divide and conquer divisionp. 18
1.4.4 Newton's methodp. 21
1.4.5 Exact divisionp. 21
1.4.6 Only quotient or remainder wantedp. 22
1.4.7 Division by a single wordp. 23
1.4.8 Hensel's divisionp. 24
1.5 Rootsp. 25
1.5.1 Square rootp. 25
1.5.2 kth rootp. 27
1.5.3 Exact rootp. 28
1.6 Greatest common divisorp. 29
1.6.1 Naive GCDp. 29
1.6.2 Extended GCDp. 32
1.6.3 Half binary GCD, divide and conquer GCDp. 33
1.7 Base conversionp. 37
1.7.1 Quadratic algorithmsp. 37
1.7.2 Subquadratic algorithmsp. 38
1.8 Exercisesp. 39
1.9 Notes and referencesp. 44
2 Modular arithmetic and the FFTp. 47
2.1 Representationp. 47
2.1.1 Classical representationp. 47
2.1.2 Montgomery's formp. 48
2.1.3 Residue number systemsp. 48
2.1.4 MSB vs LSB algorithmsp. 49
2.1.5 Link with polynomialsp. 49
2.2 Modular addition and subtractionp. 50
2.3 The Fourier transformp. 50
2.3.1 Theoretical settingp. 50
2.3.2 The fast Fourier transformp. 51
2.3.3 The Schönhage-Strassen algorithmp. 55
2.4 Modular multiplicationp. 58
2.4.1 Barrett's algorithmp. 58
2.4.2 Montgomery's multiplicationp. 60
2.4.3 McLaughlin's algorithmp. 63
2.4.4 Special modulip. 65
2.5 Modular division and inversionp. 65
2.5.1 Several inversions at oncep. 67
2.6 Modular exponentiationp. 68
2.6.1 Binary exponentiationp. 70
2.6.2 Exponentiation with a larger basep. 70
2.6.3 Sliding window and redundant representationp. 72
2.7 Chinese remainder theoremp. 73
2.8 Exercisesp. 75
2.9 Notes and referencesp. 77
3 Floating-point arithmeticp. 79
3.1 Representationp. 79
3.1.1 Radix choicep. 80
3.1.2 Exponent rangep. 81
3.1.3 Special valuesp. 82
3.1.4 Subnormal numbersp. 82
3.1.5 Encodingp. 83
3.1.6 Precision: local, global, operation, operandp. 84
3.1.7 Link to integersp. 86
3.1.8 Ziv's algorithm and error analysisp. 86
3.1.9 Roundingp. 87
3.1.10 Strategiesp. 90
3.2 Addition, subtraction, comparisonp. 91
3.2.1 Floating-point additionp. 92
3.2.2 Floating-point subtractionp. 93
3.3 Multiplicationp. 95
3.3.1 Integer multiplication via complex FFTp. 98
3.3.2 The middle productp. 99
3.4 Reciprocal and divisionp. 101
3.4.1 Reciprocalp. 102
3.4.2 Divisionp. 106
3.5 Square rootp. 111
3.5.1 Reciprocal square rootp. 112
3.6 Conversionp. 114
3.6.1 Floating-point outputp. 115
3.6.2 Floating-point inputp. 117
3.7 Exercisesp. 118
3.8 Notes and referencesp. 120
4 Elementary and special function evaluationp. 125
4.1 Introductionp. 125
4.2 Newton's methodp. 126
4.2.1 Newton's method for inverse rootsp. 127
4.2.2 Newton's method for reciprocalsp. 128
4.2.3 Newton's method for (reciprocal) square rootsp. 129
4.2.4 Newton's method for formal power seriesp. 129
4.2.5 Newton's method for functional inversesp. 130
4.2.6 Higher-order Newton-like methodsp. 131
4.3 Argument reductionp. 132
4.3.1 Repeated use of a doubling formulap. 134
4.3.2 Loss of precisionp. 134
4.3.3 Guard digitsp. 135
4.3.4 Doubling versus triplingp. 136
4.4 Power seriesp. 136
4.4.1 Direct power series evaluationp. 140
4.4.2 Power series with argument reductionp. 140
4.4.3 Rectangular series splittingp. 141
4.5 Asymptotic expansionsp. 144
4.6 Continued fractionsp. 150
4.7 Recurrence relationsp. 152
4.7.1 Evaluation of Bessel functionsp. 153
4.7.2 Evaluation of Bernoulli and tangent numbersp. 154
4.8 Arithmetic-geometric meanp. 158
4.8.1 Elliptic integralsp. 158
4.8.2 First AGM algorithm for the logarithmp. 159
4.8.3 Theta functionsp. 160
4.8.4 Second AGM algorithm for the logarithmp. 162
4.8.5 The complex AGMp. 163
4.9 Binary splittingp. 163
4.9.1 A binary splitting algorithm for sin, cosp. 166
4.9.2 The bit-burst algorithmp. 167
4.10 Contour integrationp. 169
4.11 Exercisesp. 171
4.12 Notes and referencesp. 179
5 Implementations and pointersp. 185
5.1 Software toolsp. 185
5.1.1 CLNp. 185
5.1.2 GNU MP(GMP)p. 185
5.1.3 MPFQp. 186
5.1.4 GNU MPFRp. 187
5.1.5 Other multiple-precision packagesp. 187
5.1.6 Computational algebra packagesp. 188
5.2 Mailing listsp. 189
5.2.1 The GMP listsp. 189
5.2.2 The MPFR listp. 190
5.3 On-line documentsp. 190
Referencesp. 191
Indexp. 207