(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[         0,          0]
NotebookDataLength[     27632,        863]
NotebookOptionsPosition[     15451,        568]
NotebookOutlinePosition[     17092,        618]
CellTagsIndexPosition[     16952,        611]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["EPM`Language`", "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`Language`"}], " ", "*)"}]], "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[{
   RowBox[{":", "Summary", ":", " ", 
    RowBox[{
    "This", " ", "package", " ", "contains", " ", "the", " ", "functions", 
     " ", "defined", " ", "in", " ", "Chapter", " ", "2"}]}], ",", " ", 
   RowBox[{"The", " ", "Mathematica", " ", 
    RowBox[{"language", "."}]}]}], " ", "*)"}]], "Input"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Context", ":", " ", "EPM`Language`"}], " ", "*)"}]], "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[{"composite", " ", "numbers"}]}], ",", " ", "DenseGraphQ", ",", 
   " ", 
   RowBox[{"digit", " ", "sums"}], ",", " ", 
   RowBox[{"natural", " ", "numbers"}], ",", " ", 
   RowBox[{"square", " ", "numbers"}], ",", " ", 
   RowBox[{"triangular", " ", "numbers"}], ",", " ", 
   RowBox[{"square", " ", "triangular", " ", "numbers"}]}], "  ", 
  "*)"}]], "Input"],

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

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{"Tested", " ", "in", " ", "Mathematica", " ", "11.1"}], " ", 
  "*)"}]], "Input",ExpressionUUID->"6df97002-faeb-4082-bf2c-f8c9abbfecda"]
}, Closed]],

Cell[CellGroupData[{

Cell["BeginPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"Remove", "[", 
  RowBox[{
  "compositeQ", ",", "DenseGraphQ", ",", "DigitSum", ",", 
   "IntegerRotateRight", ",", "NaturalQ", ",", "RealPositiveQ", ",", 
   "SquareNumberQ", ",", "SquareTriangularNumberQ", ",", "StringCharacterQ", 
   ",", "TriangularNumberQ"}], "]"}]], "Input"],

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"compositeQ", "::", "usage"}], "=", "\"\<compositeQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\) is a composite number.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"DenseGraphQ", "::", "usage"}], "=", "\"\<DenseGraphQ[\!\(\*
StyleBox[\"gr\", \"TI\"]\)] returns true if the graph \!\(\*
StyleBox[\"gr\", \"TI\"]\) is dense, i.e., if \!\(\*
StyleBox[\"gr\", \"TI\"]\) has density greater than or equal to 0.5\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"DigitSum", "::", "usage"}], "=", "\"\<DigitSum[\!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"b\", \"TI\"]\)] returns the sum of the digits of the number \!\(\*
StyleBox[\"n\", \"TI\"]\) in base \!\(\*
StyleBox[\"b\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"IntegerRotateRight", "::", "usage"}], "=", 
   "\"\<IntegerRotateRight[\!\(\*
StyleBox[\"n\", \"TI\"]\)] rotates the digits in the integer \!\(\*
StyleBox[\"n\", \"TI\"]\) one digit to the right.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"NaturalQ", "::", "usage"}], "=", "\"\<NaturalQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\) is a natural number.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RealPositiveQ", "::", "usage"}], "=", "\"\<RealPositiveQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if the the number \!\(\*
StyleBox[\"n\", \"TI\"]\) is a positive real number.\\nRealPositiveQ[\!\(\*
StyleBox[\"vec\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"vec\", \"TI\"]\) is a vector of numbers all of which are real and \
positive.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"SquareNumberQ", "::", "usage"}], "=", "\"\<SquareNumber[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if the square root of \!\(\*
StyleBox[\"n\", \"TI\"]\) is an integer.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"SquareTriangularNumberQ", "::", "usage"}], "=", 
   "\"\<SquareTriangularNumberQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\) is both a square number and a triangular \
number.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"StringCharacterQ", "::", "usage"}], "=", 
   "\"\<StringCharacterQ[\!\(\*
StyleBox[\"c\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"c\", \"TI\"]\) is a string of length one.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"TriangularNumberQ", "::", "usage"}], "=", 
   "\"\<TriangularNumberQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\) is a triangular number.\>\""}], ";"}]], "Input"]
}, Closed]],

