\BOOKMARK [0][-]{chapter.1}{Introduction}{}% 1 \BOOKMARK [1][-]{section.1.1}{The Sage Project}{chapter.1}% 2 \BOOKMARK [1][-]{section.1.2}{What is Sage?}{chapter.1}% 3 \BOOKMARK [1][-]{section.1.3}{``This unique American idea of the entrepreneurial company.''}{chapter.1}% 4 \BOOKMARK [1][-]{section.1.4}{Getting Started}{chapter.1}% 5 \BOOKMARK [1][-]{section.1.5}{A Tour}{chapter.1}% 6 \BOOKMARK [-1][-]{part.1}{I Programming Sage}{}% 7 \BOOKMARK [0][-]{chapter.2}{Python}{part.1}% 8 \BOOKMARK [1][-]{section.2.1}{What is Python?}{chapter.2}% 9 \BOOKMARK [1][-]{section.2.2}{The Sage Preparser}{chapter.2}% 10 \BOOKMARK [1][-]{section.2.3}{Variables}{chapter.2}% 11 \BOOKMARK [1][-]{section.2.4}{Control Flow}{chapter.2}% 12 \BOOKMARK [1][-]{section.2.5}{Functions}{chapter.2}% 13 \BOOKMARK [2][-]{subsection.2.5.1}{Call by Reference}{section.2.5}% 14 \BOOKMARK [2][-]{subsection.2.5.2}{Gotcha: Default Arguments}{section.2.5}% 15 \BOOKMARK [2][-]{subsection.2.5.3}{Gotcha: Recursion}{section.2.5}% 16 \BOOKMARK [2][-]{subsection.2.5.4}{Style}{section.2.5}% 17 \BOOKMARK [1][-]{section.2.6}{Classes}{chapter.2}% 18 \BOOKMARK [2][-]{subsection.2.6.1}{Creating a Number}{section.2.6}% 19 \BOOKMARK [1][-]{section.2.7}{Data Types: Lists, Tuples, Strings and Files}{chapter.2}% 20 \BOOKMARK [2][-]{subsection.2.7.1}{Lists}{section.2.7}% 21 \BOOKMARK [2][-]{subsection.2.7.2}{Tuples}{section.2.7}% 22 \BOOKMARK [2][-]{subsection.2.7.3}{Strings}{section.2.7}% 23 \BOOKMARK [2][-]{subsection.2.7.4}{Files}{section.2.7}% 24 \BOOKMARK [1][-]{section.2.8}{Exception Handling}{chapter.2}% 25 \BOOKMARK [1][-]{section.2.9}{Decorators}{chapter.2}% 26 \BOOKMARK [1][-]{section.2.10}{The Ecosystem}{chapter.2}% 27 \BOOKMARK [1][-]{section.2.11}{Exercise: Build Python from Source}{chapter.2}% 28 \BOOKMARK [0][-]{chapter.3}{Cython}{part.1}% 29 \BOOKMARK [1][-]{section.3.1}{An Example: Speeding up a Simple Function}{chapter.3}% 30 \BOOKMARK [1][-]{section.3.2}{Using External C/C++ Code}{chapter.3}% 31 \BOOKMARK [2][-]{subsection.3.2.1}{Simple random example}{section.3.2}% 32 \BOOKMARK [2][-]{subsection.3.2.2}{Adding rational numbers using MPIR}{section.3.2}% 33 \BOOKMARK [1][-]{section.3.3}{Important Cython Language Constructions}{chapter.3}% 34 \BOOKMARK [2][-]{subsection.3.3.1}{Declaring Cython Variables Using cdef}{section.3.3}% 35 \BOOKMARK [2][-]{subsection.3.3.2}{Explicit casts}{section.3.3}% 36 \BOOKMARK [2][-]{subsection.3.3.3}{Declaring External Data Types and Functions}{section.3.3}% 37 \BOOKMARK [2][-]{subsection.3.3.4}{Defining New Cython Functions}{section.3.3}% 38 \BOOKMARK [2][-]{subsection.3.3.5}{Defining New Cython Classes}{section.3.3}% 39 \BOOKMARK [1][-]{section.3.4}{Numpy and Cython}{chapter.3}% 40 \BOOKMARK [0][-]{chapter.4}{Resources for Solving Problems Using Sage}{part.1}% 41 \BOOKMARK [1][-]{section.4.1}{The Sage Library}{chapter.4}% 42 \BOOKMARK [1][-]{section.4.2}{Question and Answer Sites}{chapter.4}% 43 \BOOKMARK [1][-]{section.4.3}{Documentation for components of Sage}{chapter.4}% 44 \BOOKMARK [1][-]{section.4.4}{Live Chat}{chapter.4}% 45 \BOOKMARK [0][-]{chapter.5}{Sage Development}{part.1}% 46 \BOOKMARK [1][-]{section.5.1}{Overview of Sage Development}{chapter.5}% 47 \BOOKMARK [2][-]{subsection.5.1.1}{What is a Sage Release?}{section.5.1}% 48 \BOOKMARK [2][-]{subsection.5.1.2}{Hurdles}{section.5.1}% 49 \BOOKMARK [2][-]{subsection.5.1.3}{Walkthrough}{section.5.1}% 50 \BOOKMARK [1][-]{section.5.2}{How to modify the Sage library and create a patch}{chapter.5}% 51 \BOOKMARK [0][-]{chapter.6}{How Sage Uses Other Math Software Systems}{part.1}% 52 \BOOKMARK [-1][-]{part.2}{II Using Sage}{}% 53 \BOOKMARK [0][-]{chapter.7}{Graphics}{part.2}% 54 \BOOKMARK [1][-]{section.7.1}{2d Plots}{chapter.7}% 55 \BOOKMARK [1][-]{section.7.2}{3d Plots}{chapter.7}% 56 \BOOKMARK [1][-]{section.7.3}{Matplotlib}{chapter.7}% 57 \BOOKMARK [0][-]{chapter.8}{Number Theory}{part.2}% 58 \BOOKMARK [1][-]{section.8.1}{Prime Numbers and the Riemann Hypothesis}{chapter.8}% 59 \BOOKMARK [2][-]{subsection.8.1.1}{Primes}{section.8.1}% 60 \BOOKMARK [2][-]{subsection.8.1.2}{Factorization}{section.8.1}% 61 \BOOKMARK [2][-]{subsection.8.1.3}{Counting Primes}{section.8.1}% 62 \BOOKMARK [1][-]{section.8.2}{Public-Key Cryptography: Diffie-Hellman}{chapter.8}% 63 \BOOKMARK [1][-]{section.8.3}{Elliptic Curves and the Birch and Swinnerton-Dyer Conjecture}{chapter.8}% 64 \BOOKMARK [2][-]{subsection.8.3.1}{Fields}{section.8.3}% 65 \BOOKMARK [2][-]{subsection.8.3.2}{Elliptic Curves}{section.8.3}% 66 \BOOKMARK [2][-]{subsection.8.3.3}{Birch and Swinnerton-Dyer}{section.8.3}% 67 \BOOKMARK [0][-]{chapter.9}{Statistics}{part.2}% 68 \BOOKMARK [1][-]{section.9.1}{Using R with Sage}{chapter.9}% 69 \BOOKMARK [0][-]{chapter.10}{Abstract Algebra}{part.2}% 70 \BOOKMARK [1][-]{section.10.1}{Groups, Rings and Fields}{chapter.10}% 71 \BOOKMARK [1][-]{section.10.2}{Exact Linear Algebra}{chapter.10}% 72 \BOOKMARK [2][-]{subsection.10.2.1}{Documentation for Linear Algebra in Sage}{section.10.2}% 73 \BOOKMARK [2][-]{subsection.10.2.2}{Underlying Technology}{section.10.2}% 74 \BOOKMARK [2][-]{subsection.10.2.3}{Matrices and Vectors}{section.10.2}% 75 \BOOKMARK [2][-]{subsection.10.2.4}{Vector Spaces}{section.10.2}% 76 \BOOKMARK [0][-]{chapter.11}{Databases}{part.2}% 77 \BOOKMARK [1][-]{section.11.1}{Saving and Loading Python Objects}{chapter.11}% 78 \BOOKMARK [2][-]{subsection.11.1.1}{save and load}{section.11.1}% 79 \BOOKMARK [2][-]{subsection.11.1.2}{pickle: Python object serialization}{section.11.1}% 80 \BOOKMARK [1][-]{section.11.2}{SQLite and SQLAlchemy}{chapter.11}% 81