(* Content-type: application/mathematica *)

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

(* CreatedBy='Mathematica 6.0' *)

(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[       145,          7]
NotebookDataLength[     36797,       1123]
NotebookOptionsPosition[     27914,        917]
NotebookOutlinePosition[     28359,        936]
CellTagsIndexPosition[     28316,        933]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["EPM`RandomWalks`", "Section",
 InitializationGroup->True,
 CounterAssignments->{{"Chapter", 0}}],

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

Cell[CellGroupData[{

Cell["Metadata", "Subsection"],

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", "Name", ":", " ", "EPM`RandomWalks`"}], " ", "*)"}]], "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", " ", "random", " ", 
    "walk", " ", "functions", " ", "defined", " ", "in", " ", "the", " ", 
    RowBox[{"book", "."}]}]}], " ", "*)"}]], "Input"],

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

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

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

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", "Keywords", ":", "\[IndentingNewLine]", 
    RowBox[{"random", " ", "walks"}]}], ",", " ", 
   RowBox[{"lattice", " ", "walks"}], ",", " ", 
   RowBox[{"off", "-", 
    RowBox[{"lattice", " ", "walks"}]}], ",", " ", 
   RowBox[{"mean", "-", 
    RowBox[{"square", " ", "distance"}]}], ",", "\[IndentingNewLine]", " ", 
   RowBox[{"radius", " ", "of", " ", "gyration"}]}], " ", 
  "\[IndentingNewLine]", "*)"}]], "Input"],

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

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{"Tested", " ", "in", " ", "Mathematica", " ", "11.1"}], " ", 
  "*)"}]], "Input",ExpressionUUID->"fabf71c5-4d20-45ac-bc92-60af24d5e5bd"]
}, Closed]],

Cell[CellGroupData[{

Cell["BeginPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"Remove", "[", 
  RowBox[{
  "AnimateWalk", ",", "Dimension", ",", "LatticeWalk", ",", "RandomWalk", ",",
    "ShowWalk", ",", "ShowWalkGC"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BeginPackage", "[", "\"\<EPM`RandomWalks`\>\"", "]"}], 
  ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Usage statements", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"AnimateWalk", "::", "usage"}], "=", "\"\<AnimateWalk[\!\(\*
StyleBox[\"walk\", \"TI\"]\), \!\(\*
StyleBox[\"opts\", \"TI\"]\)] creates an animation of a two-dimensional \
random walk. A red ball will be seen to move to the current position in the \
walk to aid in visualizing the animation.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Dimension", "::", "usage"}], "=", 
   "\"\<Dimension is an option to RandomWalk that determines whether the \
random walk will be a one-, two-, or three-dimensional walk. Possible values \
are 1, 2, or 3.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"LatticeWalk", "::", "usage"}], "=", 
   "\"\<LatticeWalk is an option to RandomWalk that determines whether the \
random walk will be a lattice walk or an off-lattice walk. Possible values \
are True and False.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RandomWalk", "::", "usage"}], "=", "\"\<RandomWalk[\!\(\*
StyleBox[\"t\", \"TI\"]\)] generates a \!\(\*
StyleBox[\"t\", \"TI\"]\)-step random walk. The default behavior gives a \
two-dimensional lattice walk with steps in one of the four compass \
directions. The option LatticeWalk takes values True or False. The value of \
the option Dimension can be any of 1, 2, or 3.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ShowWalk", "::", "usage"}], "=", "\"\<ShowWalk[\!\(\*
StyleBox[\"walk\", \"TI\"]\)] displays a one, two, or three-dimensional \
random walk connecting each site with a line. Graphics options can be passed \
to ShowWalk. E.g., ShowWalk[\!\(\*
StyleBox[\"walk\", \"TI\"]\), Background\[Rule]GrayLevel[0]] to produce a \
black background.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ShowWalkGC", "::", "usage"}], "=", "\"\<ShowWalkGC[\!\(\*
StyleBox[\"walk\", \"TI\"]\)] displays a two- or three-dimensional random \
walk connecting each site with a line. Graphics options can be passed to \
ShowWalkGC. E.g., ShowWalkGC[\!\(\*
StyleBox[\"walk\", \"TI\"]\), Background\[Rule]GrayLevel[0]] to produce a \
black background.\>\""}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Warning messages", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   StyleBox[
    RowBox[{"RandomWalk", "::", "rwn"}], "MessageName"], "=", 
   "\"\<Argument `1` is not a positive integer.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   StyleBox[
    RowBox[{"RandomWalk", "::", "baddim"}], "MessageName"], "=", 
   "\"\<The value `1` of the option Dimension is not a positive \
integer.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RandomWalk", "::", "baddimlat"}], "=", 
   "\"\<The value `1` of the option Dimension is not a positive integer \
between 1 and 3.\>\""}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Options", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "AnimateWalk", "]"}], "=", 
   RowBox[{"Options", "[", "Animate", "]"}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "RandomWalk", "]"}], "=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"LatticeWalk", "\[Rule]", "True"}], ",", 
     RowBox[{"Dimension", "\[Rule]", "2"}]}], "}"}]}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "ShowWalk", "]"}], "=", 
   RowBox[{"Join", "[", 
    RowBox[{
     RowBox[{"Options", "[", "ListLinePlot", "]"}], ",", 
     RowBox[{"Options", "[", "Graphics3D", "]"}]}], "]"}]}], ";"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

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

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

