(* Content-type: application/vnd.wolfram.mathematica *)

(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)

(* CreatedBy='Mathematica 8.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       157,          7]
NotebookDataLength[     85475,       2548]
NotebookOptionsPosition[     57594,       1904]
NotebookOutlinePosition[     62191,       2028]
CellTagsIndexPosition[     61826,       2013]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["EPM`Functions`", "Section",
 InitializationGroup->True],

Cell[TextData[{
 StyleBox["From",
  FontWeight->"Bold"],
 ": ",
 StyleBox["Essentials of Programming in Mathematica\n",
  FontSlant->"Italic"],
 "\[Copyright] Paul R. Wellin 2015"
}], "Text",
 CellMargins->{{28, 10}, {7, 7}},
 FontSize->14],

Cell[CellGroupData[{

Cell["Metadata", "Subsection"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Name", ":", " ", "EPM`Functions`"}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Book", ":", " ", 
   RowBox[{
   "Essentials", " ", "of", " ", "Programming", " ", "in", " ", 
    "Mathematica"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Author", ":", " ", 
    RowBox[{"Paul", " ", "Wellin"}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Summary", ":", " ", 
   RowBox[{
   "This", " ", "package", " ", "contains", " ", "the", " ", "functions", " ",
     "defined", " ", "in", " ", "Chapter", " ", "5", " ", "Functional", " ", 
    RowBox[{"programming", "."}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Context", ":", " ", "EPM`Functions`"}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Package", " ", 
    RowBox[{"Version", ":", " ", "1.0"}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", "Copyright", ":", " ", 
    RowBox[{"Copyright", " ", "2015"}]}], ",", " ", 
   RowBox[{"Paul", " ", "R", " ", "Wellin"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"History", ":", " ", 
     RowBox[{
     "Version", " ", "1.0", " ", "by", " ", "Paul", " ", "Wellin"}]}]}], ",", 
   " ", 
   RowBox[{"Dec", " ", "2012"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", "Keywords", ":", " ", 
    RowBox[{"adjacency", " ", "structure"}]}], ",", " ", 
   RowBox[{"binary", " ", "matrics"}], ",", " ", 
   RowBox[{"Brownian", " ", "sound"}], ",", " ", 
   RowBox[{"Collatz", " ", "sequence"}], ",", " ", 
   RowBox[{"digit", " ", "root"}], ",", " ", 
   RowBox[{"Eulerian", " ", "numbers"}], ",", " ", "attributes", ",", " ", 
   "options", ",", " ", 
   RowBox[{"Hamming", " ", "distance"}], ",", " ", 
   RowBox[{"Horner", " ", "polynomials"}], ",", " ", 
   RowBox[{"Horner", " ", "form"}], ",", " ", 
   RowBox[{"Jacobian", " ", "matrix"}], ",", " ", 
   RowBox[{"nilpotent", " ", "matrix"}], ",", " ", 
   RowBox[{"point", " ", "set", " ", "diameter"}], ",", " ", 
   RowBox[{"perfect", " ", "numbers"}], ",", " ", 
   RowBox[{"prime", " ", "numbers"}], ",", " ", 
   RowBox[{"regular", " ", "polygons"}], ",", " ", 
   RowBox[{"rep", " ", "units"}], ",", " ", 
   RowBox[{"Sierpinski", " ", "triangle"}], ",", " ", 
   RowBox[{"Smarandache", "-", 
    RowBox[{"Wellin", " ", "numbers"}]}], ",", " ", 
   RowBox[{"triangle", " ", "medians"}], ",", " ", 
   RowBox[{"Vandermonde", " ", "matrix"}], ",", " ", 
   RowBox[{"vertex", " ", "neighbors"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Source", ":", " ", 
   RowBox[{"Functions", ".", "nb"}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Mathematica", " ", "Version"}], ":", " ", "10.3"}], " ", 
  "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{"Tested", " ", "in", " ", "Mathematica", " ", "11.1"}], " ", 
  "*)"}]], "Input",ExpressionUUID->"13bb07ce-866b-4843-94bb-660f03d7672b"]
}, Closed]],

Cell[CellGroupData[{

Cell["BeginPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"Remove", "[", 
  RowBox[{
  "AdjacencyStructure", ",", "BinaryMatrix", ",", "BrownianSoundList", ",", 
   "EPM`Collatz`CollatzSequence", ",", "DigitRoot", ",", "EulerianNumber", 
   ",", "FunctionsWithAttribute", ",", "HammingDistance1", ",", 
   "HammingDistance2", ",", "HammingDistance3", ",", "HammingDistance4", ",", 
   "HammingDistance5", ",", "HammingNumberList", ",", "HammingNumber", ",", 
   "HornerPolynomial", ",", "JacobianMatrix", ",", "NilpotentMatrixQ", ",", 
   "PerfectQ", ",", "PointsetDiameter", ",", "PrimeFactorForm", ",", 
   "PrimesLessThan", ",", "RandomNote", ",", "Regular2Graph", ",", "RepUnit", 
   ",", "ReplaceElement", ",", "SierpinskiTriangle", ",", "SmarandacheWellin",
    ",", "TriangleMedians", ",", "UpperTriangularMatrix", ",", 
   "VandermondeMatrix", ",", "VertexNeighbors"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{"BeginPackage", "[", "\"\<EPM`Functions`\>\"", "]"}], ";"}], " ", 
  "*)"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Usage messages for public functions", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"AdjacencyStructure", "::", "usage"}], "=", 
   "\"\<AdjacencyStructure[\!\(\*
StyleBox[\"gr\", \"TI\"]\)] returns the adjacency lists for each vertex in \
the graph \!\(\*
StyleBox[\"gr\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"BinaryMatrix", "::", "usage"}], "=", "\"\<BinaryMatrix[\!\(\*
StyleBox[\"n\", \"TI\"]\)] enumerates all \!\(\*FormBox[
StyleBox[
RowBox[{\"n\", 
StyleBox[\"\[Cross]\",
FontSlant->\"Plain\"], \"n\"}], \"TI\"],
TraditionalForm]\) binary matrices.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"BrownianSoundList", "::", "usage"}], "=", 
   "\"\<BrownianSoundList[] generates and plays one note randomly chosen from \
the 12 semitones of the C major scale.\\nBrownianSoundList[\!\(\*
StyleBox[\"n\", \"TI\"]\), \!\(\*
StyleBox[\"instr\", \"TI\"]\)] generates and plays a sequence of \!\(\*
StyleBox[\"n\", \"TI\"]\) notes randomly chosen from among the 12 semitones \
of the C major scale, using the Midi instrument \!\(\*
StyleBox[\"instr\", \"TI\"]\). The distance between notes is also randomized, \
essentially performing a random walk through the C major scale.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"CollatzSequence", "::", "usage"}], "=", "\"\<CollatzSequence[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns the list of numbers in the Collatz \
sequence of \!\(\*
StyleBox[\"n\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"DigitRoot", "::", "usage"}], "=", "\"\<DigitRoot[\!\(\*
StyleBox[\"n\", \"TI\"]\)] iterates the digit sum of n until the resulting \
number has only one digit.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"EulerianNumber", "::", "usage"}], "=", "\"\<EulerianNumber[\!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"k\", \"TI\"]\)] returns the the number of permutations of the set \
{1,2,3,\[Ellipsis],\!\(\*
StyleBox[\"n\", \"TI\"]\)} with \!\(\*
StyleBox[\"k\", \"TI\"]\) increasing runs of elements.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"FunctionsWithAttribute", "::", "usage"}], "=", 
   "\"\<FunctionsWithAttribute[\!\(\*
StyleBox[\"attr\", \"TI\"]\)] returns a list of all symbols in the System` \
context that have the attribute \!\(\*
StyleBox[\"attr\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"FunctionsWithOption", "::", "usage"}], "=", 
   "\"\<FunctionsWithOption[\!\(\*
StyleBox[\"opt\", \"TI\"]\)] returns a list of all symbols in the System` \
context that have the option \!\(\*
StyleBox[\"opt\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingDistance1", "::", "usage"}], "=", 
   "\"\<HammingDistance1[\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\)] computes the Hamming distance of the two \
binary signals \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\) and \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\) using \
Count[MapThread[SameQ[\[Ellipsis]]]].\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingDistance2", "::", "usage"}], "=", 
   "\"\<HammingDistance2[\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\)] computes the Hamming distance of the two \
binary signals \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\) and \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\) using Total[BitXor[\[Ellipsis]]].\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingDistance3", "::", "usage"}], "=", 
   "\"\<HammingDistance3[\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\)] computes the Hamming distance of the two \
binary signals \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\) and \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\) using \
Length[Select[\[Ellipsis],Mod[#,2]==1&]].\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingDistance4", "::", "usage"}], "=", 
   "\"\<HammingDistance4[\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\)] computes the Hamming distance of the two \
binary signals \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\) and \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\) using Length[Select[\[Ellipsis],OddQ]].\>\
\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingDistance5", "::", "usage"}], "=", 
   "\"\<HammingDistance5[\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\)] computes the Hamming distance of the two \
binary signals \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"1\"]\) and \!\(\*SubscriptBox[
StyleBox[\"sig\", \"TI\"], \"2\"]\) using \
Length[Cases[Transpose[\[Ellipsis]],{p_,q_}/;p\[NotEqual]q]].\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingNumber", "::", "usage"}], "=", "\"\<HammingNumber[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns the \!\(\*
StyleBox[\(\*
StyleBox[\"n\", \"TI\"]th\)]\) Hamming number. Hamming numbers are defined as \
numbers that divide powers of 60.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HammingNumberList", "::", "usage"}], "=", 
   "\"\<HammingNumberList[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns the first \!\(\*
StyleBox[\"n\", \"TI\"]\) Hamming numbers.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"HornerPolynomial", "::", "usage"}], "=", 
   "\"\<HornerPolynomial[\!\(\*
StyleBox[\"lis\", \"TI\"]\),\!\(\*
StyleBox[\"var\", \"TI\"]\)] gives the Horner normal form of the polynomial \
formed by the list \!\(\*
StyleBox[\"lis\", \"TI\"]\) in the variable \!\(\*
StyleBox[\"var\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"JacobianMatrix", "::", "usage"}], "=", "\"\<JacobianMatrix[\!\(\*
StyleBox[\"vecs\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"vars\", \"TI\"]\)] returns the Jacobian matrix of the list \!\(\*
StyleBox[\"vecs\", \"TI\"]\) differentiated with respect to the list of \
variables \!\(\*
StyleBox[\"vars\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"NilpotentMatrixQ", "::", "usage"}], "=", 
   "\"\<NilpotentMatrixQ[\!\(\*
StyleBox[\"mat\", \"TI\"]\)] returns True if the matrix \!\(\*
StyleBox[\"mat\", \"TI\"]\) is a square matrix all of whose eigenvalues are \
zero.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PointsetDiameter", "::", "usage"}], "=", 
   "\"\<PointsetDiameter[\!\(\*
StyleBox[\"pts\", \"TI\"]\)] computes the maximum distance between any pair \
of points in the list of points, \!\(\*
StyleBox[\"pts\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PerfectQ", "::", "usage"}], "=", "\"\<PerfectQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\) is a perfect number; i.e., if \!\(\*
StyleBox[\"n\", \"TI\"]\) is equal to the sum of its proper divisors.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PrimeFactorForm", "::", "usage"}], "=", "\"\<PrimeFactorForm[\!\(\*
StyleBox[\"n\", \"TI\"]\)] formats the prime factorization of the integer \
\!\(\*
StyleBox[\"n\", \"TI\"]\) in a traditional form.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PrimesLessThan", "::", "usage"}], "=", "\"\<PrimesLessThan[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns the number of prime numbers less than \!\(\*
StyleBox[\"n\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RandomNote", "::", "usage"}], "=", 
   "\"\<RandomNote[] generates and plays one note randomly chosen from the 12 \
semitones of the C major scale.\\nRandomNote[\!\(\*
StyleBox[\"n\", \"TI\"]\), \!\(\*
StyleBox[\"instr\", \"TI\"]\)] generates and plays a sequence of \!\(\*
StyleBox[\"n\", \"TI\"]\) notes randomly chosen from among the 12 semitones \
of the C major scale, using the Midi instrument \!\(\*
StyleBox[\"instr\", \"TI\"]\). It also randomizes the durations of the notes.\
\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Regular2Graph", "::", "usage"}], "=", "\"\<Regular2Graph[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns a graph with \!\(\*
StyleBox[\"n\", \"TI\"]\) equilateral edges and all of whose internal angles \
are equiangular.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RepUnit", "::", "usage"}], "=", "\"\<RepUnit[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns a number consisting the digit 1 \
concatenated \!\(\*
StyleBox[\"n\", \"TI\"]\) times.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ReplaceElement", "::", "usage"}], "=", "\"\<ReplaceElement[\!\(\*
StyleBox[\"mat\", \"TI\"]\), \!\(\*
StyleBox[\"lis\", \"TI\"]\)] returns the matrix \!\(\*
StyleBox[\"mat\", \"TI\"]\) with elements that are strings specified by \
\!\(\*
StyleBox[\"lis\", \"TI\"]\) replaced with their column mean.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"SierpinskiTriangle", "::", "usage"}], "=", 
   "\"\<SierpinskiTriangle[\!\(\*
StyleBox[\"n\", \"TI\"]\)] displays a Sierpinski triangle after \!\(\*
StyleBox[\"n\", \"TI\"]\) iterations of the geometric transformations that \
define it. SierpinskiTriangle takes the same options as Graphics.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"SmarandacheWellin", "::", "usage"}], "=", 
   "\"\<SmarandacheWellin[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns the \!\(\*
StyleBox[\(\*
StyleBox[\"n\", \"TI\"]th\)]\) Smarandache-Wellin number formed by \
concatenating the digits of successive primes.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"TriangleMedians", "::", "usage"}], "=", 
   "\"\<TriangleMedians[Triangle[{\!\(\*SubscriptBox[
StyleBox[\"p\", \"TI\"], \"1\"]\),\!\(\*SubscriptBox[
StyleBox[\"p\", \"TI\"], \"2\"]\),\!\(\*SubscriptBox[
StyleBox[\"p\", \"TI\"], \"3\"]\)]] takes a Triangle region as argument and \
returns the three medians (as Line objects) of the triangle.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"UpperTriangularMatrix", "::", "usage"}], "=", 
   "\"\<UpperTriangularMatrix[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns a square matrix of size \!\(\*
StyleBox[\"n\", \"TI\"]\) with zeros below the diagonal and ones on and above \
the diagonal.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"VandermondeMatrix", "::", "usage"}], "=", 
   "\"\<VandermondeMatrix[\!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"var\", \"TI\"]\)] returns the Vandermonde matrix of order \!\(\*
StyleBox[\"n\", \"TI\"]\) in the variable \!\(\*
StyleBox[\"var\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"VertexNeighbors", "::", "usage"}], "=", "\"\<VertexNeighbors[\!\(\*
StyleBox[\"gr\", \"TI\"]\),\!\(\*
StyleBox[\"v\", \"TI\"]\),\!\(\*
StyleBox[\"dist\", \"TI\"]\)] finds all those vertices in the graph \!\(\*
StyleBox[\"gr\", \"TI\",
FontSlant->\"Italic\"]\) that are distance \!\(\*
StyleBox[\"dist\", \"TI\",
FontSlant->\"Italic\"]\) from the vertex \!\(\*FormBox[
StyleBox[\"v\", \"TI\"],
TraditionalForm]\).\>\""}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Options", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "BrownianSoundList", "]"}], "=", 
   RowBox[{"{", 
    RowBox[{"Weights", "\[Rule]", "Automatic"}], "}"}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "Regular2Graph", "]"}], "=", 
   RowBox[{"Options", "[", "Graph", "]"}]}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Private context", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Begin", "[", "\"\<`Private`\>\"", "]"}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Function definitions (public and private)", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"adjacencyList", "[", 
   RowBox[{"gr_", ",", "u_"}], "]"}], ":=", 
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{"DirectedGraphQ", "[", "gr", "]"}], ",", 
    RowBox[{"Select", "[", 
     RowBox[{
      RowBox[{"VertexList", "[", "gr", "]"}], ",", 
      RowBox[{
       RowBox[{"EdgeQ", "[", 
        RowBox[{"gr", ",", 
         RowBox[{"DirectedEdge", "[", 
          RowBox[{"u", ",", "#"}], "]"}]}], "]"}], "&"}]}], "]"}], ",", 
    RowBox[{"Select", "[", 
     RowBox[{
      RowBox[{"VertexList", "[", "gr", "]"}], ",", 
      RowBox[{
       RowBox[{"EdgeQ", "[", 
        RowBox[{"gr", ",", 
         RowBox[{"UndirectedEdge", "[", 
          RowBox[{"u", ",", "#"}], "]"}]}], "]"}], "&"}]}], "]"}]}], 
   "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"AdjacencyStructure", "[", "gr_Graph", "]"}], ":=", 
  RowBox[{"Map", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"{", 
      RowBox[{"#", ",", 
       RowBox[{"AdjacencyList", "[", 
        RowBox[{"gr", ",", "#"}], "]"}]}], "}"}], "&"}], ",", 
    RowBox[{"VertexList", "[", "gr", "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BinaryMatrix", "[", 
   RowBox[{"n_Integer", "?", "Positive"}], "]"}], ":=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"Partition", "[", 
     RowBox[{
      RowBox[{"IntegerDigits", "[", 
       RowBox[{"i", ",", "2", ",", 
        SuperscriptBox["n", "2"]}], "]"}], ",", "n"}], "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"i", ",", "0", ",", 
      RowBox[{
       SuperscriptBox["2", 
        SuperscriptBox["n", "2"]], "-", "1"}]}], "}"}]}], 
   "]"}]}]], "InputOnly"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BrownianSoundList", "[", 
   RowBox[{"steps_Integer", ",", 
    RowBox[{"instr_:", "\"\<Vibraphone\>\""}], ",", 
    RowBox[{"OptionsPattern", "[", "]"}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"walk", ",", "durs", ",", "weights"}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"weights", "=", 
      RowBox[{"If", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"OptionValue", "[", "Weights", "]"}], "===", "Automatic"}], 
        ",", 
        RowBox[{"Table", "[", 
         RowBox[{
          RowBox[{"1", "/", "9"}], ",", 
          RowBox[{"{", "9", "}"}]}], "]"}], ",", 
        RowBox[{"OptionValue", "[", "Weights", "]"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"walk", "[", "n_", "]"}], ":=", 
      RowBox[{"Accumulate", "[", 
       RowBox[{"RandomChoice", "[", 
        RowBox[{
         RowBox[{"weights", "\[Rule]", 
          RowBox[{"Range", "[", 
           RowBox[{
            RowBox[{"-", "4"}], ",", "4"}], "]"}]}], ",", "n"}], "]"}], 
       "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"durs", "=", 
      RowBox[{"RandomChoice", "[", 
       RowBox[{
        RowBox[{"Range", "[", 
         RowBox[{
          RowBox[{"1", "/", "16"}], ",", "1", ",", 
          RowBox[{"1", "/", "16"}]}], "]"}], ",", 
        RowBox[{"{", "steps", "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Sound", "@", 
      RowBox[{"MapThread", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"SoundNote", "[", 
          RowBox[{"#1", ",", "#2", ",", "instr"}], "]"}], "&"}], ",", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"walk", "[", "steps", "]"}], ",", "durs"}], "}"}]}], 
       "]"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "InputOnly",
 CellTags->"7.3 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BrownianSoundList", "[", "]"}], ":=", 
  RowBox[{"BrownianSoundList", "[", 
   RowBox[{"1", ",", "\"\<Vibraphone\>\""}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"CollatzSequence", "[", "n_", "]"}], ":=", 
  RowBox[{"NestWhileList", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"If", "[", 
      RowBox[{
       RowBox[{"EvenQ", "[", "#", "]"}], ",", 
       RowBox[{"#", "/", "2"}], ",", 
       RowBox[{
        RowBox[{"3", "#"}], "+", "1"}]}], "]"}], "&"}], ",", "n", ",", 
    RowBox[{
     RowBox[{"#", "\[NotEqual]", "1"}], "&"}]}], "]"}]}]], "Input",
 CellTags->{"5.4", "5.5"}],

Cell[BoxData[
 RowBox[{
  RowBox[{"DigitRoot", "[", 
   RowBox[{"n_Integer", "?", "Positive"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"locn", "=", "n"}], ",", "lis"}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"While", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{
        RowBox[{"Length", "[", 
         RowBox[{"lis", "=", 
          RowBox[{"IntegerDigits", "@", "locn"}]}], "]"}], ">", "1"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"locn", "=", 
        RowBox[{"Total", "[", "lis", "]"}]}]}], "]"}], ";", 
     "\[IndentingNewLine]", "locn"}]}], "]"}]}]], "Input",
 CellTags->"5.4 Solutions"],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"EulerianNumber", "[", 
    RowBox[{"0", ",", "k_"}], "]"}], "=", "0"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"EulerianNumber", "[", 
    RowBox[{"n_Integer", ",", "0"}], "]"}], "=", "1"}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{
    RowBox[{"EulerianNumber", "[", 
     RowBox[{"n_Integer", ",", "k_Integer"}], "]"}], "/;", 
    RowBox[{"k", "\[GreaterEqual]", "n"}]}], "=", "0"}], ";"}]}], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"EulerianNumber", "[", 
   RowBox[{"n_Integer", ",", "k_Integer"}], "]"}], ":=", 
  RowBox[{"Block", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"$RecursionLimit", "=", "Infinity"}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"EulerianNumber", "[", 
      RowBox[{"n", ",", "k"}], "]"}], "=", 
     RowBox[{
      RowBox[{
       RowBox[{"(", 
        RowBox[{"k", "+", "1"}], ")"}], 
       RowBox[{"EulerianNumber", "[", 
        RowBox[{
         RowBox[{"n", "-", "1"}], ",", "k"}], "]"}]}], "+", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{"n", "-", "k"}], ")"}], 
       RowBox[{"EulerianNumber", "[", 
        RowBox[{
         RowBox[{"n", "-", "1"}], ",", 
         RowBox[{"k", "-", "1"}]}], "]"}]}]}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"FunctionsWithAttribute", "[", "attrib_Symbol", "]"}], ":=", 
  RowBox[{"Select", "[", 
   RowBox[{
    RowBox[{"Names", "[", "\"\<System`*\>\"", "]"}], ",", 
    RowBox[{
     RowBox[{"MemberQ", "[", 
      RowBox[{
       RowBox[{"Attributes", "[", "#", "]"}], ",", "attrib"}], "]"}], "&"}]}],
    "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"FunctionsWithOption", "[", "opt_Symbol", "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"names", ",", "lis"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"names", "=", 
      RowBox[{"Complement", "[", 
       RowBox[{
        RowBox[{"Names", "[", "\"\<System`*\>\"", "]"}], ",", 
        RowBox[{"Names", "[", "\"\<System`$*\>\"", "]"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"lis", "=", 
      RowBox[{"DeleteCases", "[", 
       RowBox[{"names", ",", 
        RowBox[{"f_", "/;", 
         RowBox[{
          RowBox[{"Options", "[", 
           RowBox[{"Symbol", "[", "f", "]"}], "]"}], "===", 
          RowBox[{"{", "}"}]}]}]}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Select", "[", 
      RowBox[{"lis", ",", 
       RowBox[{
        RowBox[{"MemberQ", "[", 
         RowBox[{
          RowBox[{"Options", "[", 
           RowBox[{"Symbol", "[", "#", "]"}], "]"}], ",", "opt", ",", "2"}], 
         "]"}], "&"}]}], "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingDistance1", "[", 
   RowBox[{"lis1_", ",", "lis2_"}], "]"}], ":=", "\[IndentingNewLine]", 
  RowBox[{"Count", "[", 
   RowBox[{
    RowBox[{"MapThread", "[", 
     RowBox[{"SameQ", ",", 
      RowBox[{"{", 
       RowBox[{"lis1", ",", "lis2"}], "}"}]}], "]"}], ",", "False"}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingDistance2", "[", 
   RowBox[{"lis1_", ",", "lis2_"}], "]"}], ":=", 
  RowBox[{"Total", "[", 
   RowBox[{"BitXor", "[", 
    RowBox[{"lis1", ",", "lis2"}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingDistance3", "[", 
   RowBox[{"lis1_", ",", "lis2_"}], "]"}], ":=", 
  RowBox[{"Length", "[", 
   RowBox[{"Select", "[", 
    RowBox[{
     RowBox[{"lis1", "+", "lis2"}], ",", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        RowBox[{"Mod", "[", 
         RowBox[{"#", ",", "2"}], "]"}], "\[Equal]", "1"}], "&"}], ")"}]}], 
    "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingDistance4", "[", 
   RowBox[{"lis1_", ",", "lis2_"}], "]"}], ":=", "\[IndentingNewLine]", 
  RowBox[{"Length", "[", 
   RowBox[{"Select", "[", 
    RowBox[{
     RowBox[{"lis1", "+", "lis2"}], ",", "OddQ"}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingDistance5", "[", 
   RowBox[{"lis1_List", ",", "lis2_List"}], "]"}], ":=", 
  "\[IndentingNewLine]", 
  RowBox[{"Length", "[", 
   RowBox[{"Cases", "[", 
    RowBox[{
     RowBox[{"Transpose", "[", 
      RowBox[{"{", 
       RowBox[{"lis1", ",", "lis2"}], "}"}], "]"}], ",", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"p_", ",", "q_"}], "}"}], "/;", 
      RowBox[{"p", "\[NotEqual]", "q"}]}]}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingNumberList", "[", "n_", "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", "lim", "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"lim", "=", 
      RowBox[{"If", "[", 
       RowBox[{
        RowBox[{"n", "<", "100"}], ",", 
        RowBox[{"Ceiling", "[", 
         RowBox[{"Log2", "[", "n", "]"}], "]"}], ",", 
        RowBox[{"Ceiling", "[", 
         RowBox[{
          RowBox[{"Log2", "[", 
           FractionBox["n", 
            RowBox[{"2", " ", "3", " ", "5"}]], "]"}], " ", 
          RowBox[{"Log2", "[", "n", "]"}]}], "]"}]}], "]"}]}], ";", 
     RowBox[{"Join", "[", 
      RowBox[{
       RowBox[{"{", "1", "}"}], ",", 
       RowBox[{"Take", "[", 
        RowBox[{
         RowBox[{"Union", "@@", 
          RowBox[{"NestList", "[", 
           RowBox[{
            RowBox[{
             RowBox[{"Union", "@@", 
              RowBox[{"Outer", "[", 
               RowBox[{"Times", ",", 
                RowBox[{"{", 
                 RowBox[{"2", ",", "3", ",", "5"}], "}"}], ",", "#"}], 
               "]"}]}], "&"}], ",", 
            RowBox[{"{", 
             RowBox[{"2", ",", "3", ",", "5"}], "}"}], ",", "lim"}], "]"}]}], 
         ",", 
         RowBox[{"n", "-", "1"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}],
    "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HammingNumber", "[", "n_", "]"}], ":=", 
  RowBox[{"Part", "[", 
   RowBox[{
    RowBox[{"HammingNumberList", "[", "n", "]"}], ",", "n"}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"HornerPolynomial", "[", 
   RowBox[{"list_List", ",", "var_"}], "]"}], ":=", 
  RowBox[{"Fold", "[", 
   RowBox[{
    RowBox[{
     RowBox[{
      RowBox[{"var", " ", "#1"}], "+", "#2"}], "&"}], ",", "0", ",", "list"}],
    "]"}]}]], "Input",
 CellTags->{"5.5", "5.5 Exercises"}],

Cell[BoxData[
 RowBox[{
  RowBox[{"JacobianMatrix", "[", 
   RowBox[{"vec_List", ",", "vars_List"}], "]"}], ":=", 
  RowBox[{
   RowBox[{"Outer", "[", 
    RowBox[{"D", ",", "vec", ",", "vars"}], "]"}], "/;", 
   RowBox[{
    RowBox[{"Dimensions", "[", "vec", "]"}], "\[Equal]", 
    RowBox[{"Dimensions", "[", "vars", "]"}]}]}]}]], "Input",
 CellTags->"5.1 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"NilpotentMatrixQ", "[", 
   RowBox[{"mat_", "?", "SquareMatrixQ"}], "]"}], ":=", 
  RowBox[{"AllTrue", "[", 
   RowBox[{
    RowBox[{"Eigenvalues", "[", "mat", "]"}], ",", 
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       RowBox[{"#", "==", "0"}], "||", 
       RowBox[{"#", "==", "0.0"}]}], ")"}], "&"}]}], "]"}]}]], "Input",
 CellTags->"5.5 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PerfectQ", "[", "n_", "]"}], ":=", 
  RowBox[{
   RowBox[{"DivisorSigma", "[", 
    RowBox[{"1", ",", "n"}], "]"}], "\[Equal]", 
   RowBox[{"2", "n"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PointsetDiameter", "[", "pts_List", "]"}], ":=", 
  RowBox[{"Max", "[", 
   RowBox[{"Apply", "[", 
    RowBox[{"EuclideanDistance", ",", 
     RowBox[{"Subsets", "[", 
      RowBox[{"pts", ",", 
       RowBox[{"{", "2", "}"}]}], "]"}], ",", 
     RowBox[{"{", "1", "}"}]}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PrimeFactorForm", "[", 
   RowBox[{"p_", "?", "PrimePowerQ"}], "]"}], ":=", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"fp", "=", 
      RowBox[{"FactorInteger", "[", "p", "]"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"Interpretation", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"First", "[", 
       RowBox[{"Superscript", "@@@", 
        RowBox[{"FactorInteger", "[", "p", "]"}]}], "]"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Times", "@@", 
       RowBox[{"(", 
        RowBox[{"Power", "@@@", "fp"}], ")"}]}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PrimeFactorForm", "[", "p_Integer", "]"}], ":=", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"fp", "=", 
      RowBox[{"FactorInteger", "[", "p", "]"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"Interpretation", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"CenterDot", "@@", 
       RowBox[{"(", 
        RowBox[{"Superscript", "@@@", "fp"}], ")"}]}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Times", "@@", 
       RowBox[{"(", 
        RowBox[{"Power", "@@@", "fp"}], ")"}]}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PrimesLessThan", "[", "n_Integer", "]"}], ":=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"Prime", "[", "p", "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"p", ",", 
      RowBox[{"PrimePi", "[", "n", "]"}]}], "}"}]}], "]"}]}]], "Input",
 CellTags->"5.1 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomNote", "[", 
   RowBox[{"n_Integer", ",", 
    RowBox[{"instrument_", ":", "\"\<Piano\>\""}]}], "]"}], ":=", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"notes", "=", 
       RowBox[{"Join", "[", 
        RowBox[{
         RowBox[{"{", "None", "}"}], ",", 
         RowBox[{"Range", "[", 
          RowBox[{"0", ",", "11"}], "]"}]}], "]"}]}], ",", 
      RowBox[{"durations", "=", 
       RowBox[{"Range", "[", 
        RowBox[{
         FractionBox["1", "8"], ",", "1", ",", 
         FractionBox["1", "8"]}], "]"}]}]}], "}"}], ",", 
    RowBox[{"Sound", "[", 
     RowBox[{"{", 
      RowBox[{"instrument", ",", 
       RowBox[{"MapThread", "[", 
        RowBox[{
         RowBox[{
          RowBox[{"SoundNote", "[", 
           RowBox[{"#1", ",", "#2"}], "]"}], "&"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"RandomChoice", "[", 
            RowBox[{"notes", ",", "n"}], "]"}], ",", 
           RowBox[{"RandomChoice", "[", 
            RowBox[{"durations", ",", "n"}], "]"}]}], "}"}]}], "]"}]}], "}"}],
      "]"}]}], "]"}]}]], "InputOnly",
 CellTags->"7.4"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomNote", "[", "]"}], ":=", 
  RowBox[{"RandomNote", "[", 
   RowBox[{"1", ",", "\"\<Piano\>\""}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Regular2Graph", "[", 
   RowBox[{"n_Integer", ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  "\[IndentingNewLine]", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"lis", "=", 
      RowBox[{"Range", "[", "n", "]"}]}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{"Graph", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"MapThread", "[", 
       RowBox[{"UndirectedEdge", ",", 
        RowBox[{"{", 
         RowBox[{"lis", ",", 
          RowBox[{"RotateLeft", "[", "lis", "]"}]}], "}"}]}], "]"}], ",", 
      "\[IndentingNewLine]", "opts", ",", "\[IndentingNewLine]", 
      RowBox[{"VertexSize", "\[Rule]", "0.05"}], ",", 
      RowBox[{"EdgeStyle", "\[Rule]", "Thick"}]}], "]"}]}], 
   "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RepUnit", "[", "n_", "]"}], ":=", 
  RowBox[{"Nest", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"(", 
      RowBox[{
       RowBox[{"10", " ", "#"}], "+", "1"}], ")"}], "&"}], ",", "1", ",", 
    RowBox[{"n", "-", "1"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"colMean", "[", 
   RowBox[{"col_", ",", "str_String"}], "]"}], ":=", 
  RowBox[{"col", "/.", 
   RowBox[{"str", "\[RuleDelayed]", 
    RowBox[{"Mean", "[", 
     RowBox[{"Cases", "[", 
      RowBox[{"col", ",", 
       RowBox[{"_", "?", "NumberQ"}]}], "]"}], "]"}]}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ReplaceElement", "[", 
   RowBox[{"mat_", ",", "str_String"}], "]"}], ":=", 
  RowBox[{"Transpose", "[", 
   RowBox[{"Map", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"colMean", "[", 
       RowBox[{"#", ",", "str"}], "]"}], "&"}], ",", 
     RowBox[{"Transpose", "[", "mat", "]"}]}], "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SierpinskiTriangle", "[", 
   RowBox[{"iter_", ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "Graphics", "]"}]}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"vertices", ",", "vecs"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"vertices", "=", 
      RowBox[{"N", "[", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"0", ",", "0"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"1", ",", "0"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{"1", "/", "2"}], ",", "1"}], "}"}]}], "}"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"vecs", "=", 
      RowBox[{"0.5", "vertices"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Graphics", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"Blue", ",", 
         RowBox[{"Nest", "[", 
          RowBox[{
           RowBox[{
            RowBox[{"{", 
             RowBox[{"Blue", ",", 
              RowBox[{"Translate", "[", 
               RowBox[{
                RowBox[{"Scale", "[", 
                 RowBox[{"#", ",", "0.5", ",", 
                  RowBox[{"{", 
                   RowBox[{"0.", ",", "0."}], "}"}]}], "]"}], ",", "vecs"}], 
               "]"}]}], "}"}], "&"}], ",", 
           RowBox[{"Polygon", "[", "vertices", "]"}], ",", "iter"}], "]"}]}], 
        "}"}], ",", "opts"}], "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SmarandacheWellin", "[", 
   RowBox[{"n_Integer", "?", "Positive"}], "]"}], ":=", 
  RowBox[{"FromDigits", "[", 
   RowBox[{"Flatten", "[", 
    RowBox[{"IntegerDigits", "@", 
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"Prime", "[", "i", "]"}], ",", 
       RowBox[{"{", 
        RowBox[{"i", ",", "n"}], "}"}]}], "]"}]}], "]"}], "]"}]}]], "Input",
 CellTags->"5.6 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"TriangleMedians", "[", 
   RowBox[{"Triangle", "[", 
    RowBox[{"{", 
     RowBox[{"p1_", ",", "p2_", ",", "p3_"}], "}"}], "]"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"midpoint", ",", "midpts"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"midpoint", "[", 
       RowBox[{"{", 
        RowBox[{"pt1_", ",", "pt2_"}], "}"}], "]"}], ":=", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{"pt1", "+", "pt2"}], ")"}], "/", "2"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"midpts", "=", 
      RowBox[{"Map", "[", 
       RowBox[{"midpoint", ",", 
        RowBox[{"Subsets", "[", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{"p1", ",", "p2", ",", "p3"}], "}"}], ",", 
          RowBox[{"{", "2", "}"}]}], "]"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"MapThread", "[", 
      RowBox[{
       RowBox[{
        RowBox[{"Line", "[", 
         RowBox[{"{", 
          RowBox[{"#1", ",", "#2"}], "}"}], "]"}], "&"}], ",", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"p3", ",", "p2", ",", "p1"}], "}"}], ",", "midpts"}], 
        "}"}]}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"UpperTriangularMatrix", "[", 
   RowBox[{"n_", ",", 
    RowBox[{"val_", ":", "1"}]}], "]"}], ":=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"If", "[", 
     RowBox[{
      RowBox[{"i", "\[GreaterEqual]", "j"}], ",", "0", ",", "val"}], "]"}], 
    ",", 
    RowBox[{"{", 
     RowBox[{"i", ",", "n"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"j", ",", "n"}], "}"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"VandermondeMatrix", "[", 
   RowBox[{
    RowBox[{"n_Integer", "/;", 
     RowBox[{"n", ">", "1"}]}], ",", "x_"}], "]"}], ":=", 
  "\[IndentingNewLine]", 
  RowBox[{"Outer", "[", 
   RowBox[{"Power", ",", 
    RowBox[{"Table", "[", 
     RowBox[{
      SubscriptBox["x", "i"], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "1", ",", "n"}], "}"}]}], "]"}], ",", 
    RowBox[{"Range", "[", 
     RowBox[{"0", ",", 
      RowBox[{"n", "-", "1"}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"VertexNeighbors", "[", 
   RowBox[{"gr_", ",", "v_", ",", "dist_"}], "]"}], ":=", 
  RowBox[{"VertexList", "[", 
   RowBox[{"gr", ",", 
    RowBox[{"_", "?", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{
        RowBox[{"GraphDistance", "[", 
         RowBox[{"gr", ",", "v", ",", "#"}], "]"}], "\[Equal]", "dist"}], 
       "&"}], ")"}]}]}], "]"}]}]], "Input",
 CellTags->"5.5 Solutions"]
}, Closed]],

