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