Cell[CellGroupData[{

Cell["Function definitions", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"latticeWalk", "[", 
   RowBox[{"steps_", ",", "dim_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"w", ",", "mat"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"mat", "=", 
      RowBox[{"Join", "[", 
       RowBox[{
        RowBox[{"IdentityMatrix", "[", "dim", "]"}], ",", 
        RowBox[{"-", 
         RowBox[{"IdentityMatrix", "[", "dim", "]"}]}]}], "]"}]}], ";", 
     RowBox[{"w", "=", 
      RowBox[{"Accumulate", "[", 
       RowBox[{"RandomChoice", "[", 
        RowBox[{"mat", ",", "steps"}], "]"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"If", "[", 
      RowBox[{
       RowBox[{"dim", "\[Equal]", "1"}], ",", 
       RowBox[{"Flatten", "[", "w", "]"}], ",", "w"}], "]"}]}]}], 
   "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"offLatticeWalk", "[", 
   RowBox[{"t_", ",", "dim_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"f1", ",", "f2", ",", "f3"}], "}"}], ",", "\[IndentingNewLine]", 
    
    RowBox[{
     RowBox[{"f1", ":=", 
      RowBox[{"RandomReal", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{
          RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", "t"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"f2", ":=", 
      RowBox[{"Map", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{"Cos", "[", "#", "]"}], ",", 
           RowBox[{"Sin", "[", "#", "]"}]}], "}"}], "&"}], ",", 
        RowBox[{"RandomReal", "[", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{"0", ",", 
            RowBox[{"2", " ", "\[Pi]"}]}], "}"}], ",", "t"}], "]"}]}], 
       "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"f3", ":=", 
      RowBox[{"MapThread", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"Cos", "[", "#1", "]"}], 
            RowBox[{"Sqrt", "[", 
             RowBox[{"1", "-", 
              RowBox[{"#2", "^", "2"}]}], "]"}]}], ",", 
           RowBox[{
            RowBox[{"Sin", "[", "#1", "]"}], 
            RowBox[{"Sqrt", "[", 
             RowBox[{"1", "-", 
              RowBox[{"#2", "^", "2"}]}], "]"}]}], ",", "#2"}], "}"}], "&"}], 
        ",", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"RandomReal", "[", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{"0", ",", 
              RowBox[{"2", "Pi"}]}], "}"}], ",", "t"}], "]"}], ",", 
          RowBox[{"RandomReal", "[", 
           RowBox[{
            RowBox[{"{", 
             RowBox[{
              RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", "t"}], "]"}]}], 
         "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Which", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"dim", "\[Equal]", "1"}], ",", 
       RowBox[{"Accumulate", "[", "f1", "]"}], ",", "\[IndentingNewLine]", 
       RowBox[{"dim", "\[Equal]", "2"}], ",", 
       RowBox[{"Accumulate", "[", "f2", "]"}], ",", "\[IndentingNewLine]", 
       RowBox[{"dim", "\[Equal]", "3"}], ",", 
       RowBox[{"Accumulate", "[", "f3", "]"}]}], "\[IndentingNewLine]", 
      "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomWalk", "[", 
   RowBox[{"t_", ",", 
    RowBox[{"OptionsPattern", "[", "]"}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"dim", ",", "latticeQ"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"{", 
       RowBox[{"latticeQ", ",", "dim"}], "}"}], "=", 
      RowBox[{"OptionValue", "[", 
       RowBox[{"{", 
        RowBox[{"LatticeWalk", ",", "Dimension"}], "}"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"Which", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"!", 
        RowBox[{"(", 
         RowBox[{
          RowBox[{"IntegerQ", "[", "t", "]"}], "&&", 
          RowBox[{"t", ">", "0"}]}], ")"}]}], ",", 
       RowBox[{"Message", "[", 
        RowBox[{
         RowBox[{"RandomWalk", "::", "\"\<rwn\>\""}], ",", "t"}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"(", 
        RowBox[{"latticeQ", "&&", 
         RowBox[{"(", 
          RowBox[{
           RowBox[{"!", 
            RowBox[{"IntegerQ", "[", "dim", "]"}]}], "||", 
           RowBox[{"NonPositive", "[", "dim", "]"}]}], ")"}]}], ")"}], ",", 
       RowBox[{"Message", "[", 
        RowBox[{
         RowBox[{"RandomWalk", "::", "baddim"}], ",", "dim"}], "]"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{"!", "latticeQ"}], "&&", 
         RowBox[{"FreeQ", "[", 
          RowBox[{
           RowBox[{"{", 
            RowBox[{"1", ",", "2", ",", "3"}], "}"}], ",", "dim"}], "]"}]}], 
        ")"}], ",", 
       RowBox[{"Message", "[", 
        RowBox[{
         RowBox[{"RandomWalk", "::", "baddimlat"}], ",", "dim"}], "]"}], ",", 
       "\[IndentingNewLine]", "latticeQ", ",", 
       RowBox[{"latticeWalk", "[", 
        RowBox[{"t", ",", "dim"}], "]"}], ",", "\[IndentingNewLine]", "True", 
       ",", 
       RowBox[{"offLatticeWalk", "[", 
        RowBox[{"t", ",", "dim"}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}], 
   "\[IndentingNewLine]", "]"}]}]], "Input"],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"RandomWalk", "[", "x__", "]"}], "/;", 
   RowBox[{"Message", "[", 
    RowBox[{
     RowBox[{"RandomWalk", "::", "rwn"}], ",", "x"}], "]"}]}], ":=", 
  "Null"}], "\n", 
 RowBox[{
  RowBox[{
   RowBox[{
    RowBox[{"RandomWalk", "[", "]"}], "/;", 
    RowBox[{"Message", "[", 
     RowBox[{
      RowBox[{"General", "::", "argx"}], ",", "RandomWalk", ",", "0"}], 
     "]"}]}], ":=", "Null"}], ";"}]}], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["Visualization functions", "Subsection"],