Cell[CellGroupData[{

Cell["End private context", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"End", "[", "]"}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["EndPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"(*", 
  RowBox[{"EndPackage", "[", "]"}], "*)"}]], "Input"]
}, Closed]]
}, Open  ]],

Cell[CellGroupData[{

Cell["Examples", "Section"],

Cell[CellGroupData[{

Cell["Load package", "Subsection"],

Cell[BoxData["Quit"], "Input",ExpressionUUID->"ef487723-54c7-40d3-ad34-229e4bed5bc3"],

Cell[TextData[{
 "Load package (do ",
 StyleBox["not",
  FontSlant->"Italic"],
 " say \[OpenCurlyDoubleQuote]Yes\[CloseCurlyDoubleQuote] to evaluate init \
cells dialog)."
}], "Text"],

Cell[BoxData[
 RowBox[{"<<", "EPM`"}]], "Input",ExpressionUUID->"1b59a9fc-edad-4681-9d1f-6c5d8ab4c972"]
}, Open  ]],

Cell[CellGroupData[{

Cell["Test usage messages", "Subsection"],

Cell[BoxData[
 RowBox[{"?", "AdjacencyStructure"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "BinaryMatrix"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "BrownianSoundList"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "CollatzSequence"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "DigitRoot"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "EulerianNumber"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "FunctionsWithAttribute"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "FunctionsWithOption"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "HammingDistance1"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "HammingNumber"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "HammingNumberList"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "HornerPolynomial"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "JacobianMatrix"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "NilpotentMatrixQ"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "PerfectQ"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "PointsetDiameter"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "PrimeFactorForm"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "PrimesLessThan"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "RandomNote"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "Regular2Graph"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "RepUnit"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "ReplaceElement"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "SierpinskiTriangle"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "SmarandacheWellin"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "TriangleMedians"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "UpperTriangularMatrix"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "VandermondeMatrix"}]], "Input"],

Cell[BoxData[
 RowBox[{"?", "VertexNeighbors"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Exercise the functions and their options", "Subsection"],

Cell[CellGroupData[{

Cell["AdjacencyStructure", "Subsubsection"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"SeedRandom", "[", "16", "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"gr", "=", 
  RowBox[{"RandomGraph", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"10", ",", "15"}], "}"}], ",", 
    RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}]}], "]"}]}]}], "Input",\
ExpressionUUID->"a7453a92-5add-4f46-a0e3-89a4eedf249d"],

Cell[BoxData[
 RowBox[{"AdjacencyStructure", "[", "gr", "]"}]], "Input",ExpressionUUID->"8937d2ac-7ca1-46c4-9e64-753085358845"],

Cell["Check that it works for a directed graph also.", "SolutionText"],

Cell[BoxData[
 RowBox[{"gr2", "=", 
  RowBox[{"Graph", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"1", "\[DirectedEdge]", "2"}], ",", 
      RowBox[{"2", "\[DirectedEdge]", "1"}], ",", 
      RowBox[{"3", "\[DirectedEdge]", "1"}], ",", 
      RowBox[{"3", "\[DirectedEdge]", "2"}], ",", 
      RowBox[{"4", "\[DirectedEdge]", "1"}], ",", 
      RowBox[{"4", "\[DirectedEdge]", "2"}], ",", 
      RowBox[{"4", "\[DirectedEdge]", "4"}]}], "}"}], ",", 
    RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}]}], "]"}]}]], "Input",E\
