From Mathematics to Generic Programming

  • 3 Want to read

My Reading Lists:

Create a new list

  • 3 Want to read

Buy this book

Last edited by MARC Bot
November 13, 2020 | History

From Mathematics to Generic Programming

  • 3 Want to read

A detailed, mathematically-oriented examination of abstraction in software development leading to concepts and techniques in generic programming.

Publish Date
Publisher
Addison-Wesley
Pages
293

Buy this book

Edition Availability
Cover of: From Mathematics to Generic Programming
From Mathematics to Generic Programming
2015, Addison-Wesley
paperback

Add another edition?

Book Details


Table of Contents

5. The Emergence of Modern Number Theory
Page 63
5.1. Mersenne Primes and Fermat Primes
Page 63
5.2. Fermat's Little Theorem
Page 69
5.3. Cancellation
Page 72
5.4. Proving Fermat's Little Theorem
Page 77
5.5. Euler's Theorem
Page 79
5.6. Applying Modular Arithmetic
Page 83
5.7. Thoughts on the Chapter
Page 84
6. Abstraction in Mathematics
Page 85
6.1. Groups
Page 85
6.2. Monoids and Semigroups
Page 89
6.3. Some Theorems about Groups
Page 92
6.4. Subgroups and Cyclic Groups
Page 95
6.5. Lagrange's Theorem
Page 97
6.6. Theories and Models
Page 102
6.7. Examples of Categorical and Non-categorical Theories
Page 104
6.8. Thoughts on the Chapter
Page 107
7. Deriving a Generic Algorithm
Page 111
7.1. Untangling Algorithm Requirements
Page 111
7.2. Requirements on A
Page 113
7.3. Requirements on N
Page 116
7.4. New Requirements
Page 118
7.5. Turning Multiply into Power
Page 119
7.6. Generalizing the Operation
Page 121
7.7. Computing Fibonacci Numbers
Page 124
7.8. Thoughts on the Chapter
Page 127
8. More Algebraic Structures
Page 129
8.1. Stevin, Polynomials, and GCD
Page 129
8.2. Göttingen and German Mathematics
Page 135
8.3. Noether and the Birth of Abstract Algebra
Page 140
8.4. Rings
Page 142
8.5. Matrix Multiplication and Semirings
Page 145
8.6. Application: Social Networks and Shortest Paths
Page 147
8.7. Euclidean Domains
Page 150
8.8. Fields and Other Algebraic Structures
Page 151
8.9. Thoughts on the Chapter
Page 152
9. Organizing Mathematical Knowledge
Page 155
9.1. Proofs
Page 155
9.2. The First Theorem
Page 159
9.3. Euclid and the Axiomatic Method
Page 161
9.4. Alternatives to Euclidean Geometry
Page 164
9.5. Hilbert's Formalist Approach
Page 167
9.6. Peano and His Axioms
Page 169
9.7. Building Arithmetic
Page 173
9.8. Thoughts on the Chapter
Page 176
10. Fundamental Programming Concepts
Page 177
10.1. Aristotle and Abstraction
Page 177
10.2. Values and Types
Page 180
10.3. Concepts
Page 181
10.4. Iterators
Page 184
10.5. Iterator Categories, Operations, and Traits
Page 185
10.6. Ranges
Page 188
10.7. Linear Search
Page 190
10.8. Binary Search
Page 191
10.9. Thoughts on the Chapter
Page 196
11. Permutation Algorithms
Page 197
11.1. Permutations and Transpositions
Page 197
11.2. Swapping Ranges
Page 201
11.3. Rotation
Page 204
11.4. Using Cycles
Page 207
11.5. Reverse
Page 212
11.6. Space Complexity
Page 215
11.7. Memory-Adaptive Algorithms
Page 216
11.8. Thoughts on the Chapter
Page 217
12. Extensions of GCD
Page 219
12.1. Hardware Constraints and a More Efficient Algorithm
Page 219
12.2. Generalizing Stein's Algorithm
Page 222
12.3. Bézout's Identity
Page 225
12.4. Extended GCD
Page 229
12.5. Applications of GCD
Page 234
12.6. Thoughts on the Chapter
Page 234
13. A Real-World Application
Page 237
13.1. Cryptology
Page 237
13.2. Primality Testing
Page 240
13.3. The Miller-Rabin Test
Page 243
13.4. The RSA Algorithm: How and Why It Works
Page 245
13.5. Thoughts on the Chapter
Page 248
14. Conclusions
Page 249
Further Reading
Page 251
A. Notation
Page 257
B. Common Proof Techniques
Page 261
B.1. Proof by Contradiction
Page 261
B.2. Proof by Induction
Page 262
B.3. The Pigeonhole Principle
Page 263
C. C++ for Non-C++ Programmers
Page 265
C.1. Template Functions
Page 265
C.2. Concepts
Page 266
C.3. Declaration Syntax and Typed Constants
Page 267
C.4. Function Objects
Page 268
C.5. Preconditions, Postconditions, and Assertions
Page 269
C.6. STL Algorithms and Data Structures
Page 269
C.7. Iterators and Ranges
Page 270
C.8. Type Aliases and Type Functions with using in C++11
Page 272
C.9. Initializer Lists in C++11
Page 272
C.10. Lambda Functions in C++11
Page 272
C.11. A Note about inline
Page 273
Bibliography
Page 275
Index
Page 281

Edition Notes

Published in
Upper Saddle River, NJ, USA

Classifications

Library of Congress
QA76.6245.S74 2015, QA76.6245 .S74 2014, QA76.6245

Contributors

Author
Daniel E. Rose

The Physical Object

Format
paperback
Pagination
xii, 293p
Number of pages
293
Weight
450 grams

Edition Identifiers

Open Library
OL25715928M
ISBN 10
0321942043
LCCN
2014034539
OCLC/WorldCat
898036481

Work Identifiers

Work ID
OL17145291W

Community Reviews (0)

No community reviews have been submitted for this work.

Lists

History

Download catalog record: RDF / JSON
November 13, 2020 Edited by MARC Bot import existing book
August 4, 2020 Edited by ImportBot import existing book
June 14, 2020 Edited by ImportBot import existing book
December 2, 2015 Edited by r. clayton added description
July 6, 2015 Created by r. clayton Added new book.