Cell["Show a single 1D walk:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{"coords_", "?", "VectorQ"}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  "\[IndentingNewLine]", "\t", 
  RowBox[{"ListLinePlot", "[", 
   RowBox[{"coords", ",", " ", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "ListLinePlot", "]"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell["Show multiple 1D walks:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{
     RowBox[{"coords", ":", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{"__", "?", "NumberQ"}], "}"}], ".."}], "}"}]}], "/;", 
     RowBox[{
      RowBox[{"Length", "[", 
       RowBox[{"First", "[", "coords", "]"}], "]"}], "\[NotEqual]", "3"}]}], 
    ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  "\[IndentingNewLine]", "\t", 
  RowBox[{"ListLinePlot", "[", 
   RowBox[{"coords", ",", " ", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "ListLinePlot", "]"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell["A single 2D walk:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  "\[IndentingNewLine]", "\t", 
  RowBox[{"ListLinePlot", "[", 
   RowBox[{"coords", ",", " ", 
    RowBox[{"Append", "[", 
     RowBox[{
      RowBox[{"FilterRules", "[", 
       RowBox[{
        RowBox[{"{", "opts", "}"}], ",", 
        RowBox[{"Options", "[", "ListLinePlot", "]"}]}], "]"}], ",", " ", 
      RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell["Multiple 2D walks:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  RowBox[{"ListLinePlot", "[", 
   RowBox[{"coords", ",", " ", 
    RowBox[{"Append", "[", 
     RowBox[{
      RowBox[{"FilterRules", "[", 
       RowBox[{
        RowBox[{"{", "opts", "}"}], ",", 
        RowBox[{"Options", "[", "ListLinePlot", "]"}]}], "]"}], ",", " ", 
      RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell["A single 3D walk:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"_", ",", "_", ",", "_"}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  "\[IndentingNewLine]", "\t", 
  RowBox[{"Graphics3D", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{
       RowBox[{"ColorData", "[", "1", "]"}], "[", "1", "]"}], ",", "Thin", 
      ",", 
      RowBox[{"Line", "[", "coords", "]"}]}], "}"}], ",", " ", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "Graphics3D", "]"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell["Multiple 3D walks:", "Text",
 FontColor->GrayLevel[0.5]],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalk", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"_", ",", "_", ",", "_"}], "}"}], ".."}], "}"}], ".."}], 
      "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  RowBox[{"Graphics3D", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"MapThread", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"{", 
        RowBox[{"#1", ",", 
         RowBox[{"Thickness", "[", ".001", "]"}], ",", 
         RowBox[{"Line", "[", "#2", "]"}]}], "}"}], "&"}], ",", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"Map", "[", 
         RowBox[{
          RowBox[{
           RowBox[{
            RowBox[{"ColorData", "[", "1", "]"}], "[", "#", "]"}], "&"}], ",", 
          RowBox[{"Range", "[", 
           RowBox[{"Length", "[", "coords", "]"}], "]"}]}], "]"}], ",", 
        "coords"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "Graphics3D", "]"}]}], "]"}]}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalkGC", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "Graphics", "]"}]}]}], "]"}], ":=", 
  RowBox[{"Graphics", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"GraphicsComplex", "[", 
     RowBox[{"coords", ",", "\[IndentingNewLine]", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"Thickness", "[", "Small", "]"}], ",", 
        RowBox[{
         RowBox[{"ColorData", "[", "1", "]"}], "[", "1", "]"}], ",", 
        RowBox[{"Line", "[", 
         RowBox[{"Range", "[", 
          RowBox[{"Length", "[", "coords", "]"}], "]"}], "]"}]}], "}"}]}], 
     "\[IndentingNewLine]", "]"}], ",", "opts", ",", "\[IndentingNewLine]", 
    RowBox[{"Axes", "\[Rule]", "True"}], ",", 
    RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalkGC", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  RowBox[{"Graphics", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"MapIndexed", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"GraphicsComplex", "[", 
        RowBox[{"#1", ",", "\[IndentingNewLine]", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"ColorData", "[", "1", "]"}], "[", 
            RowBox[{"First", "[", "#2", "]"}], "]"}], ",", "Thin", ",", 
           RowBox[{"Line", "[", 
            RowBox[{"Range", "[", 
             RowBox[{"Length", "[", "#1", "]"}], "]"}], "]"}]}], "}"}]}], 
        "]"}], "&"}], ",", "coords"}], "]"}], ",", "\[IndentingNewLine]", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "Graphics", "]"}]}], "]"}], ",", 
    RowBox[{"Axes", "\[Rule]", "True"}], ",", 
    RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalkGC", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"_", ",", "_", ",", "_"}], "}"}], ".."}], "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  RowBox[{"Graphics3D", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"GraphicsComplex", "[", 
     RowBox[{"coords", ",", "\[IndentingNewLine]", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{
         RowBox[{"ColorData", "[", "1", "]"}], "[", "1", "]"}], ",", "Thin", 
        ",", 
        RowBox[{"Line", "[", 
         RowBox[{"Range", "[", 
          RowBox[{"Length", "[", "coords", "]"}], "]"}], "]"}]}], "}"}]}], 
     "]"}], ",", "\[IndentingNewLine]", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "Graphics3D", "]"}]}], "]"}], ",", 
    RowBox[{"Axes", "\[Rule]", "True"}], ",", 
    RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ShowWalkGC", "[", 
   RowBox[{
    RowBox[{"coords", ":", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"_", ",", "_", ",", "_"}], "}"}], ".."}], "}"}], ".."}], 
      "}"}]}], ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], " ", ":=", 
  RowBox[{"Graphics3D", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"MapIndexed", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"GraphicsComplex", "[", 
        RowBox[{"#1", ",", "\[IndentingNewLine]", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{
            RowBox[{"ColorData", "[", "1", "]"}], "[", 
            RowBox[{"First", "[", "#2", "]"}], "]"}], ",", "Thin", ",", 
           RowBox[{"Line", "[", 
            RowBox[{"Range", "[", 
             RowBox[{"Length", "[", "#1", "]"}], "]"}], "]"}]}], "}"}]}], 
        "]"}], "&"}], ",", "coords"}], "]"}], ",", "\[IndentingNewLine]", 
    RowBox[{"FilterRules", "[", 
     RowBox[{
      RowBox[{"{", "opts", "}"}], ",", 
      RowBox[{"Options", "[", "Graphics3D", "]"}]}], "]"}], ",", 
    RowBox[{"Axes", "\[Rule]", "True"}], ",", 
    RowBox[{"AspectRatio", "\[Rule]", "Automatic"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"AnimateWalk", "[", 
   RowBox[{"rw_", ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"len", "=", 
       RowBox[{"Length", "[", "rw", "]"}]}], ",", "steps", ",", "gr"}], "}"}],
     ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"gr", "=", 
      RowBox[{"If", "[", 
       RowBox[{
        RowBox[{
         RowBox[{
          RowBox[{"Dimensions", "[", "rw", "]"}], "[", 
          RowBox[{"[", "2", "]"}], "]"}], "\[Equal]", "2"}], ",", "Graphics", 
        ",", "Graphics3D"}], "]"}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Animate", "[", 
      RowBox[{
       RowBox[{"gr", "[", 
        RowBox[{
         RowBox[{"Line", "[", 
          RowBox[{"Take", "[", 
           RowBox[{"rw", ",", "steps"}], "]"}], "]"}], ",", 
         RowBox[{"PlotRange", "\[Rule]", 
          RowBox[{"RegionBounds", "[", 
           RowBox[{"ConvexHullMesh", "[", "rw", "]"}], "]"}]}], ",", 
         RowBox[{"PlotLabel", "\[Rule]", 
          RowBox[{"StringForm", "[", 
           RowBox[{"\"\<Walk length: ``\>\"", ",", "steps"}], "]"}]}]}], 
        "]"}], ",", "\[IndentingNewLine]", 
       RowBox[{"{", 
        RowBox[{
         RowBox[{"{", 
          RowBox[{"steps", ",", "2", ",", "\"\<Steps\>\""}], "}"}], ",", "2", 
         ",", "len", ",", "1"}], "}"}], ",", "opts"}], "]"}]}]}], 
   "]"}]}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

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

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