xpressionUUID->"5091820e-9c23-4767-8747-0abefe84727a"],

Cell[BoxData[
 RowBox[{"AdjacencyStructure", "[", "gr2", "]"}]], "Input",ExpressionUUID->"f03caa55-403b-45e3-9f0d-c8ea28c5f364"]
}, Closed]],

Cell[CellGroupData[{

Cell["BinaryMatrix", "Subsubsection"],

Cell[BoxData[
 RowBox[{"BinaryMatrix", "[", "2", "]"}]], "Input",ExpressionUUID->"7064854d-10bb-402f-a00e-c4cb15e13155"]
}, Closed]],

Cell[CellGroupData[{

Cell["BrownianSoundList", "Subsubsection"],

Cell[BoxData[
 RowBox[{"BrownianSoundList", "[", "]"}]], "Input",ExpressionUUID->"55d94f55-d2e4-4ffd-a2cc-f1d6275bc564"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BrownianSoundList", "[", 
   RowBox[{"8", ",", "\"\<Piano\>\""}], "]"}], "//", 
  "EmitSound"}]], "InputOnly",
 CellTags->
  "7.3 Solutions",ExpressionUUID->"b61e2c1b-1626-40d0-ba63-c48546334bf5"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BrownianSoundList", "[", 
   RowBox[{"8", ",", "\"\<Marimba\>\"", ",", 
    RowBox[{"Weights", "\[Rule]", 
     RowBox[{"Abs", "@", 
      RowBox[{"RandomVariate", "[", 
       RowBox[{
        RowBox[{"NormalDistribution", "[", 
         RowBox[{"0", ",", "4"}], "]"}], ",", "9"}], 
       StyleBox["]", "DesignDiscussion"]}]}]}]}], "]"}], "//", 
  "EmitSound"}]], "Input",
 CellTags->
  "7.3 Solutions",ExpressionUUID->"6cac3eb6-9005-4b11-bb01-d6e140230d65"]
}, Closed]],