Cell["Options", "Subsection"],

Cell[CellGroupData[{

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{
  RowBox[{"compositeQ", "[", 
   RowBox[{"n_Integer", "/;", 
    RowBox[{"n", ">", "1"}]}], "]"}], ":=", 
  RowBox[{"Not", "[", 
   RowBox[{"PrimeQ", "[", "n", "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"DenseGraphQ", "[", "gr_Graph", "]"}], ":=", 
  RowBox[{
   RowBox[{"2", 
    RowBox[{
     RowBox[{"EdgeCount", "[", "gr", "]"}], "/", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{"VertexCount", "[", "gr", "]"}], 
       RowBox[{"(", 
        RowBox[{
         RowBox[{"VertexCount", "[", "gr", "]"}], "-", "1"}], ")"}]}], 
      ")"}]}]}], "\[GreaterEqual]", "0.5"}]}]], "Input",
 CellTags->"2.4 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"DigitSum", "[", 
   RowBox[{"n_", ",", 
    RowBox[{"base_:", "10"}]}], "]"}], ":=", 
  RowBox[{"Total", "[", 
   RowBox[{"IntegerDigits", "[", 
    RowBox[{"n", ",", "base"}], "]"}], "]"}]}]], "Input",
 CellTags->"8.1 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"IntegerRotateRight", "[", "n_Integer", "]"}], ":=", 
  RowBox[{"FromDigits", "[", 
   RowBox[{"RotateRight", "[", 
    RowBox[{"IntegerDigits", "[", "n", "]"}], "]"}], "]"}]}]], "Input",
 CellTags->"2.3 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"NaturalQ", "[", "n_", "]"}], ":=", 
  RowBox[{
   RowBox[{"IntegerQ", "[", "n", "]"}], "&&", 
   RowBox[{"n", "\[GreaterEqual]", "0"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RealPositiveQ", "[", 
   RowBox[{"n_", "?", "NumericQ"}], "]"}], ":=", 
  RowBox[{
   RowBox[{
    RowBox[{"Im", "[", "n", "]"}], "\[Equal]", "0"}], "&&", 
   RowBox[{"Positive", "[", "n", "]"}]}]}]], "InputOnly"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RealPositiveQ", "[", 
   RowBox[{"vec_", "?", "VectorQ"}], "]"}], ":=", 
  RowBox[{"AllTrue", "[", 
   RowBox[{"vec", ",", "RealPositiveQ"}], "]"}]}]], "InputOnly"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SquareNumberQ", "[", "n_", "]"}], ":=", 
  RowBox[{"IntegerQ", "[", 
   SqrtBox["n"], "]"}]}]], "Input",
 CellTags->"2.4 Solutions"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SquareTriangularNumberQ", "[", "n_", "]"}], ":=", 
  RowBox[{
   RowBox[{"TriangularNumberQ", "[", "n", "]"}], "&&", 
   RowBox[{"SquareNumberQ", "[", "n", "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"StringCharacterQ", "[", "ch_", "]"}], ":=", 
  RowBox[{
   RowBox[{"StringQ", "[", "ch", "]"}], "&&", 
   RowBox[{
    RowBox[{"StringLength", "[", "ch", "]"}], "\[Equal]", "1"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"TriangularNumberQ", "[", "t_", "]"}], ":=", 
  RowBox[{
   RowBox[{"OddQ", "[", 
    SqrtBox[
     RowBox[{
      RowBox[{"8", "t"}], "+", "1"}]], "]"}], "&&", 
   RowBox[{"SquareNumberQ", "[", 
    RowBox[{
     RowBox[{"8", "t"}], "+", "1"}], "]"}]}]}]], "Input",
 CellTags->"2.4 Solutions"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 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["Quit current session:", "Text"],

Cell[BoxData["Quit"], "Input",ExpressionUUID->"0c507717-99f2-424d-91c1-a5889945af09"],

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->"3d9e3fee-5bd8-4661-9b74-3621769d4dd1"]
}, Open  ]],