Cell[CellGroupData[{

Cell["EndPackage", "Subsection"],

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

Cell[CellGroupData[{

Cell["Test the package", "Section"],

Cell[CellGroupData[{

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

Cell[BoxData["Quit"], "Input",ExpressionUUID->"3efedd6c-e6aa-4822-8239-f94d7935bddf"],

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

Cell[BoxData[
 RowBox[{"<<", "EPM`RandomWalks`"}]], "Input",ExpressionUUID->"994ec52e-e2e1-4538-9dee-080985e7fbc7"]
}, Open  ]],

Cell[CellGroupData[{

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

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

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

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

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

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

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"ShowWalk", "[", 
  RowBox[{"RandomWalk", "[", 
   RowBox[{
    SuperscriptBox["10", "4"], ",", 
    RowBox[{"Dimension", "\[Rule]", "1"}]}], "]"}], "]"}]], "Input",Expression\
UUID->"1bb040da-eac5-4f0b-bb51-441d4e6847f8"],

Cell[BoxData[
 RowBox[{"ShowWalk", "[", 
  RowBox[{"RandomWalk", "[", 
   RowBox[{
    SuperscriptBox["10", "4"], ",", 
    RowBox[{"Dimension", "\[Rule]", "2"}], ",", 
    RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}], "]"}]], "Input",Expr\
essionUUID->"7f9444a6-24be-48bd-8bf8-1fd7e9579ea8"],

Cell[BoxData[
 RowBox[{"ShowWalk", "[", 
  RowBox[{"RandomWalk", "[", 
   RowBox[{
    SuperscriptBox["10", "4"], ",", 
    RowBox[{"Dimension", "\[Rule]", "3"}], ",", 
    RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}], "]"}]], "Input",Expr\
essionUUID->"de5cf530-f7ba-4de5-8590-be3cb66f9327"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"walks", "=", 
   RowBox[{"Table", "[", 
    RowBox[{
     RowBox[{"RandomWalk", "[", 
      RowBox[{
       SuperscriptBox["10", "5"], ",", 
       RowBox[{"Dimension", "\[Rule]", "3"}]}], "]"}], ",", 
     RowBox[{"{", "8", "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"ShowWalkGC", "[", "walks", "]"}]}], "Input",ExpressionUUID->\
"1ae2f697-1f6f-4734-afde-1d59e8b70d24"],

Cell[BoxData[{
 RowBox[{
  RowBox[{"rw", "=", 
   RowBox[{"RandomWalk", "[", 
    RowBox[{"500", ",", 
     RowBox[{"Dimension", "\[Rule]", "3"}], ",", 
     RowBox[{"LatticeWalk", "\[Rule]", "False"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"AnimateWalk", "[", 
  RowBox[{"rw", ",", 
   RowBox[{"DisplayAllSteps", "\[Rule]", "True"}]}], "]"}]}], "Input",Expressi\
onUUID->"f5de9a69-4952-4903-99e0-d955ba0a347c"]
}, Closed]]
}, Open  ]]
},
AutoGeneratedPackage->Automatic,
ScreenStyleEnvironment->"Working",
WindowSize->{882, 774},
WindowMargins->{{Automatic, 817}, {Automatic, 26}},
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->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[567, 22, 102, 2, 64, "Section", "ExpressionUUID" -> \
"0faa3a26-4946-4a7c-bd6c-131ffb6bb419",
 InitializationGroup->True,
 CounterAssignments->{{"Chapter", 0}}],
Cell[672, 26, 268, 10, 49, "Text", "ExpressionUUID" -> \
"0114eea0-6acf-4e1a-a2b1-45b1dece95d8"],
Cell[CellGroupData[{
Cell[965, 40, 30, 0, 44, "Subsection", "ExpressionUUID" -> \
"50b6b4d7-636f-4007-baed-332541b5e6ab"],
Cell[998, 42, 112, 2, 32, "Input", "ExpressionUUID" -> \
"79d36dde-4db4-4017-8f73-408ba7065757"],
Cell[1113, 46, 191, 5, 32, "Input", "ExpressionUUID" -> \
"c67eb2dd-cda4-41c1-a0d9-f6178d4ba104"],
Cell[1307, 53, 146, 4, 32, "Input", "ExpressionUUID" -> \
"35030f3d-ee75-4dff-a11d-d3d99f3ae3b8"],
Cell[1456, 59, 289, 6, 32, "Input", "ExpressionUUID" -> \
"50a10c3c-5047-46a9-a487-6da888bc65c3"],
Cell[1748, 67, 118, 3, 32, "Input", "ExpressionUUID" -> \
"ee9f995c-4532-4f1c-befb-309440ffb1c1"],
Cell[1869, 72, 135, 4, 32, "Input", "ExpressionUUID" -> \
"dca2f7b7-a230-42be-a71c-bbcf1c08c9a1"],
Cell[2007, 78, 229, 6, 32, "Input", "ExpressionUUID" -> \
"c438b734-8f4d-44f1-8076-ad9ee04d622e"],
Cell[2239, 86, 435, 12, 75, "Input", "ExpressionUUID" -> \
"35e4197d-daa9-4c25-a1a6-5dde4d0c3aed"],
Cell[2677, 100, 482, 11, 96, "Input", "ExpressionUUID" -> \
"31522e05-c7a0-423e-896f-2d89d460938a"],
Cell[3162, 113, 134, 3, 32, "Input", "ExpressionUUID" -> \
"53284db4-f3c8-4340-b7a3-06cc5f115bba"],
Cell[3299, 118, 140, 4, 32, "Input", "ExpressionUUID" -> \
"192f685d-89bd-468f-98f2-7aa34fd90ad5"],
Cell[3442, 124, 181, 3, 32, "Input", "ExpressionUUID" -> \
"fabf71c5-4d20-45ac-bc92-60af24d5e5bd"]
}, Closed]],
Cell[CellGroupData[{
Cell[3660, 132, 34, 0, 36, "Subsection", "ExpressionUUID" -> \
"265a290e-2b07-4585-98e7-0b9c572a2b2d"],
Cell[3697, 134, 182, 4, 31, "Input", "ExpressionUUID" -> \
"575c279c-ff9b-4b1a-a037-55f67925b196"],
Cell[3882, 140, 109, 3, 31, "Input", "ExpressionUUID" -> \
"cc536347-51b4-4286-bc69-0e83af1af3f7"]
}, Closed]],
Cell[CellGroupData[{
Cell[4028, 148, 38, 0, 36, "Subsection", "ExpressionUUID" -> \
"bc36e4c3-eb48-4715-8bfe-2f7023bd6c02"],
Cell[4069, 150, 362, 7, 118, "Input", "ExpressionUUID" -> \
"0308929c-7841-4e75-b916-67125a2e2716"],
Cell[4434, 159, 276, 6, 118, "Input", "ExpressionUUID" -> \
"b6edf53a-d3d6-42c6-9e17-763146270fce"],
Cell[4713, 167, 282, 6, 118, "Input", "ExpressionUUID" -> \
"735fde8f-4371-476f-8192-8ee3c9bf6054"],
Cell[4998, 175, 444, 8, 144, "Input", "ExpressionUUID" -> \
"7b5da125-c92e-4e1e-9475-814420d10632"],
Cell[5445, 185, 407, 8, 144, "Input", "ExpressionUUID" -> \
"52174a2b-9805-47a9-afa7-0e19e687c4af"],
Cell[5855, 195, 410, 8, 118, "Input", "ExpressionUUID" -> \
"0d447802-f2e8-4147-92ae-b947678a0bd5"]
}, Closed]],
Cell[CellGroupData[{
Cell[6302, 208, 38, 0, 36, "Subsection", "ExpressionUUID" -> \
"eec13446-8972-45a5-9b8c-e07937fe08f2"],
Cell[6343, 210, 183, 5, 53, "Input", "ExpressionUUID" -> \
"5bdb3a9c-b9f7-4240-a40b-398892aef398"],
Cell[6529, 217, 213, 6, 53, "Input", "ExpressionUUID" -> \
"a455d5b8-9f1e-408f-ba74-cd5489cf220a"],
Cell[6745, 225, 202, 5, 88, "Input", "ExpressionUUID" -> \
"3653badd-fa19-49e1-800a-dc2232e31df8"]
}, Closed]],
Cell[CellGroupData[{
Cell[6984, 235, 29, 0, 36, "Subsection", "ExpressionUUID" -> \
"c8dc3035-2152-48cc-b0bc-5eae04481b2f"],
Cell[7016, 237, 153, 4, 53, "Input", "ExpressionUUID" -> \
"ad745a0d-cec2-4b10-9496-c42cc54c5276"],
Cell[7172, 243, 245, 7, 53, "Input", "ExpressionUUID" -> \
"8a8865ff-1d90-4396-839c-5e979740ad46"],
Cell[7420, 252, 260, 7, 53, "Input", "ExpressionUUID" -> \
"ecc17f3a-2288-4188-84a0-80a0d6a3775b"]
}, Closed]],
Cell[CellGroupData[{
Cell[7717, 264, 43, 0, 36, "Subsection", "ExpressionUUID" -> \
"203b8210-52d1-440d-8d04-8c32fb60c713"],
Cell[7763, 266, 92, 2, 45, "Input", "ExpressionUUID" -> \
"9b73969b-1a8a-493a-9868-30c3f7994e5f"]
}, Closed]],
Cell[CellGroupData[{
Cell[7892, 273, 42, 0, 36, "Subsection", "ExpressionUUID" -> \
"a0ebe95d-e3c4-4add-9e2c-192a3478ea83"],
Cell[7937, 275, 849, 24, 187, "Input", "ExpressionUUID" -> \
"53c6d51a-9647-4488-a0e4-8f30f6698297"],
Cell[8789, 301, 2422, 69, 351, "Input", "ExpressionUUID" -> \
"32421e7a-1a5f-47eb-b719-f4ac673da7a0"],
Cell[11214, 372, 2055, 56, 383, "Input", "ExpressionUUID" -> \
"a51a4062-cd5f-4dae-bec8-687f4b5153af"],
Cell[13272, 430, 458, 15, 88, "Input", "ExpressionUUID" -> \
"fdf769dd-1610-4107-9346-6bf21ffffa23"]
}, Closed]],
Cell[CellGroupData[{
Cell[13767, 450, 45, 0, 36, "Subsection", "ExpressionUUID" -> \
"b6dedf8f-4ccc-492c-b67b-d8fb33d9a7ab"],
Cell[13815, 452, 66, 1, 57, "Text", "ExpressionUUID" -> \
"e02b2a41-a188-4b32-8603-35c21fa21177"],
Cell[13884, 455, 472, 14, 88, "Input", "ExpressionUUID" -> \
"e5e94ffb-72d6-448a-98c9-e559ee744c75"],
Cell[14359, 471, 67, 1, 57, "Text", "ExpressionUUID" -> \
"53dd31e1-2bcd-4660-9ffb-18ebeff251a3"],
Cell[14429, 474, 724, 23, 121, "Input", "ExpressionUUID" -> \
"877c6422-7cbe-4550-be07-5099f0ed62df"],
Cell[15156, 499, 61, 1, 57, "Text", "ExpressionUUID" -> \
"b432e62b-3acf-4e69-87a4-6735c0a0bad4"],
Cell[15220, 502, 696, 21, 121, "Input", "ExpressionUUID" -> \
"bee63a09-41e0-4993-9122-7f665a461f97"],
Cell[15919, 525, 62, 1, 57, "Text", "ExpressionUUID" -> \
"8a06916a-ab7a-4150-98c7-ec2b4d007d0d"],
Cell[15984, 528, 721, 22, 121, "Input", "ExpressionUUID" -> \
"08f6f087-a678-432c-bc36-1b064850f9dd"],
Cell[16708, 552, 61, 1, 57, "Text", "ExpressionUUID" -> \
"c35b588f-ece9-4f6d-9482-bd28fa04a4c5"],
Cell[16772, 555, 756, 24, 121, "Input", "ExpressionUUID" -> \
"59e36e90-8ff4-4ea8-9227-b635484113ac"],
Cell[17531, 581, 62, 1, 57, "Text", "ExpressionUUID" -> \
"fd2f9971-7682-467f-aef3-5d9e15cb84eb"],
Cell[17596, 584, 1215, 37, 153, "Input", "ExpressionUUID" -> \
"06d07088-4e64-4f12-b465-9eeb5a0a1c75"],
Cell[18814, 623, 977, 25, 187, "Input", "ExpressionUUID" -> \
"1a4ac2c5-ade3-40e5-bd4c-f88c3385d17e"],
Cell[19794, 650, 1256, 34, 153, "Input", "ExpressionUUID" -> \
"d9e1e800-2e6c-458d-9915-1b0c2bb442aa"],
Cell[21053, 686, 1065, 29, 153, "Input", "ExpressionUUID" -> \
"e438b45c-1aba-4b48-881b-e4876a21658f"],
Cell[22121, 717, 1277, 35, 153, "Input", "ExpressionUUID" -> \
"dc7f51a1-c9b1-48e0-a974-76e503ca7e07"],
Cell[23401, 754, 1484, 41, 187, "Input", "ExpressionUUID" -> \
"a8993f47-1312-4558-9e2e-7218b13b06f1"]
}, Closed]],
Cell[CellGroupData[{
Cell[24922, 800, 41, 0, 36, "Subsection", "ExpressionUUID" -> \
"33e13fb0-a5bc-4d20-b7a3-686d753d01c5"],
Cell[24966, 802, 69, 2, 43, "Input", "ExpressionUUID" -> \
"0ceb1266-5e4f-487f-8e2c-a3947c9236b9"]
}, Closed]],
Cell[CellGroupData[{
Cell[25072, 809, 32, 0, 36, "Subsection", "ExpressionUUID" -> \
"52a8b054-001a-4546-a939-8ef6e8e03aec"],
Cell[25107, 811, 58, 1, 45, "Input", "ExpressionUUID" -> \
"be16f9a0-fa06-4b8b-8472-21c0d7fa2703"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[25214, 818, 35, 0, 64, "Section", "ExpressionUUID" -> \
"2092a665-468d-4db6-9916-ed903070abaf"],
Cell[CellGroupData[{
Cell[25274, 822, 34, 0, 44, "Subsection", "ExpressionUUID" -> \
"434a9dc7-d3dc-4174-b0a9-83d9f80d812a"],
Cell[25311, 824, 85, 0, 32, "Input", "ExpressionUUID" -> \
"3efedd6c-e6aa-4822-8239-f94d7935bddf"],
Cell[25399, 826, 211, 7, 30, "Text", "ExpressionUUID" -> \
"bfa3a350-e814-48fe-8c7f-ffb36a26f09e"],
Cell[25613, 835, 115, 1, 32, "Input", "ExpressionUUID" -> \
"994ec52e-e2e1-4538-9dee-080985e7fbc7"]
}, Open  ]],
Cell[CellGroupData[{
Cell[25765, 841, 41, 0, 44, "Subsection", "ExpressionUUID" -> \
"afa3b8c5-6ea0-43bb-8a79-a83e4ef89ab1"],
Cell[25809, 843, 54, 1, 31, "Input", "ExpressionUUID" -> \
"d017a613-6f3a-4285-866d-6f1c3db67905"],
Cell[25866, 846, 52, 1, 31, "Input", "ExpressionUUID" -> \
"7942820e-e96d-4f47-bdd2-d4bfc5589ede"],
Cell[25921, 849, 54, 1, 31, "Input", "ExpressionUUID" -> \
"80e3837e-86bd-472b-bb63-0d96b2f7f941"],
Cell[25978, 852, 53, 1, 31, "Input", "ExpressionUUID" -> \
"a5195bae-e85c-40dd-9bea-5228539f8481"],
Cell[26034, 855, 51, 1, 31, "Input", "ExpressionUUID" -> \
"51169f73-1344-41f1-9667-eeaa9057efd1"]
}, Closed]],
Cell[CellGroupData[{
Cell[26122, 861, 56, 0, 36, "Subsection", "ExpressionUUID" -> \
"d5cdbabb-26cc-4f49-8e94-112ab19bf067"],
Cell[26181, 863, 245, 6, 35, "Input", "ExpressionUUID" -> \
"1bb040da-eac5-4f0b-bb51-441d4e6847f8"],
Cell[26429, 871, 300, 7, 35, "Input", "ExpressionUUID" -> \
"7f9444a6-24be-48bd-8bf8-1fd7e9579ea8"],
Cell[26732, 880, 300, 7, 35, "Input", "ExpressionUUID" -> \
"de5cf530-f7ba-4de5-8590-be3cb66f9327"],
Cell[27035, 889, 421, 11, 56, "Input", "ExpressionUUID" -> \
"1ae2f697-1f6f-4734-afde-1d59e8b70d24"],
Cell[27459, 902, 427, 11, 54, "Input", "ExpressionUUID" -> \
"f5de9a69-4952-4903-99e0-d955ba0a347c"]
}, Closed]]
}, Open  ]]
}
]
*)