Cell[CellGroupData[{

Cell["CollatzSequence", "Subsubsection"],

Cell[BoxData[
 RowBox[{"CollatzSequence", "[", "27", "]"}]], "Input",ExpressionUUID->"64ecfbf1-9928-4430-a44c-0eac4e688a80"]
}, Closed]],

Cell[CellGroupData[{

Cell["DigitRoot", "Subsubsection"],

Cell[BoxData[
 RowBox[{"DigitRoot", "[", "7763", "]"}]], "Input",ExpressionUUID->"047fa2cf-cf98-433f-9665-69361007bbd3"]
}, Closed]],

Cell[CellGroupData[{

Cell["EulerianNumber", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"EulerianNumber", "[", 
     RowBox[{"n", ",", "k"}], "]"}], ",", 
    RowBox[{"{", 
     RowBox[{"n", ",", "0", ",", "7"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"k", ",", "0", ",", "7"}], "}"}]}], "]"}], "//", 
  "TableForm"}]], "Input",ExpressionUUID->"7f569825-c08f-4d0b-873b-\
6aba8dc5b5d5"]
}, Closed]],

Cell[CellGroupData[{

Cell["FunctionsWithAttribute", "Subsubsection"],

Cell[BoxData[
 RowBox[{"FunctionsWithAttribute", "[", "Constant", "]"}]], "Input",Expression\
UUID->"ef34b7f7-be4d-41da-ac12-7215f89d53c7"]
}, Closed]],

Cell[CellGroupData[{

Cell["FunctionsWithOption", "Subsubsection"],

Cell[BoxData[
 RowBox[{"FunctionsWithOption", "[", "MaxPlotPoints", "]"}]], "Input",Expressi\
onUUID->"afe97b54-5c77-4cf6-878f-69524851512c"]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "HammingDistance",
 StyleBox["n",
  FontSlant->"Italic"]
}], "Subsubsection",ExpressionUUID->"4e3a8a1d-9296-47ed-b022-ed188b03538f"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"sig1", "=", 
   RowBox[{"RandomInteger", "[", 
    RowBox[{"1", ",", 
     RowBox[{"{", 
      SuperscriptBox["10", "6"], "}"}]}], "]"}]}], ";"}], "\n", 
 RowBox[{
  RowBox[{"sig2", "=", 
   RowBox[{"RandomInteger", "[", 
    RowBox[{"1", ",", 
     RowBox[{"{", 
      SuperscriptBox["10", "6"], "}"}]}], "]"}]}], ";"}]}], "Input",Expression\
UUID->"64e3a9d3-0b9a-48da-ac8b-42d5a4b12258"],

Cell[BoxData[
 RowBox[{"Grid", "[", 
  RowBox[{
   RowBox[{"Join", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"{", 
       RowBox[{"\"\<Function\>\"", ",", "\"\<{Timing, result}\>\""}], "}"}], 
      "}"}], ",", 
     RowBox[{"Map", "[", 
      RowBox[{
       RowBox[{
        RowBox[{"{", 
         RowBox[{"#", ",", 
          RowBox[{"Timing", "[", 
           RowBox[{"#", "[", 
            RowBox[{"sig1", ",", "sig2"}], "]"}], "]"}]}], "}"}], "&"}], ",", 
       
       RowBox[{"{", 
        RowBox[{
        "HammingDistance1", ",", "HammingDistance2", ",", "HammingDistance3", 
         ",", "HammingDistance4", ",", "HammingDistance5"}], "}"}]}], "]"}]}],
     "]"}], ",", 
   RowBox[{"ItemStyle", "\[Rule]", 
    RowBox[{"Directive", "[", "\"\<SR\>\"", "]"}]}], ",", 
   RowBox[{"Frame", "\[Rule]", "All"}]}], "]"}]], "Input",ExpressionUUID->\
"afc37831-7fe6-43a7-85b5-996e1537a9b0"]
}, Closed]],

Cell[CellGroupData[{

Cell["HammingNumber", "Subsubsection"],

Cell[BoxData[
 RowBox[{"HammingNumber", "[", "1691", "]"}]], "Input",ExpressionUUID->"2c3919f6-7d2c-4d7c-b326-fb67f4e7dcf4"]
}, Closed]],

Cell[CellGroupData[{

Cell["HammingNumberList", "Subsubsection"],

Cell[BoxData[
 RowBox[{"HammingNumberList", "[", 
  SuperscriptBox["10", "2"], "]"}]], "Input",ExpressionUUID->"bba0d344-4870-\
47e2-b24b-4f23dc8118aa"]
}, Closed]],

Cell[CellGroupData[{

Cell["HornerPolynomial", "Subsubsection"],

Cell[BoxData[
 RowBox[{"HornerPolynomial", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", "x"}], 
  "]"}]], "Input",ExpressionUUID->"68535d77-4d81-454e-98f5-42cab39f9cae"]
}, Closed]],

Cell[CellGroupData[{

Cell["JacobianMatrix", "Subsubsection"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"Clear", "[", 
   RowBox[{"x", ",", "y"}], "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"JacobianMatrix", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"x", ",", "y"}], "}"}], ",", 
    RowBox[{"{", 
     RowBox[{"\[Rho]", ",", "\[Theta]"}], "}"}]}], "]"}], "//", 
  "MatrixForm"}]}], "Input",
 CellTags->
  "5.1 Solutions",ExpressionUUID->"5655cc19-2023-4d40-abb1-c43590608ccc"],

Cell[BoxData[
 RowBox[{"Integrate", "[", 
  RowBox[{
   RowBox[{"Abs", "@", 
    RowBox[{"Det", "[", 
     RowBox[{"JacobianMatrix", "[", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"x", ",", "y"}], "}"}], ",", 
       RowBox[{"{", 
        RowBox[{"\[Rho]", ",", "\[Theta]"}], "}"}]}], "]"}], "]"}]}], ",", 
   RowBox[{"{", 
    RowBox[{"\[Rho]", ",", "0", ",", "r"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"\[Theta]", ",", "0", ",", 
     RowBox[{"2", " ", "\[Pi]"}]}], "}"}], ",", 
   RowBox[{"Assumptions", "\[Rule]", 
    RowBox[{"r", ">", "0"}]}]}], "]"}]], "Input",
 CellTags->
  "5.1 Solutions",ExpressionUUID->"311ac866-268b-4a38-89c0-2401e96daa66"]
}, Closed]],

Cell[CellGroupData[{

Cell["NilpotentMatrixQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{"gr", "=", 
  RowBox[{"DirectedGraph", "[", 
   RowBox[{
    RowBox[{"GraphData", "[", 
     RowBox[{"{", 
      RowBox[{"\"\<Antelope\>\"", ",", 
       RowBox[{"{", 
        RowBox[{"6", ",", "6"}], "}"}]}], "}"}], "]"}], ",", 
    "\"\<Acyclic\>\""}], "]"}]}]], "Input",
 CellTags->
  "5.5 Solutions",ExpressionUUID->"a4594b1e-c436-448e-9a34-e778df529f54"],

Cell[BoxData[
 RowBox[{"AcyclicGraphQ", "[", "gr", "]"}]], "Input",
 CellTags->
  "5.5 Solutions",ExpressionUUID->"dd16654b-6999-4053-9613-0703fed53c24"],

Cell[BoxData[
 RowBox[{
  RowBox[{"mat", "=", 
   RowBox[{"AdjacencyMatrix", "[", "gr", "]"}]}], ";"}]], "Input",
 CellTags->
  "5.5 Solutions",ExpressionUUID->"4e454da0-93d4-4270-9f11-ba8a60a6989a"],

Cell[BoxData[
 RowBox[{"NilpotentMatrixQ", "[", "mat", "]"}]], "Input",
 CellTags->
  "5.5 Solutions",ExpressionUUID->"1352edd1-ff3b-4026-a89d-f0bbdfd00d32"]
}, Closed]],