Cell[CellGroupData[{

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

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

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

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

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

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

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

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

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

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

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

Cell[CellGroupData[{

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

Cell[CellGroupData[{

Cell["compositeQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{"compositeQ", "[", 
  RowBox[{
   SuperscriptBox["2", "31"], "-", "1"}], "]"}]], "Input",ExpressionUUID->\
"39b58f06-bbc9-4bb5-817f-d76cd226ee3d"]
}, Open  ]],

Cell[CellGroupData[{

Cell["DenseGraphQ", "Subsubsection"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"gr", "=", 
   RowBox[{"CompleteGraph", "[", "10", "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"DenseGraphQ", "[", "gr", "]"}]}], "Input",ExpressionUUID->"81f7da73-\
ffbe-4393-8f76-fa7f68147ef0"],

Cell[BoxData[
 RowBox[{"GraphDensity", "[", "gr", "]"}]], "Input",ExpressionUUID->"af913eb4-242e-4f42-80af-2e2814da2caa"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"gr", "=", 
   RowBox[{"RandomGraph", "[", 
    RowBox[{"{", 
     RowBox[{"10", ",", "15"}], "}"}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"DenseGraphQ", "[", "gr", "]"}]}], "Input",ExpressionUUID->"165c87b4-\
fef0-416d-9fa1-7d8dd6ceff12"],

Cell[BoxData[
 RowBox[{"GraphDensity", "[", "gr", "]"}]], "Input",ExpressionUUID->"7626a0a5-9c4e-4eed-8893-864a970b0a04"]
}, Open  ]],

Cell[CellGroupData[{

Cell["DigitSum", "Subsubsection"],

Cell[BoxData[
 RowBox[{"DigitSum", "[", 
  RowBox[{
   RowBox[{
    SuperscriptBox["2", "31"], "-", "1"}], ",", "2"}], "]"}]], "Input",Express\
ionUUID->"3309e6b9-e5cc-490d-9682-6e12b9736000"]
}, Open  ]],

Cell[CellGroupData[{

Cell["IntegerRotateRight", "Subsubsection",ExpressionUUID->"775aa7ae-b74e-459c-af32-caae0c525584"],

Cell[BoxData[
 RowBox[{"IntegerRotateRight", "[", "142857", "]"}]], "Input",ExpressionUUID->"6594bb6a-7ba6-460d-ba60-a31b2a3cb665"]
}, Open  ]],

Cell[CellGroupData[{

Cell["NaturalQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{"NaturalQ", "[", "0", "]"}]], "Input",ExpressionUUID->"1a9036f3-b9e6-4b9d-b924-58c9b6578f46"],

Cell[BoxData[
 RowBox[{"NaturalQ", "[", 
  RowBox[{"-", "1"}], "]"}]], "Input",ExpressionUUID->"d9a2c716-bb06-432b-b137-d93103553311"]
}, Open  ]],

Cell[CellGroupData[{

Cell["RealPositiveQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"mats", "=", 
   RowBox[{"BinaryMatrix", "[", "3", "]"}]}], ";"}]], "InputOnly",ExpressionUU\
ID->"b88888c2-c0e5-4f51-afc4-8dd5ad3e6769"],

Cell[BoxData[
 RowBox[{"Count", "[", 
  RowBox[{
   RowBox[{"Map", "[", 
    RowBox[{"Eigenvalues", ",", "mats"}], "]"}], ",", 
   RowBox[{"e_", "/;", 
    RowBox[{"RealPositiveQ", "[", "e", "]"}]}]}], "]"}]], "Input",ExpressionUU\
ID->"b4c8fb32-f0d0-43da-8202-5d32ffd264a5"]
}, Open  ]],

Cell[CellGroupData[{

Cell["SquareNumberQ", "Subsubsection",ExpressionUUID->"62d5e07b-0887-4dc2-b179-99b32dfb4417"],

Cell[BoxData[
 RowBox[{"Select", "[", 
  RowBox[{
   RowBox[{"Range", "[", "100", "]"}], ",", "SquareNumberQ"}], "]"}]], "Input",\
ExpressionUUID->"3b098b77-ff68-4c45-ba6f-1c6893c85924"]
}, Open  ]],

Cell[CellGroupData[{

Cell["SquareTriangularNumberQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{"Select", "[", 
  RowBox[{
   RowBox[{"Range", "[", "100000", "]"}], ",", "SquareTriangularNumberQ"}], 
  "]"}]], "Input",ExpressionUUID->"83748d04-56a4-491a-a8f8-7312d4963818"]
}, Open  ]],