Cell[CellGroupData[{

Cell["PerfectQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Select", "[", 
   RowBox[{
    RowBox[{"Range", "[", "10000", "]"}], ",", "PerfectQ"}], "]"}], "//", 
  "AbsoluteTiming"}]], "Input",ExpressionUUID->"d16ab4f2-aed3-4619-8c46-\
bc9ad1862ec6"],

Cell["Compare to built-in function PerfectNumberQ:", "Text",ExpressionUUID->"690e4dc4-6b1f-4f08-9f24-7028ea205efa"],

Cell[BoxData[
 RowBox[{
  RowBox[{"Select", "[", 
   RowBox[{
    RowBox[{"Range", "[", "10000", "]"}], ",", "PerfectNumberQ"}], "]"}], "//",
   "AbsoluteTiming"}]], "Input",ExpressionUUID->"942c6580-5bb8-428e-b78a-\
2fdbd6945d27"]
}, Closed]],

Cell[CellGroupData[{

Cell["PointsetDiameter", "Subsubsection"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"points3D", "=", 
   RowBox[{"RandomReal", "[", 
    RowBox[{"1", ",", 
     RowBox[{"{", 
      RowBox[{"5", ",", "3"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"PointsetDiameter", "[", "points3D", "]"}]}], "Input",ExpressionUUID-\
>"df1da2c3-8a82-42ff-8eaf-8e5c350509e3"]
}, Closed]],

Cell[CellGroupData[{

Cell["PrimeFactorForm", "Subsubsection"],

Cell[BoxData[
 RowBox[{"PrimeFactorForm", "[", 
  RowBox[{"50", "!"}], "]"}]], "Input",ExpressionUUID->"05d2dc82-288f-44fc-\
8139-e9fa50ebb396"],

Cell[BoxData[
 RowBox[{"PrimeFactorForm", "[", "9", "]"}]], "Input",ExpressionUUID->"5919bae6-efe6-482a-8a97-e2edd536c2aa"]
}, Closed]],

Cell[CellGroupData[{

Cell["PrimesLessThan", "Subsubsection"],

Cell[BoxData[
 RowBox[{"PrimesLessThan", "[", "1000", "]"}]], "Input",ExpressionUUID->"f5ad0fc2-f2c1-4a97-b591-cbb357b28db2"]
}, Closed]],

Cell[CellGroupData[{

Cell["RandomNote", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomNote", "[", "]"}], "//", "EmitSound"}]], "Input",ExpressionUU\
ID->"920af659-2429-428d-a7fa-67ce56c610ed"],

Cell[BoxData[
 RowBox[{"RandomNote", "[", 
  RowBox[{"12", ",", "\"\<Vibraphone\>\""}], "]"}]], "Input",
 CellTags->"7.4",ExpressionUUID->"f79f1a09-2468-40a4-b2cd-e72cb59b7b5c"]
}, Closed]],

Cell[CellGroupData[{

Cell["Regular2Graph", "Subsubsection"],

Cell[BoxData[
 RowBox[{"Regular2Graph", "[", 
  RowBox[{"5", ",", 
   RowBox[{"VertexSize", "\[Rule]", "Small"}], ",", 
   RowBox[{"VertexStyle", "\[Rule]", "Red"}], ",", 
   RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}], ",", 
   RowBox[{"VertexLabelStyle", "\[Rule]", 
    RowBox[{"Directive", "[", 
     RowBox[{"\"\<Menu\>\"", ",", "8"}], "]"}]}]}], "]"}]], "Input",Expression\
UUID->"5523f589-4e73-4add-a83d-4fa44ea11ae8"]
}, Closed]],

Cell[CellGroupData[{

Cell["ReplaceElement", "Subsubsection"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"mat2", "=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "0.4444`"}], ",", "\"\<N/A\>\"", ",", 
       "0.33190000000000003`", ",", "0.4242`", ",", "0.`"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "0.5088`"}], ",", 
       RowBox[{"-", "0.6955`"}], ",", "0.8398`", ",", "0.4287`", ",", 
       RowBox[{"-", "0.9319000000000001`"}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{
      "\"\<N/A\>\"", ",", "0.8287`", ",", "0.5286000000000001`", ",", 
       "0.2591`", ",", 
       RowBox[{"-", "0.6978000000000001`"}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0.6499`", ",", "0.4035`", ",", 
       RowBox[{"-", "0.099`"}], ",", "0.6052000000000001`", ",", "0.5332`"}], 
      "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0.2575`", ",", 
       RowBox[{"-", "0.0589`"}], ",", 
       RowBox[{"-", "0.4938`"}], ",", "\"\<N/A\>\"", ",", 
       RowBox[{"-", "0.5924`"}]}], "}"}]}], "}"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"MatrixForm", "[", "mat2", "]"}]}], "Input",
 NumberMarks->False,
 CellTags->"5.7",ExpressionUUID->"49940485-9c3a-49b0-826e-d841468a4f76"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ReplaceElement", "[", 
   RowBox[{"mat2", ",", "\"\<N/A\>\""}], "]"}], "//", "MatrixForm"}]], "Input",\

 CellTags->{
  "Application", 
   "5.7"},ExpressionUUID->"95eaed7e-29b0-4613-8ef8-0c678310ce30"]
}, Closed]],

Cell[CellGroupData[{

Cell["RepUnit", "Subsubsection"],

Cell[BoxData[
 RowBox[{"RepUnit", "[", "13", "]"}]], "Input",ExpressionUUID->"f4a2cd86-dc0a-4009-934b-546a5ca181cb"]
}, Closed]],

Cell[CellGroupData[{

Cell["SierpinskiTriangle", "Subsubsection"],

Cell[BoxData[
 RowBox[{"SierpinskiTriangle", "[", 
  RowBox[{"8", ",", "\[IndentingNewLine]", 
   RowBox[{"ImageSize", "\[Rule]", "Small"}], ",", 
   RowBox[{"Frame", "\[Rule]", "True"}], ",", 
   RowBox[{"FrameTicks", "\[Rule]", "False"}], ",", 
   RowBox[{"Background", "\[Rule]", "LightYellow"}]}], "]"}]], "Input",Express\
ionUUID->"425068d2-7517-4a01-ae7a-373d64133433"]
}, Closed]],

Cell[CellGroupData[{

Cell["SmarandacheWellin", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SmarandacheWellin", "[", "1429", "]"}], "//", "N"}]], "Input",
 CellTags->
  "5.6 Solutions",ExpressionUUID->"88ef1704-48ca-4381-ae6b-fef57018f265"],

Cell[BoxData[
 RowBox[{"PrimeQ", "[", 
  RowBox[{"SmarandacheWellin", "[", "1429", "]"}], "]"}]], "Input",
 CellTags->
  "5.6 Solutions",ExpressionUUID->"5afeadd7-cbd4-4d67-80a2-4e49a00310db"]
}, Closed]],

Cell[CellGroupData[{

Cell["TriangleMedians", "Subsubsection"],

Cell[BoxData[
 RowBox[{"TriangleMedians", "[", 
  RowBox[{"Triangle", "[", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0", ",", "2"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "0"}], "}"}]}], "}"}], "]"}], "]"}]], "Input",Expressi\
onUUID->"b5c6d597-d944-4f2c-8367-216e68567029"]
}, Closed]],

Cell[CellGroupData[{

Cell["UpperTriangularMatrix", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"UpperTriangularMatrix", "[", "5", "]"}], "//", 
  "MatrixForm"}]], "Input",ExpressionUUID->"df843b5b-4c11-49b6-a780-\
b5cda8432846"]
}, Closed]],

Cell[CellGroupData[{

Cell["VandermondeMatrix", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"VandermondeMatrix", "[", 
   RowBox[{"4", ",", "\[Lambda]"}], "]"}], "//", "MatrixForm"}]], "Input",Expr\
essionUUID->"66eaf087-4fd3-4074-9597-b1e7bf93e700"]
}, Closed]],

Cell[CellGroupData[{

Cell["VertexNeighbors", "Subsubsection",ExpressionUUID->"0fcbcc50-b545-4999-836e-debf1b8f4944"],

Cell[BoxData[
 RowBox[{
  RowBox[{"gr", "=", 
   RowBox[{"GridGraph", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"7", ",", "7"}], "}"}], ",", 
     RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}], ",", 
     RowBox[{"VertexStyle", "\[Rule]", 
      RowBox[{"{", 
       RowBox[{"25", "\[Rule]", "Blue"}], "}"}]}], ",", 
     RowBox[{"VertexSize", "\[Rule]", 
      RowBox[{"{", 
       RowBox[{"25", "\[Rule]", "Medium"}], "}"}]}]}], "]"}]}], 
  ";"}]], "Input",
 CellTags->
  "5.5 Solutions",ExpressionUUID->"515aa9f4-3043-4202-8b10-947bab36b5ac"],

Cell[BoxData[
 RowBox[{"HighlightGraph", "[", 
  RowBox[{"gr", ",", 
   RowBox[{"VertexNeighbors", "[", 
    RowBox[{"gr", ",", "25", ",", "3"}], "]"}]}], "]"}]], "Input",ExpressionUU\
ID->"9a806ada-f42e-4c9d-819e-3fd3bc4cf5d4"]
}, Closed]]
}, Closed]]
}, Open  ]]
},
AutoGeneratedPackage->Automatic,
WindowSize->{831, 796},
WindowMargins->{{Automatic, 834}, {Automatic, 249}},
ShowSelection->True,
FrontEndVersion->"11.1 for Mac OS X x86 (32-bit, 64-bit Kernel) (March 16, \
2017)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{
 "7.3 Solutions"->{
  Cell[19423, 582, 1863, 52, 
  158, "InputOnly", "ExpressionUUID" -> "6ac93316-c3a0-492e-b4ef-3100fbaeca26",
   CellTags->"7.3 Solutions"],
  Cell[44033, 1421, 231, 6, 
  31, "InputOnly", "ExpressionUUID" -> "b61e2c1b-1626-40d0-ba63-c48546334bf5",
   
   CellTags->"7.3 Solutions"],
  Cell[44267, 1429, 495, 13, 
  54, "Input", "ExpressionUUID" -> "6cac3eb6-9005-4b11-bb01-d6e140230d65",
   CellTags->"7.3 Solutions"]},
 "5.4"->{
  Cell[21466, 642, 456, 14, 
  32, "Input", "ExpressionUUID" -> "654a2f06-7440-4556-9a51-156e1795f928",
   CellTags->{"5.4", "5.5"}]},
 "5.5"->{
  Cell[21466, 642, 456, 14, 
  32, "Input", "ExpressionUUID" -> "654a2f06-7440-4556-9a51-156e1795f928",
   CellTags->{"5.4", "5.5"}],
  Cell[28650, 876, 314, 10, 
  32, "Input", "ExpressionUUID" -> "a36de1d1-8cb5-4c63-a100-b6ce5d427f9b",
   CellTags->{"5.5", "5.5 Exercises"}]},
 "5.4 Solutions"->{
  Cell[21925, 658, 710, 21, 
  117, "Input", "ExpressionUUID" -> "8bea3951-5b03-4336-ac22-823cfb27cc95",
   CellTags->"5.4 Solutions"]},
 "5.5 Exercises"->{
  Cell[28650, 876, 314, 10, 
  32, "Input", "ExpressionUUID" -> "a36de1d1-8cb5-4c63-a100-b6ce5d427f9b",
   CellTags->{"5.5", "5.5 Exercises"}]},
 "5.1 Solutions"->{
  Cell[28967, 888, 369, 10, 
  32, "Input", "ExpressionUUID" -> "7726f14c-af6c-4f45-99ca-e61690c9bb46",
   CellTags->"5.1 Solutions"],
  Cell[31531, 972, 306, 9, 
  32, "Input", "ExpressionUUID" -> "434a15dc-8e6c-4baf-bce1-7a5216d81e50",
   CellTags->"5.1 Solutions"],
  Cell[48401, 1583, 430, 13, 
  54, "Input", "ExpressionUUID" -> "5655cc19-2023-4d40-abb1-c43590608ccc",
   CellTags->"5.1 Solutions"],
  Cell[48834, 1598, 671, 19, 
  54, "Input", "ExpressionUUID" -> "311ac866-268b-4a38-89c0-2401e96daa66",
   CellTags->"5.1 Solutions"]},
 "5.5 Solutions"->{
  Cell[29339, 900, 394, 12, 
  32, "Input", "ExpressionUUID" -> "8a14a491-0624-488b-b95d-86a4f5cea9d7",
   CellTags->"5.5 Solutions"],
  Cell[39126, 1216, 429, 13, 
  32, "Input", "ExpressionUUID" -> "f3019362-e540-4f6f-b49f-48dbe0f953f2",
   CellTags->"5.5 Solutions"],
  Cell[49586, 1624, 382, 11, 
  32, "Input", "ExpressionUUID" -> "a4594b1e-c436-448e-9a34-e778df529f54",
   CellTags->"5.5 Solutions"],
  Cell[49971, 1637, 153, 3, 
  32, "Input", "ExpressionUUID" -> "dd16654b-6999-4053-9613-0703fed53c24",
   CellTags->"5.5 Solutions"],
  Cell[50127, 1642, 199, 5, 
  32, "Input", "ExpressionUUID" -> "4e454da0-93d4-4270-9f11-ba8a60a6989a",
   CellTags->"5.5 Solutions"],
  Cell[50329, 1649, 157, 3, 
  32, "Input", "ExpressionUUID" -> "1352edd1-ff3b-4026-a89d-f0bbdfd00d32",
   CellTags->"5.5 Solutions"],
  Cell[56762, 1876, 561, 16, 
  54, "Input", "ExpressionUUID" -> "515aa9f4-3043-4202-8b10-947bab36b5ac",
   CellTags->"5.5 Solutions"]},
 "7.4"->{
  Cell[31840, 983, 1171, 35, 
  120, "InputOnly", "ExpressionUUID" -> "0da930c3-a8c8-4759-9722-b331a7e9313b",
   CellTags->"7.4"],
  Cell[52322, 1723, 177, 3, 
  32, "Input", "ExpressionUUID" -> "f79f1a09-2468-40a4-b2cd-e72cb59b7b5c",
   CellTags->"7.4"]},
 "5.6 Solutions"->{
  Cell[36459, 1128, 426, 12, 
  54, "Input", "ExpressionUUID" -> "8ac0b032-bd26-4fb5-92be-bd39b6e3b354",
   CellTags->"5.6 Solutions"],
  Cell[55241, 1818, 183, 4, 
  32, "Input", "ExpressionUUID" -> "88ef1704-48ca-4381-ae6b-fef57018f265",
   CellTags->"5.6 Solutions"],
  Cell[55427, 1824, 192, 4, 
  32, "Input", "ExpressionUUID" -> "5afeadd7-cbd4-4d67-80a2-4e49a00310db",
   CellTags->"5.6 Solutions"]},
 "5.7"->{
  Cell[53089, 1749, 1185, 31, 
  96, "Input", "ExpressionUUID" -> "49940485-9c3a-49b0-826e-d841468a4f76",
   CellTags->"5.7"],
  Cell[54277, 1782, 236, 7, 
  32, "Input", "ExpressionUUID" -> "95eaed7e-29b0-4613-8ef8-0c678310ce30",
   CellTags->{"Application", "5.7"}]},
 "Application"->{
  Cell[54277, 1782, 236, 7, 
  32, "Input", "ExpressionUUID" -> "95eaed7e-29b0-4613-8ef8-0c678310ce30",
   CellTags->{"Application", "5.7"}]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"7.3 Solutions", 57960, 1917},
 {"5.4", 58391, 1928},
 {"5.5", 58536, 1932},
 {"5.4 Solutions", 58835, 1939},
 {"5.5 Exercises", 58992, 1943},
 {"5.1 Solutions", 59157, 1947},
 {"5.5 Solutions", 59719, 1960},
 {"7.4", 60678, 1982},
 {"5.6 Solutions", 60955, 1989},
 {"5.7", 61372, 1999},
 {"Application", 61660, 2006}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[579, 22, 61, 1, 64, "Section", "ExpressionUUID" -> \
"274e0b7e-3d1b-44da-ba20-3bad86a8b485",
 InitializationGroup->True],