Cell[CellGroupData[{

Cell["StringCharacterQ", "Subsubsection"],

Cell[BoxData[
 RowBox[{"StringCharacterQ", "[", "\"\<string\>\"", "]"}]], "Input",Expression\
UUID->"4fd35497-fb90-42b0-8488-fb13c6735e4c"],

Cell[BoxData[
 RowBox[{"StringCharacterQ", "[", "\"\<A\>\"", "]"}]], "Input",ExpressionUUID->"a016973b-4176-4b40-ad26-6c8bdee15b14"]
}, Open  ]],

Cell[CellGroupData[{

Cell["TriangularNumberQ", "Subsubsection",ExpressionUUID->"6a7c3df4-4c20-45fe-b7b4-23d7dadee43b"],

Cell[BoxData[
 RowBox[{"TriangularNumberQ", "[", "6", "]"}]], "Input",
 CellTags->
  "2.4 Solutions",ExpressionUUID->"2b624c4e-e117-4c3c-9b00-d731b0f5314d"],

Cell[BoxData[
 RowBox[{"TriangularNumberQ", "[", "55", "]"}]], "Input",
 CellTags->
  "2.4 Solutions",ExpressionUUID->"077f8b39-a72f-495e-bd99-becf647e6efc"],

Cell[BoxData[
 RowBox[{"TriangularNumberQ", "[", "56", "]"}]], "Input",
 CellTags->
  "2.4 Solutions",ExpressionUUID->"30b2a29b-ae8c-42f9-a115-27e22762cc7d"]
}, Open  ]]
}, Closed]]
}, Open  ]]
},
AutoGeneratedPackage->Automatic,
WindowSize->{851, 838},
WindowMargins->{{Automatic, 687}, {257, Automatic}},
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->{
 "2.4 Solutions"->{
  Cell[7200, 246, 448, 14, 
  28, "Input", "ExpressionUUID" -> "114e1f2d-013a-4f85-8cd5-d4840d40cd55",
   CellTags->"2.4 Solutions"],
  Cell[8811, 303, 167, 5, 
  39, "Input", "ExpressionUUID" -> "bc7333a3-ae3d-4d6f-94e2-43df4121084f",
   CellTags->"2.4 Solutions"],
  Cell[9426, 325, 328, 11, 
  40, "Input", "ExpressionUUID" -> "38a8955e-8129-44a2-bac8-40477d56f601",
   CellTags->"2.4 Solutions"],
  Cell[14935, 550, 156, 3, 
  32, "Input", "ExpressionUUID" -> "2b624c4e-e117-4c3c-9b00-d731b0f5314d",
   CellTags->"2.4 Solutions"],
  Cell[15094, 555, 157, 3, 
  32, "Input", "ExpressionUUID" -> "077f8b39-a72f-495e-bd99-becf647e6efc",
   CellTags->"2.4 Solutions"],
  Cell[15254, 560, 157, 3, 
  32, "Input", "ExpressionUUID" -> "30b2a29b-ae8c-42f9-a115-27e22762cc7d",
   CellTags->"2.4 Solutions"]},
 "8.1 Solutions"->{
  Cell[7651, 262, 265, 8, 
  28, "Input", "ExpressionUUID" -> "beb58aa8-9930-4194-b03d-d6999cdd0beb",
   CellTags->"8.1 Solutions"]},
 "2.3 Solutions"->{
  Cell[7919, 272, 249, 6, 
  28, "Input", "ExpressionUUID" -> "6dd1f72f-3022-4017-9a8f-026855de281c",
   CellTags->"2.3 Solutions"]}
 }
*)
(*CellTagsIndex
CellTagsIndex->{
 {"2.4 Solutions", 15817, 581},
 {"8.1 Solutions", 16641, 600},
 {"2.3 Solutions", 16795, 604}
 }
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[422, 15, 60, 1, 64, "Section", "ExpressionUUID" -> \
"40e9dfa9-e8ab-4fa6-a89a-db16049081a5",
 InitializationGroup->True],
Cell[485, 18, 240, 9, 49, "Text", "ExpressionUUID" -> \
"42243d2e-ae81-4cbe-8064-d4ffde54a678"],
Cell[CellGroupData[{
Cell[750, 31, 30, 0, 44, "Subsection", "ExpressionUUID" -> \
"a2f2aa60-af73-4fa6-8cab-6279d571f06c"],
Cell[783, 33, 109, 2, 32, "Input", "ExpressionUUID" -> \
"4356757d-99ce-437c-ae2f-a6d33b625421"],
Cell[895, 37, 191, 5, 32, "Input", "ExpressionUUID" -> \
"6f83e551-5093-4c56-80df-ddf5806a7a0f"],
Cell[1089, 44, 146, 4, 32, "Input", "ExpressionUUID" -> \
"76bf938d-fc84-4ee3-a3d6-451a0f2e4fd1"],
Cell[1238, 50, 347, 8, 54, "Input", "ExpressionUUID" -> \
"b9107da9-995e-44ea-807c-04d8367ef4e3"],
Cell[1588, 60, 112, 2, 32, "Input", "ExpressionUUID" -> \
"ce1232ad-4a8f-43f8-ba26-3c5ae03a4cb9"],
Cell[1703, 64, 147, 4, 32, "Input", "ExpressionUUID" -> \
"d8263aa4-5046-4707-9c7e-c6d7740e8e0d"],
Cell[1853, 70, 209, 5, 32, "Input", "ExpressionUUID" -> \
"7d57bcb9-e3cc-4bf7-88eb-5ceed1ad64cc"],
Cell[2065, 77, 256, 8, 32, "Input", "ExpressionUUID" -> \
"4cc7fc68-6e9c-45b2-a9d4-4021464bfd67"],
Cell[2324, 87, 457, 11, 75, "Input", "ExpressionUUID" -> \
"70b68bbc-ec14-4d8f-a639-06f25f3eb8db"],
Cell[2784, 100, 131, 3, 32, "Input", "ExpressionUUID" -> \
"cfd41c88-d735-41ba-b08e-de6ba6af4214"],
Cell[2918, 105, 140, 4, 32, "Input", "ExpressionUUID" -> \
"b7a22848-3074-4f4f-97c4-4b984b7d2295"],
Cell[3061, 111, 181, 3, 32, "Input", "ExpressionUUID" -> \
"6df97002-faeb-4082-bf2c-f8c9abbfecda"]
}, Closed]],
Cell[CellGroupData[{
Cell[3279, 119, 34, 0, 36, "Subsection", "ExpressionUUID" -> \
"5535031c-1925-4d08-bf64-7755078a634b"],
Cell[3316, 121, 304, 6, 54, "Input", "ExpressionUUID" -> \
"a37b89e0-9930-45d9-95fe-3540a27ed67e"],
Cell[3623, 129, 113, 3, 32, "Input", "ExpressionUUID" -> \
"0d65c9ba-8389-473b-9743-85971bc300c8"]
}, Closed]],
Cell[CellGroupData[{
Cell[3773, 137, 57, 0, 36, "Subsection", "ExpressionUUID" -> \
"00a62de7-0698-46d2-87f0-a86dbb97d5c7"],
Cell[3833, 139, 228, 5, 32, "Input", "ExpressionUUID" -> \
"b296e00c-2d9f-4c1f-b065-d4fec95f66c3"],
Cell[4064, 146, 316, 7, 75, "Input", "ExpressionUUID" -> \
"63869174-3dd2-4f24-bf1e-f076679277d4"],
Cell[4383, 155, 367, 9, 32, "Input", "ExpressionUUID" -> \
"42eb1a29-1aea-40ff-8746-5ae46e569fff"],
Cell[4753, 166, 267, 6, 54, "Input", "ExpressionUUID" -> \
"fd7e3658-1d60-461c-881c-ccdb669dda84"],
Cell[5023, 174, 222, 5, 32, "Input", "ExpressionUUID" -> \
"fcc79c1b-af62-4a47-bc9e-caac4c657fde"],
Cell[5248, 181, 417, 8, 96, "Input", "ExpressionUUID" -> \
"da41bed5-5432-4328-b58d-09107ba6f1de"],
Cell[5668, 191, 244, 5, 32, "Input", "ExpressionUUID" -> \
"3ee4687c-5075-430a-83c5-69c1f0ec91fd"],
Cell[5915, 198, 286, 7, 75, "Input", "ExpressionUUID" -> \
"b79c2b70-a624-4950-8d42-3e3fbeaf8b7f"],
Cell[6204, 207, 248, 6, 32, "Input", "ExpressionUUID" -> \
"710fe2e9-e6a0-4249-8e2c-926f464e17ec"],
Cell[6455, 215, 247, 6, 32, "Input", "ExpressionUUID" -> \
"5f5f58fa-83d8-4ffc-84e9-5728ae925d8b"]
}, Closed]],
Cell[6717, 224, 29, 0, 36, "Subsection", "ExpressionUUID" -> \
"407fcc9c-283b-4adc-b748-14096db55ce4"],
Cell[CellGroupData[{
Cell[6771, 228, 37, 0, 36, "Subsection", "ExpressionUUID" -> \
"a9a5a71c-c372-4cdf-932f-45eb5a0878a6"],
Cell[6811, 230, 74, 1, 571, "Input", "ExpressionUUID" -> \
"a34e3d1e-70af-4f64-b0e1-8556657b7e69"]
}, Closed]],
Cell[CellGroupData[{
Cell[6922, 236, 63, 0, 36, "Subsection", "ExpressionUUID" -> \
"4afb4f90-c0ae-45d3-a2db-7d0c3322ef39"],
Cell[6988, 238, 209, 6, 28, "Input", "ExpressionUUID" -> \
"13e12bd2-6e68-4269-a1bc-3b5d0c16585d"],
Cell[7200, 246, 448, 14, 28, "Input", "ExpressionUUID" -> \
"114e1f2d-013a-4f85-8cd5-d4840d40cd55",
 CellTags->"2.4 Solutions"],
Cell[7651, 262, 265, 8, 28, "Input", "ExpressionUUID" -> \
"beb58aa8-9930-4194-b03d-d6999cdd0beb",
 CellTags->"8.1 Solutions"],
Cell[7919, 272, 249, 6, 28, "Input", "ExpressionUUID" -> \
"6dd1f72f-3022-4017-9a8f-026855de281c",
 CellTags->"2.3 Solutions"],
Cell[8171, 280, 184, 5, 28, "Input", "ExpressionUUID" -> \
"7a43d9ee-a9bf-49b6-89ca-557335de6ba6"],
Cell[8358, 287, 248, 7, 27, "InputOnly", "ExpressionUUID" -> \
"22561d8b-35b3-4295-9eea-6735c7f95e92"],
Cell[8609, 296, 199, 5, 27, "InputOnly", "ExpressionUUID" -> \
"f26c1aa6-61f3-4c43-bf61-2f882da62122"],
Cell[8811, 303, 167, 5, 39, "Input", "ExpressionUUID" -> \
"bc7333a3-ae3d-4d6f-94e2-43df4121084f",
 CellTags->"2.4 Solutions"],
Cell[8981, 310, 211, 5, 28, "Input", "ExpressionUUID" -> \
"6cf5226e-2988-4d4f-bfaa-67529d990158"],
Cell[9195, 317, 228, 6, 28, "Input", "ExpressionUUID" -> \
"cebbef9b-37cc-4fdd-9e3a-cef09d438c61"],
Cell[9426, 325, 328, 11, 40, "Input", "ExpressionUUID" -> \
"38a8955e-8129-44a2-bac8-40477d56f601",
 CellTags->"2.4 Solutions"]
}, Closed]],
Cell[CellGroupData[{
Cell[9791, 341, 41, 0, 36, "Subsection", "ExpressionUUID" -> \
"e036c2ee-00b2-4633-81b8-1bad53d0c642"],
Cell[9835, 343, 51, 1, 571, "Input", "ExpressionUUID" -> \
"a3218fa4-3cee-4330-a01e-702767633b39"]
}, Closed]],
Cell[CellGroupData[{
Cell[9923, 349, 32, 0, 36, "Subsection", "ExpressionUUID" -> \
"5b08ad5e-546e-4a29-ace4-fbfe77905fb9"],
Cell[9958, 351, 83, 2, 108, "Input", "ExpressionUUID" -> \
"a3b611d3-ca5c-41e6-9d2f-451afd9e6b22"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[10090, 359, 27, 0, 64, "Section", "ExpressionUUID" -> \
"b01d79ce-3556-4b33-a8c3-9c72ef740e5b"],
Cell[CellGroupData[{
Cell[10142, 363, 34, 0, 44, "Subsection", "ExpressionUUID" -> \
"d27bc770-96aa-4e94-9dc6-bab61a035a03"],
Cell[10179, 365, 37, 0, 30, "Text", "ExpressionUUID" -> \
"3f7a072b-1668-40a2-a91b-9612c41f1e48"],
Cell[10219, 367, 85, 0, 32, "Input", "ExpressionUUID" -> \
"0c507717-99f2-424d-91c1-a5889945af09"],
Cell[10307, 369, 183, 6, 30, "Text", "ExpressionUUID" -> \
"ec785d31-23c7-4818-8808-15e9148261b0"],
Cell[10493, 377, 103, 1, 32, "Input", "ExpressionUUID" -> \
"3d9e3fee-5bd8-4661-9b74-3621769d4dd1"]
}, Open  ]],
Cell[CellGroupData[{
Cell[10633, 383, 41, 0, 44, "Subsection", "ExpressionUUID" -> \
"af6097d4-eef0-4c34-9ba7-e080ddcb674f"],
Cell[10677, 385, 53, 1, 32, "Input", "ExpressionUUID" -> \
"a8eb860f-72d0-404b-a4c8-c2f31d304c36"],
Cell[10733, 388, 54, 1, 32, "Input", "ExpressionUUID" -> \
"36806497-39f2-415b-bb8c-255f5a25df32"],
Cell[10790, 391, 51, 1, 32, "Input", "ExpressionUUID" -> \
"79525ed7-f492-4834-9b57-336b3adc29b3"],
Cell[10844, 394, 61, 1, 32, "Input", "ExpressionUUID" -> \
"a9aa18b7-99f7-4fee-a834-973fa0141d15"],
Cell[10908, 397, 51, 1, 32, "Input", "ExpressionUUID" -> \
"c4fca863-9cde-4281-8514-088601498cec"],
Cell[10962, 400, 56, 1, 32, "Input", "ExpressionUUID" -> \
"46c4f7bb-c25e-4204-99d8-ab569495b00e"],
Cell[11021, 403, 56, 1, 32, "Input", "ExpressionUUID" -> \
"502d9201-f1eb-48ec-8413-b6186c6fbd8c"],
Cell[11080, 406, 66, 1, 32, "Input", "ExpressionUUID" -> \
"e2d44900-cc91-435f-a17f-14465756be62"],
Cell[11149, 409, 59, 1, 32, "Input", "ExpressionUUID" -> \
"7e63328a-135b-41f6-adf1-8aa4ab0abd7d"],
Cell[11211, 412, 60, 1, 32, "Input", "ExpressionUUID" -> \
"5bc39fdd-8cc8-4cb6-9848-4cfb19ee4d86"]
}, Closed]],
Cell[CellGroupData[{
Cell[11308, 418, 56, 0, 36, "Subsection", "ExpressionUUID" -> \
"c8cce59b-b431-414c-bde5-816ebfe101a3"],
Cell[CellGroupData[{
Cell[11389, 422, 35, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"e2016b9f-1df2-430b-9c63-798696ed7834"],
Cell[11427, 424, 169, 4, 35, "Input", "ExpressionUUID" -> \
"39b58f06-bbc9-4bb5-817f-d76cd226ee3d"]
}, Open  ]],
Cell[CellGroupData[{
Cell[11633, 433, 36, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"0e22351a-a50e-4be9-830d-29fb11ea5e09"],
Cell[11672, 435, 238, 6, 54, "Input", "ExpressionUUID" -> \
"81f7da73-ffbe-4393-8f76-fa7f68147ef0"],
Cell[11913, 443, 121, 1, 32, "Input", "ExpressionUUID" -> \
"af913eb4-242e-4f42-80af-2e2814da2caa"],
Cell[12037, 446, 288, 8, 54, "Input", "ExpressionUUID" -> \
"165c87b4-fef0-416d-9fa1-7d8dd6ceff12"],
Cell[12328, 456, 121, 1, 32, "Input", "ExpressionUUID" -> \
"7626a0a5-9c4e-4eed-8893-864a970b0a04"]
}, Open  ]],
Cell[CellGroupData[{
Cell[12486, 462, 33, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"16001f95-ea3d-476c-a34b-fc20241fbca2"],
Cell[12522, 464, 192, 5, 35, "Input", "ExpressionUUID" -> \
"3309e6b9-e5cc-490d-9682-6e12b9736000"]
}, Open  ]],
Cell[CellGroupData[{
Cell[12751, 474, 98, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"775aa7ae-b74e-459c-af32-caae0c525584"],
Cell[12852, 476, 131, 1, 32, "Input", "ExpressionUUID" -> \
"6594bb6a-7ba6-460d-ba60-a31b2a3cb665"]
}, Open  ]],
Cell[CellGroupData[{
Cell[13020, 482, 33, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"ef0a49c0-eda0-4f8a-900b-bcc7209dfd30"],
Cell[13056, 484, 116, 1, 32, "Input", "ExpressionUUID" -> \
"1a9036f3-b9e6-4b9d-b924-58c9b6578f46"],
Cell[13175, 487, 134, 2, 32, "Input", "ExpressionUUID" -> \
"d9a2c716-bb06-432b-b137-d93103553311"]
}, Open  ]],
Cell[CellGroupData[{
Cell[13346, 494, 38, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"47462497-e08b-4b88-94c8-69cf31f079c3"],
Cell[13387, 496, 171, 4, 31, "InputOnly", "ExpressionUUID" -> \
"b88888c2-c0e5-4f51-afc4-8dd5ad3e6769"],
Cell[13561, 502, 275, 7, 32, "Input", "ExpressionUUID" -> \
"b4c8fb32-f0d0-43da-8202-5d32ffd264a5"]
}, Open  ]],
Cell[CellGroupData[{
Cell[13873, 514, 93, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"62d5e07b-0887-4dc2-b179-99b32dfb4417"],
Cell[13969, 516, 186, 4, 32, "Input", "ExpressionUUID" -> \
"3b098b77-ff68-4c45-ba6f-1c6893c85924"]
}, Open  ]],
Cell[CellGroupData[{
Cell[14192, 525, 48, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"4e5f5651-c4de-4e37-bb30-170b7b10f551"],
Cell[14243, 527, 200, 4, 32, "Input", "ExpressionUUID" -> \
"83748d04-56a4-491a-a8f8-7312d4963818"]
}, Open  ]],
Cell[CellGroupData[{
Cell[14480, 536, 41, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"f8f47f4e-0e4f-4f60-ae38-fc76267a1760"],
Cell[14524, 538, 139, 2, 32, "Input", "ExpressionUUID" -> \
"4fd35497-fb90-42b0-8488-fb13c6735e4c"],
Cell[14666, 542, 132, 1, 32, "Input", "ExpressionUUID" -> \
"a016973b-4176-4b40-ad26-6c8bdee15b14"]
}, Open  ]],
Cell[CellGroupData[{
Cell[14835, 548, 97, 0, 35, "Subsubsection", "ExpressionUUID" -> \
"6a7c3df4-4c20-45fe-b7b4-23d7dadee43b"],
Cell[14935, 550, 156, 3, 32, "Input", "ExpressionUUID" -> \
"2b624c4e-e117-4c3c-9b00-d731b0f5314d",
 CellTags->"2.4 Solutions"],
Cell[15094, 555, 157, 3, 32, "Input", "ExpressionUUID" -> \
"077f8b39-a72f-495e-bd99-becf647e6efc",
 CellTags->"2.4 Solutions"],
Cell[15254, 560, 157, 3, 32, "Input", "ExpressionUUID" -> \
"30b2a29b-ae8c-42f9-a115-27e22762cc7d",
 CellTags->"2.4 Solutions"]
}, Open  ]]
}, Closed]]
}, Open  ]]
}
]
*)