Cell[643, 25, 240, 9, 49, "Text", "ExpressionUUID" -> \
"42e89149-9eb5-48fb-8e7c-7a6458642ea1"],
Cell[CellGroupData[{
Cell[908, 38, 30, 0, 44, "Subsection", "ExpressionUUID" -> \
"bcb947ef-018a-4748-af51-a409b7593f72"],
Cell[941, 40, 110, 2, 32, "Input", "ExpressionUUID" -> \
"53c00b64-ec96-4cd7-8e0e-83faff3a9bdd"],
Cell[1054, 44, 191, 5, 32, "Input", "ExpressionUUID" -> \
"43fa1b2f-3e8b-4b58-8faf-9b55532dcd31"],
Cell[1248, 51, 146, 4, 32, "Input", "ExpressionUUID" -> \
"5d77c159-8961-43e6-81e8-2b618e7a0f73"],
Cell[1397, 57, 301, 6, 54, "Input", "ExpressionUUID" -> \
"2004c323-27c8-4d9d-8cce-707a7509a70f"],
Cell[1701, 65, 113, 2, 32, "Input", "ExpressionUUID" -> \
"03129bf4-8aa8-4df5-afa8-0005a11fdfce"],
Cell[1817, 69, 147, 4, 32, "Input", "ExpressionUUID" -> \
"87c97fd7-2449-4248-8e59-da8fbd7b8be2"],
Cell[1967, 75, 209, 5, 32, "Input", "ExpressionUUID" -> \
"ddcaebb8-c179-4f79-bdb6-fe9ad5feede6"],
Cell[2179, 82, 256, 8, 32, "Input", "ExpressionUUID" -> \
"c8ec9033-b300-4623-9485-5aaa0202c2ba"],
Cell[2438, 92, 1268, 26, 138, "Input", "ExpressionUUID" -> \
"39b7da34-2602-4f3c-94bb-75c8eb8cb537"],
Cell[3709, 120, 132, 3, 32, "Input", "ExpressionUUID" -> \
"f7f48cd0-9784-43b1-a8fc-8da9792d37e1"],
Cell[3844, 125, 140, 4, 32, "Input", "ExpressionUUID" -> \
"8eb5dfad-12eb-44e4-bf9a-a78bc1ef842c"],
Cell[3987, 131, 181, 3, 32, "Input", "ExpressionUUID" -> \
"13bb07ce-866b-4843-94bb-660f03d7672b"]
}, Closed]],
Cell[CellGroupData[{
Cell[4205, 139, 34, 0, 36, "Subsection", "ExpressionUUID" -> \
"753cc65b-52b3-4e43-b9a7-604b2653d560"],
Cell[4242, 141, 859, 13, 159, "Input", "ExpressionUUID" -> \
"6e8246d8-4a34-403d-9cc1-0b35349fe051"],
Cell[5104, 156, 143, 4, 32, "Input", "ExpressionUUID" -> \
"e396e2bc-41b2-4fba-88fb-3af907837f16"]
}, Closed]],
Cell[CellGroupData[{
Cell[5284, 165, 57, 0, 36, "Subsection", "ExpressionUUID" -> \
"cbe1eb1c-97b3-4d22-ad61-3bf2c80f893c"],
Cell[5344, 167, 271, 7, 54, "Input", "ExpressionUUID" -> \
"f1774421-bb10-4b83-aab0-521d2a55d6c8"],
Cell[5618, 176, 316, 9, 32, "Input", "ExpressionUUID" -> \
"2170ec86-728a-41c2-8515-dd180415267f"],
Cell[5937, 187, 646, 12, 138, "Input", "ExpressionUUID" -> \
"69bfd83b-3eb3-47d1-8fd0-335ee8aa6be7"],
Cell[6586, 201, 257, 6, 54, "Input", "ExpressionUUID" -> \
"329492d4-5bd0-43ee-aec6-3debfc52b746"],
Cell[6846, 209, 231, 5, 54, "Input", "ExpressionUUID" -> \
"030dcce5-e845-4d8f-aab3-44e6734a3fdd"],
Cell[7080, 216, 432, 10, 75, "Input", "ExpressionUUID" -> \
"a38a8e74-dca1-470e-a78e-49444d2914cd"],
Cell[7515, 228, 303, 7, 75, "Input", "ExpressionUUID" -> \
"db3d66d8-506a-46dc-b429-6a3ccd238586"],
Cell[7821, 237, 292, 7, 75, "Input", "ExpressionUUID" -> \
"807bf6a1-4053-47d5-94d4-316b00f06c68"],
Cell[8116, 246, 471, 10, 76, "Input", "ExpressionUUID" -> \
"2f429f30-1a2b-4d5d-a1bf-4662d37850c8"],
Cell[8590, 258, 462, 10, 76, "Input", "ExpressionUUID" -> \
"11b6021b-742c-489b-a8ae-302a32add1f4"],
Cell[9055, 270, 475, 10, 76, "Input", "ExpressionUUID" -> \
"ce4a6f13-544a-4164-a513-d337dd66d4b3"],
Cell[9533, 282, 467, 10, 76, "Input", "ExpressionUUID" -> \
"71e1add4-ad3b-4756-a618-4a892b5a4ac8"],
Cell[10003, 294, 498, 11, 76, "Input", "ExpressionUUID" -> \
"2e934110-6cdf-47d8-a4c9-62979be7a6d4"],
Cell[10504, 307, 309, 7, 75, "Input", "ExpressionUUID" -> \
"85e5ea80-b049-436f-a5a4-e20d75a7966c"],
Cell[10816, 316, 242, 6, 32, "Input", "ExpressionUUID" -> \
"c07e77b3-fd13-4f9e-ac16-aac070237e17"],
Cell[11061, 324, 364, 9, 75, "Input", "ExpressionUUID" -> \
"ae0263ff-2529-42cb-b505-1d0e8fbc2b3c"],
Cell[11428, 335, 434, 10, 75, "Input", "ExpressionUUID" -> \
"af529c9f-92c2-42d2-b284-9ba755a95c99"],
Cell[11865, 347, 292, 7, 75, "Input", "ExpressionUUID" -> \
"402920cf-fc7d-4ff6-97d1-57534e41fd91"],
Cell[12160, 356, 292, 7, 75, "Input", "ExpressionUUID" -> \
"1bea938f-e689-47eb-be3b-1312c367b4ea"],
Cell[12455, 365, 311, 7, 75, "Input", "ExpressionUUID" -> \
"6b601f81-b24c-479a-a359-5f60cf2e15c8"],
Cell[12769, 374, 271, 6, 54, "Input", "ExpressionUUID" -> \
"92f74b0d-fd8d-4e1d-b6d1-bab0f6248845"],
Cell[13043, 382, 244, 5, 32, "Input", "ExpressionUUID" -> \
"4af6ffdc-51cd-414e-86aa-4c4a36e34d5e"],
Cell[13290, 389, 558, 11, 117, "Input", "ExpressionUUID" -> \
"01cfff3f-f25a-4c83-b92d-5445aefd802d"],
Cell[13851, 402, 286, 6, 75, "Input", "ExpressionUUID" -> \
"a98173f7-87a2-4353-ba38-b574d0e02333"],
Cell[14140, 410, 245, 6, 32, "Input", "ExpressionUUID" -> \
"fa997713-5a42-4b67-8120-e5ae959471d4"],
Cell[14388, 418, 373, 9, 75, "Input", "ExpressionUUID" -> \
"c8c19225-92e3-41d1-a31e-e56a9acefd7e"],
Cell[14764, 429, 366, 8, 96, "Input", "ExpressionUUID" -> \
"aaf0b7d0-7619-420c-b961-f3499b5faeb9"],
Cell[15133, 439, 323, 8, 75, "Input", "ExpressionUUID" -> \
"f556e167-a035-4cba-825e-7a310c60651b"],
Cell[15459, 449, 416, 9, 75, "Input", "ExpressionUUID" -> \
"6968f651-5749-4d8e-be88-779e7d9fb041"],
Cell[15878, 460, 315, 7, 75, "Input", "ExpressionUUID" -> \
"082af1ed-24cc-494d-a9cc-e893c167bde1"],
Cell[16196, 469, 397, 10, 54, "Input", "ExpressionUUID" -> \
"c4e03b3b-604b-41fe-94fc-54751884bd7b"],
Cell[16596, 481, 484, 12, 75, "Input", "ExpressionUUID" -> \
"a2f643e3-8c4d-465f-8da8-88777bd6c047"]
}, Closed]],
Cell[CellGroupData[{
Cell[17117, 498, 29, 0, 36, "Subsection", "ExpressionUUID" -> \
"ecea9407-325f-4e0a-b675-5d1d008185b3"],
Cell[17149, 500, 187, 5, 28, "Input", "ExpressionUUID" -> \
"b175337b-d2b1-499c-8b37-837af0fcd09f"],
Cell[17339, 507, 153, 4, 28, "Input", "ExpressionUUID" -> \
"7dc080cf-a524-44de-9778-63ec66dcc515"]
}, Closed]],
Cell[CellGroupData[{
Cell[17529, 516, 37, 0, 36, "Subsection", "ExpressionUUID" -> \
"9329d7d7-cb10-4f21-89be-1fe3b79e3781"],
Cell[17569, 518, 92, 2, 36, "Input", "ExpressionUUID" -> \
"4a9b022b-34a6-4022-8f58-a023b4407c39"]
}, Closed]],
Cell[CellGroupData[{
Cell[17698, 525, 63, 0, 36, "Subsection", "ExpressionUUID" -> \
"6b95bd25-b658-4210-b344-0bca45a1ab84"],
Cell[17764, 527, 791, 23, 96, "Input", "ExpressionUUID" -> \
"60e7dd17-e014-4515-a560-a90230d171db"],
Cell[18558, 552, 344, 10, 32, "Input", "ExpressionUUID" -> \
"6a039e55-0c0a-4b67-b7bc-fc8e177b274f"],
Cell[18905, 564, 515, 16, 41, "InputOnly", "ExpressionUUID" -> \
"b15ebcd9-0226-4429-9882-b8af9069a69b"],
Cell[19423, 582, 1863, 52, 158, "InputOnly", "ExpressionUUID" -> \
"6ac93316-c3a0-492e-b4ef-3100fbaeca26",
 CellTags->"7.3 Solutions"],
Cell[21289, 636, 174, 4, 32, "Input", "ExpressionUUID" -> \
"40ae4dbe-4835-4736-8487-8f902eba9625"],
Cell[21466, 642, 456, 14, 32, "Input", "ExpressionUUID" -> \
"654a2f06-7440-4556-9a51-156e1795f928",
 CellTags->{"5.4", "5.5"}],
Cell[21925, 658, 710, 21, 117, "Input", "ExpressionUUID" -> \
"8bea3951-5b03-4336-ac22-823cfb27cc95",
 CellTags->"5.4 Solutions"],
Cell[22638, 681, 500, 15, 75, "Input", "ExpressionUUID" -> \
"1b431677-8cda-4a85-94f0-53f3c0635bd2"],
Cell[23141, 698, 807, 25, 54, "Input", "ExpressionUUID" -> \
"15fa2c4c-ed86-4b69-926e-50474e129f67"],
Cell[23951, 725, 352, 10, 54, "Input", "ExpressionUUID" -> \
"e69ffedf-216d-4fb7-98b0-85eeb0fe9a05"],
Cell[24306, 737, 1074, 29, 96, "Input", "ExpressionUUID" -> \
"2c6b7995-2bb0-4adf-a7a4-471f60af71e0"],
Cell[25383, 768, 341, 10, 54, "Input", "ExpressionUUID" -> \
"2cdf06df-91df-4fd7-8b02-a75f5c913942"],
Cell[25727, 780, 222, 6, 32, "Input", "ExpressionUUID" -> \
"b9bccfcc-7110-4343-a7c3-8bc821476199"],
Cell[25952, 788, 403, 13, 32, "Input", "ExpressionUUID" -> \
"2b26744b-199b-4346-a89d-68a35043cac0"],
Cell[26358, 803, 275, 7, 54, "Input", "ExpressionUUID" -> \
"d357db84-7512-4a0e-842c-ddb396dc1c8a"],
Cell[26636, 812, 471, 14, 54, "Input", "ExpressionUUID" -> \
"c57359c2-ad43-490d-bf70-4e4aae4b2259"],
Cell[27110, 828, 1338, 38, 125, "Input", "ExpressionUUID" -> \
"1421d888-192a-48c9-b5ba-ee50b15f6396"],
Cell[28451, 868, 196, 6, 32, "Input", "ExpressionUUID" -> \
"dc7c2aff-3142-4d50-92e6-95a17719477e"],
Cell[28650, 876, 314, 10, 32, "Input", "ExpressionUUID" -> \
"a36de1d1-8cb5-4c63-a100-b6ce5d427f9b",
 CellTags->{"5.5", "5.5 Exercises"}],
Cell[28967, 888, 369, 10, 32, "Input", "ExpressionUUID" -> \
"7726f14c-af6c-4f45-99ca-e61690c9bb46",
 CellTags->"5.1 Solutions"],
Cell[29339, 900, 394, 12, 32, "Input", "ExpressionUUID" -> \
"8a14a491-0624-488b-b95d-86a4f5cea9d7",
 CellTags->"5.5 Solutions"],
Cell[29736, 914, 200, 6, 32, "Input", "ExpressionUUID" -> \
"da2d2c0a-9340-44fa-b652-cdac5af63424"],
Cell[29939, 922, 334, 9, 32, "Input", "ExpressionUUID" -> \
"2f5dce59-42ee-4919-972c-5a40b0f7a125"],
Cell[30276, 933, 646, 18, 96, "Input", "ExpressionUUID" -> \
"efa9c0d0-b626-457e-b70f-254ed1b36562"],
Cell[30925, 953, 603, 17, 96, "Input", "ExpressionUUID" -> \
"2fd62d64-f76c-41dc-9b09-b9325461c351"],
Cell[31531, 972, 306, 9, 32, "Input", "ExpressionUUID" -> \
"434a15dc-8e6c-4baf-bce1-7a5216d81e50",
 CellTags->"5.1 Solutions"],
Cell[31840, 983, 1171, 35, 120, "InputOnly", "ExpressionUUID" -> \
"0da930c3-a8c8-4759-9722-b331a7e9313b",
 CellTags->"7.4"],
Cell[33014, 1020, 155, 4, 32, "Input", "ExpressionUUID" -> \
"09fe9e49-9de8-4ef3-b74c-494abd943253"],
Cell[33172, 1026, 847, 22, 159, "Input", "ExpressionUUID" -> \
"2ea0acfb-2fbe-4805-bac6-b0993e7aa59f"],
Cell[34022, 1050, 277, 9, 32, "Input", "ExpressionUUID" -> \
"7d805938-2430-483f-992a-0d7b7776fb1d"],
Cell[34302, 1061, 316, 9, 32, "Input", "ExpressionUUID" -> \
"cb76724a-c9ce-4a80-8f1f-00d0fac15255"],
Cell[34621, 1072, 349, 10, 32, "Input", "ExpressionUUID" -> \
"8ab480df-7e89-4bf8-9a4f-cfe4ecd98804"],
Cell[34973, 1084, 1483, 42, 117, "Input", "ExpressionUUID" -> \
"ebd30a73-cf03-4562-abac-8df0ef7f6525"],
Cell[36459, 1128, 426, 12, 54, "Input", "ExpressionUUID" -> \
"8ac0b032-bd26-4fb5-92be-bd39b6e3b354",
 CellTags->"5.6 Solutions"],
Cell[36888, 1142, 1282, 38, 117, "Input", "ExpressionUUID" -> \
"dd30de7d-0c97-4cd7-9010-afdd10e35cd8"],
Cell[38173, 1182, 434, 14, 32, "Input", "ExpressionUUID" -> \
"5bb92f0f-c233-4adc-8b1b-e127ee003f5e"],
Cell[38610, 1198, 513, 16, 54, "Input", "ExpressionUUID" -> \
"c643058a-0087-4eba-824a-2de9e8f80597"],
Cell[39126, 1216, 429, 13, 32, "Input", "ExpressionUUID" -> \
"f3019362-e540-4f6f-b49f-48dbe0f953f2",
 CellTags->"5.5 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[39592, 1234, 41, 0, 36, "Subsection", "ExpressionUUID" -> \
"bdf3a014-8589-4624-8f9d-951134f89328"],
Cell[39636, 1236, 69, 2, 35, "Input", "ExpressionUUID" -> \
"37aabe33-a3cb-4e19-bef9-d85e7fa98f76"]
}, Closed]],
Cell[CellGroupData[{
Cell[39742, 1243, 32, 0, 36, "Subsection", "ExpressionUUID" -> \
"05c2912c-be12-4ae5-9285-4693dfe5afab"],
Cell[39777, 1245, 83, 2, 56, "Input", "ExpressionUUID" -> \
"8d90f117-d747-48bc-89b0-665ac6d6351b"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[39909, 1253, 27, 0, 64, "Section", "ExpressionUUID" -> \
"7b3b3d77-2f07-463f-9c2f-b7fa8b92eac8"],
Cell[CellGroupData[{
Cell[39961, 1257, 34, 0, 44, "Subsection", "ExpressionUUID" -> \
"a7273511-941f-41ef-8c0b-9ad1807b031a"],
Cell[39998, 1259, 85, 0, 32, "Input", "ExpressionUUID" -> \
"ef487723-54c7-40d3-ad34-229e4bed5bc3"],
Cell[40086, 1261, 183, 6, 30, "Text", "ExpressionUUID" -> \
"66fe253f-3fca-4b90-a198-85d6aa3a905c"],
Cell[40272, 1269, 103, 1, 32, "Input", "ExpressionUUID" -> \
"1b59a9fc-edad-4681-9d1f-6c5d8ab4c972"]
}, Open  ]],
Cell[CellGroupData[{
Cell[40412, 1275, 41, 0, 44, "Subsection", "ExpressionUUID" -> \
"8900e726-2c04-46ec-a3e3-cfc3ba040a38"],
Cell[40456, 1277, 61, 1, 32, "Input", "ExpressionUUID" -> \
"2fcd24ed-6f91-4232-95d0-358bd644be39"],
Cell[40520, 1280, 55, 1, 32, "Input", "ExpressionUUID" -> \
"6499446c-9f5a-49df-8c3c-18c282824992"],
Cell[40578, 1283, 60, 1, 32, "Input", "ExpressionUUID" -> \
"6b51cf5b-2611-44ca-be29-99b474c175c7"],
Cell[40641, 1286, 58, 1, 32, "Input", "ExpressionUUID" -> \
"703ef668-64d4-4913-853e-14023ac2808d"],
Cell[40702, 1289, 52, 1, 32, "Input", "ExpressionUUID" -> \
"2e8e4148-7fba-4337-9df3-e067f6d6cda7"],
Cell[40757, 1292, 57, 1, 32, "Input", "ExpressionUUID" -> \
"00c52174-35f6-43c3-9031-ccff345324da"],
Cell[40817, 1295, 65, 1, 32, "Input", "ExpressionUUID" -> \
"2cddfcbe-43c5-4e7f-b692-2f7061287ec0"],
Cell[40885, 1298, 62, 1, 32, "Input", "ExpressionUUID" -> \
"1b1fccbf-4f9a-4a78-a0a0-468237df0dcc"],
Cell[40950, 1301, 59, 1, 32, "Input", "ExpressionUUID" -> \
"16585adc-6eaf-477c-8696-c784ae37ec22"],
Cell[41012, 1304, 56, 1, 32, "Input", "ExpressionUUID" -> \
"c1de6f83-e637-4e65-b1c3-bde211de0feb"],
Cell[41071, 1307, 60, 1, 32, "Input", "ExpressionUUID" -> \
"303bd1c3-e1e7-49b3-aab3-46e22cc2e012"],
Cell[41134, 1310, 59, 1, 32, "Input", "ExpressionUUID" -> \
"ebb00fc8-2270-4648-be34-be8f4a2d1746"],
Cell[41196, 1313, 57, 1, 32, "Input", "ExpressionUUID" -> \
"c193eaf1-f854-4909-8d84-26a3d4c098f5"],
Cell[41256, 1316, 59, 1, 32, "Input", "ExpressionUUID" -> \
"fd22ec2c-a655-45fc-9e9c-b5f50def74ff"],
Cell[41318, 1319, 51, 1, 32, "Input", "ExpressionUUID" -> \
"5a2b5624-1a44-4b1e-98fc-6649a7675be3"],
Cell[41372, 1322, 59, 1, 32, "Input", "ExpressionUUID" -> \
"5e75a7fc-6246-4c75-95b6-d20797674549"],
Cell[41434, 1325, 58, 1, 32, "Input", "ExpressionUUID" -> \
"dfb99eb5-b90b-4139-a7b6-dc8668291484"],
Cell[41495, 1328, 57, 1, 32, "Input", "ExpressionUUID" -> \
"7ce1a0f0-1083-477d-88af-86343f1c565a"],
Cell[41555, 1331, 53, 1, 32, "Input", "ExpressionUUID" -> \
"5ed7460d-adcb-4126-a2af-2a7cc3818aeb"],
Cell[41611, 1334, 56, 1, 32, "Input", "ExpressionUUID" -> \
"cc20c1a3-8fcb-474d-93c9-212b92057cf0"],
Cell[41670, 1337, 50, 1, 32, "Input", "ExpressionUUID" -> \
"4506ee73-6f9d-43b1-a4b7-93fa38b74b14"],
Cell[41723, 1340, 57, 1, 32, "Input", "ExpressionUUID" -> \
"22078a5c-a3f0-4a11-b55f-2f2ded1f6683"],
Cell[41783, 1343, 61, 1, 32, "Input", "ExpressionUUID" -> \
"aa52136e-0089-4da8-9214-d901c74dbb80"],
Cell[41847, 1346, 60, 1, 32, "Input", "ExpressionUUID" -> \
"7da77f05-d32b-4237-b65a-532d7716ffd4"],
Cell[41910, 1349, 58, 1, 32, "Input", "ExpressionUUID" -> \
"103db941-0b4f-4f4a-a24b-f8ecf2c76743"],
Cell[41971, 1352, 64, 1, 32, "Input", "ExpressionUUID" -> \
"ea393e43-6790-44d6-a218-98b1cee09010"],
Cell[42038, 1355, 60, 1, 32, "Input", "ExpressionUUID" -> \
"9855de73-4f93-4d77-96c2-3b2761ef07cb"],
Cell[42101, 1358, 58, 1, 32, "Input", "ExpressionUUID" -> \
"8761d8a5-adfc-4ce5-a573-0704ddb71d93"]
}, Closed]],
Cell[CellGroupData[{
Cell[42196, 1364, 62, 0, 36, "Subsection", "ExpressionUUID" -> \
"b95bd580-730f-419b-a4a0-3d319c13509f"],
Cell[CellGroupData[{
Cell[42283, 1368, 43, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"0631b581-07f4-46c5-9131-4de678e0bdc0"],
Cell[42329, 1370, 360, 9, 54, "Input", "ExpressionUUID" -> \
"a7453a92-5add-4f46-a0e3-89a4eedf249d"],
Cell[42692, 1381, 127, 1, 32, "Input", "ExpressionUUID" -> \
"8937d2ac-7ca1-46c4-9e64-753085358845"],
Cell[42822, 1384, 70, 0, 20, "SolutionText", "ExpressionUUID" -> \
"7da55e0e-73aa-49c3-8e98-4c056f0e5f02"],
Cell[42895, 1386, 605, 14, 32, "Input", "ExpressionUUID" -> \
"5091820e-9c23-4767-8747-0abefe84727a"],
Cell[43503, 1402, 128, 1, 32, "Input", "ExpressionUUID" -> \
"f03caa55-403b-45e3-9f0d-c8ea28c5f364"]
}, Closed]],
Cell[CellGroupData[{
Cell[43668, 1408, 37, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"81c0b68f-2915-4b1b-8fdd-3694e15c50c1"],
Cell[43708, 1410, 120, 1, 32, "Input", "ExpressionUUID" -> \
"7064854d-10bb-402f-a00e-c4cb15e13155"]
}, Closed]],
Cell[CellGroupData[{
Cell[43865, 1416, 42, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"b2a6a237-424c-44bc-818a-3f7a9c6149bb"],
Cell[43910, 1418, 120, 1, 32, "Input", "ExpressionUUID" -> \
"55d94f55-d2e4-4ffd-a2cc-f1d6275bc564"],
Cell[44033, 1421, 231, 6, 31, "InputOnly", "ExpressionUUID" -> \
"b61e2c1b-1626-40d0-ba63-c48546334bf5",
 CellTags->"7.3 Solutions"],
Cell[44267, 1429, 495, 13, 54, "Input", "ExpressionUUID" -> \
"6cac3eb6-9005-4b11-bb01-d6e140230d65",
 CellTags->"7.3 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[44799, 1447, 40, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"2db5e14a-aaf7-46b6-a29e-143a3cf7e4c1"],
Cell[44842, 1449, 124, 1, 32, "Input", "ExpressionUUID" -> \
"64ecfbf1-9928-4430-a44c-0eac4e688a80"]
}, Closed]],
Cell[CellGroupData[{
Cell[45003, 1455, 34, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"00afb333-ee6d-4bad-9120-5dc5bd76864b"],
Cell[45040, 1457, 120, 1, 32, "Input", "ExpressionUUID" -> \
"047fa2cf-cf98-433f-9665-69361007bbd3"]
}, Closed]],
Cell[CellGroupData[{
Cell[45197, 1463, 39, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"31382919-1fb4-424f-93af-221799c79c11"],
Cell[45239, 1465, 375, 11, 32, "Input", "ExpressionUUID" -> \
"7f569825-c08f-4d0b-873b-6aba8dc5b5d5"]
}, Closed]],
Cell[CellGroupData[{
Cell[45651, 1481, 47, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"5d766d34-db4e-4585-9a84-0d91782b2de4"],
Cell[45701, 1483, 139, 2, 32, "Input", "ExpressionUUID" -> \
"ef34b7f7-be4d-41da-ac12-7215f89d53c7"]
}, Closed]],
Cell[CellGroupData[{
Cell[45877, 1490, 44, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"5d1b468d-e64b-4e30-b2db-a4b184c756a1"],
Cell[45924, 1492, 141, 2, 32, "Input", "ExpressionUUID" -> \
"afe97b54-5c77-4cf6-878f-69524851512c"]
}, Closed]],
Cell[CellGroupData[{
Cell[46102, 1499, 149, 4, 35, "Subsubsection", "ExpressionUUID" -> \
"4e3a8a1d-9296-47ed-b022-ed188b03538f"],
Cell[46254, 1505, 425, 13, 58, "Input", "ExpressionUUID" -> \
"64e3a9d3-0b9a-48da-ac8b-42d5a4b12258"],
Cell[46682, 1520, 904, 26, 96, "Input", "ExpressionUUID" -> \
"afc37831-7fe6-43a7-85b5-996e1537a9b0"]
}, Closed]],
Cell[CellGroupData[{
Cell[47623, 1551, 38, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"e1b6e23a-4b7e-4dc4-83b1-efac57f39f0e"],
Cell[47664, 1553, 124, 1, 32, "Input", "ExpressionUUID" -> \
"2c3919f6-7d2c-4d7c-b326-fb67f4e7dcf4"]
}, Closed]],
Cell[CellGroupData[{
Cell[47825, 1559, 42, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"a7dfcd62-aeb5-49e8-81a9-d42604724790"],
Cell[47870, 1561, 152, 3, 35, "Input", "ExpressionUUID" -> \
"bba0d344-4870-47e2-b24b-4f23dc8118aa"]
}, Closed]],
Cell[CellGroupData[{
Cell[48059, 1569, 41, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"8a373202-2d42-45a1-bc6d-836a6b524426"],
Cell[48103, 1571, 219, 5, 32, "Input", "ExpressionUUID" -> \
"68535d77-4d81-454e-98f5-42cab39f9cae"]
}, Closed]],
Cell[CellGroupData[{
Cell[48359, 1581, 39, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"a2d146fc-1889-414d-a56e-3cb2731b50c9"],
Cell[48401, 1583, 430, 13, 54, "Input", "ExpressionUUID" -> \
"5655cc19-2023-4d40-abb1-c43590608ccc",
 CellTags->"5.1 Solutions"],
Cell[48834, 1598, 671, 19, 54, "Input", "ExpressionUUID" -> \
"311ac866-268b-4a38-89c0-2401e96daa66",
 CellTags->"5.1 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[49542, 1622, 41, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"a4fd0c36-41dd-4a02-ab5b-fbe25e0d3627"],
Cell[49586, 1624, 382, 11, 32, "Input", "ExpressionUUID" -> \
"a4594b1e-c436-448e-9a34-e778df529f54",
 CellTags->"5.5 Solutions"],
Cell[49971, 1637, 153, 3, 32, "Input", "ExpressionUUID" -> \
"dd16654b-6999-4053-9613-0703fed53c24",
 CellTags->"5.5 Solutions"],
Cell[50127, 1642, 199, 5, 32, "Input", "ExpressionUUID" -> \
"4e454da0-93d4-4270-9f11-ba8a60a6989a",
 CellTags->"5.5 Solutions"],
Cell[50329, 1649, 157, 3, 32, "Input", "ExpressionUUID" -> \
"1352edd1-ff3b-4026-a89d-f0bbdfd00d32",
 CellTags->"5.5 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[50523, 1657, 33, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"85787738-0437-429f-adda-ef12babb8273"],
Cell[50559, 1659, 225, 6, 32, "Input", "ExpressionUUID" -> \
"d16ab4f2-aed3-4619-8c46-bc9ad1862ec6"],
Cell[50787, 1667, 115, 0, 30, "Text", "ExpressionUUID" -> \
"690e4dc4-6b1f-4f08-9f24-7028ea205efa"],
Cell[50905, 1669, 231, 6, 32, "Input", "ExpressionUUID" -> \
"942c6580-5bb8-428e-b78a-2fdbd6945d27"]
}, Closed]],
Cell[CellGroupData[{
Cell[51173, 1680, 41, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"f50f0048-eeef-4545-a248-1a872376ab47"],
Cell[51217, 1682, 326, 8, 54, "Input", "ExpressionUUID" -> \
"df1da2c3-8a82-42ff-8eaf-8e5c350509e3"]
}, Closed]],
Cell[CellGroupData[{
Cell[51580, 1695, 40, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"baa3858f-e1ff-4a4c-a01d-d107c7fdb02c"],
Cell[51623, 1697, 144, 3, 32, "Input", "ExpressionUUID" -> \
"05d2dc82-288f-44fc-8139-e9fa50ebb396"],
Cell[51770, 1702, 123, 1, 32, "Input", "ExpressionUUID" -> \
"5919bae6-efe6-482a-8a97-e2edd536c2aa"]
}, Closed]],
Cell[CellGroupData[{
Cell[51930, 1708, 39, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"4fe91747-a1f5-4039-be5e-d4c62d4eee8c"],
Cell[51972, 1710, 125, 1, 32, "Input", "ExpressionUUID" -> \
"f5ad0fc2-f2c1-4a97-b591-cbb357b28db2"]
}, Closed]],
Cell[CellGroupData[{
Cell[52134, 1716, 35, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"6bd15118-d484-40fe-af2c-87f7e044d979"],
Cell[52172, 1718, 147, 3, 32, "Input", "ExpressionUUID" -> \
"920af659-2429-428d-a7fa-67ce56c610ed"],
Cell[52322, 1723, 177, 3, 32, "Input", "ExpressionUUID" -> \
"f79f1a09-2468-40a4-b2cd-e72cb59b7b5c",
 CellTags->"7.4"]
}, Closed]],
Cell[CellGroupData[{
Cell[52536, 1731, 38, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"2e26f522-dcc2-452f-a8f0-ff26a14969c7"],
Cell[52577, 1733, 433, 9, 54, "Input", "ExpressionUUID" -> \
"5523f589-4e73-4add-a83d-4fa44ea11ae8"]
}, Closed]],
Cell[CellGroupData[{
Cell[53047, 1747, 39, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"108957ee-7b4f-43b8-9b55-de673d6a2d35"],
Cell[53089, 1749, 1185, 31, 96, "Input", "ExpressionUUID" -> \
"49940485-9c3a-49b0-826e-d841468a4f76",
 CellTags->"5.7"],
Cell[54277, 1782, 236, 7, 32, "Input", "ExpressionUUID" -> \
"95eaed7e-29b0-4613-8ef8-0c678310ce30",
 CellTags->{"Application", "5.7"}]
}, Closed]],
Cell[CellGroupData[{
Cell[54550, 1794, 32, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"b7dfcb15-5469-4505-98fa-b72de08b2e85"],
Cell[54585, 1796, 116, 1, 32, "Input", "ExpressionUUID" -> \
"f4a2cd86-dc0a-4009-934b-546a5ca181cb"]
}, Closed]],
Cell[CellGroupData[{
Cell[54738, 1802, 43, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"7b7673f7-abf4-4410-8836-01634032442d"],
Cell[54784, 1804, 375, 7, 54, "Input", "ExpressionUUID" -> \
"425068d2-7517-4a01-ae7a-373d64133433"]
}, Closed]],
Cell[CellGroupData[{
Cell[55196, 1816, 42, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"a7a8908d-9f66-4a05-bf9a-45fa651456e3"],
Cell[55241, 1818, 183, 4, 32, "Input", "ExpressionUUID" -> \
"88ef1704-48ca-4381-ae6b-fef57018f265",
 CellTags->"5.6 Solutions"],
Cell[55427, 1824, 192, 4, 32, "Input", "ExpressionUUID" -> \
"5afeadd7-cbd4-4d67-80a2-4e49a00310db",
 CellTags->"5.6 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[55656, 1833, 40, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"9087bbf3-6845-4fe3-bf98-8ada48661d42"],
Cell[55699, 1835, 401, 12, 32, "Input", "ExpressionUUID" -> \
"b5c6d597-d944-4f2c-8367-216e68567029"]
}, Closed]],
Cell[CellGroupData[{
Cell[56137, 1852, 46, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"96c0fd49-2fc4-40fc-8bd9-d1d38edfe26a"],
Cell[56186, 1854, 167, 4, 32, "Input", "ExpressionUUID" -> \
"df843b5b-4c11-49b6-a780-b5cda8432846"]
}, Closed]],
Cell[CellGroupData[{
Cell[56390, 1863, 42, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"5ae2ef64-05e8-4d78-b72d-f9054147147b"],
Cell[56435, 1865, 192, 4, 32, "Input", "ExpressionUUID" -> \
"66eaf087-4fd3-4074-9597-b1e7bf93e700"]
}, Closed]],
Cell[CellGroupData[{
Cell[56664, 1874, 95, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"0fcbcc50-b545-4999-836e-debf1b8f4944"],
Cell[56762, 1876, 561, 16, 54, "Input", "ExpressionUUID" -> \
"515aa9f4-3043-4202-8b10-947bab36b5ac",
 CellTags->"5.5 Solutions"],
Cell[57326, 1894, 228, 5, 32, "Input", "ExpressionUUID" -> \
"9a806ada-f42e-4c9d-819e-3fd3bc4cf5d4"]
}, Closed]]
}, Closed]]
}, Open  ]]
}
]
*)

