(* 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[    135629,       3862]
NotebookOptionsPosition[    121632,       3396]
NotebookOutlinePosition[    122143,       3416]
CellTagsIndexPosition[    122100,       3413]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell["PwM`Chap05Functional`", "Section",
 InitializationGroup->True],

Cell[TextData[{
 StyleBox["From",
  FontWeight->"Bold"],
 ": ",
 StyleBox[ButtonBox["Programming with Mathematica: An Introduction",
  BaseStyle->"Hyperlink",
  ButtonData->{
    URL["http://www.cambridge.org/wellin"], None},
  ButtonNote->"http://www.cambridge.org/wellin"],
  FontSlant->"Italic",
  FontVariations->{"Underline"->True}]
}], "Text",
 CellMargins->{{28, 10}, {7, 7}},
 FontSize->14],

Cell[CellGroupData[{

Cell["Metadata", "Subsection"],

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Book", ":", " ", 
    RowBox[{"Programming", " ", "with", " ", 
     RowBox[{"Mathematica", ":", " ", 
      RowBox[{"An", " ", "Introduction"}]}]}]}]}], " ", "*)"}]], "Input"],

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

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

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

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"Copyright", ":", " ", 
     RowBox[{"Copyright", " ", "2012"}]}]}], ",", " ", 
   RowBox[{"Cambridge", " ", "University", " ", "Press"}]}], " ", 
  "*)"}]], "Input"],

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{
   RowBox[{":", 
    RowBox[{"Keywords", ":", " ", 
     RowBox[{"adjacency", " ", "structure"}]}]}], ",", " ", 
   RowBox[{"composite", " ", "number"}], ",", " ", "attributes", ",", " ", 
   "options", ",", " ", 
   RowBox[{"Hamming", " ", "distance"}], ",", " ", 
   RowBox[{"perfect", " ", "numbers"}], ",", " ", 
   RowBox[{"pointset", " ", "diameter"}], ",", " ", 
   RowBox[{"regular", " ", "graph"}], ",", " ", 
   RowBox[{"random", " ", "colors"}], ",", " ", 
   RowBox[{"rep", " ", "unit"}], ",", " ", 
   RowBox[{"Smith", " ", "numbers"}], ",", " ", 
   RowBox[{"Sierpinski", " ", "triangle"}], ",", " ", 
   RowBox[{"stem", " ", "plot"}], ",", " ", 
   RowBox[{"truth", " ", "table"}], ",", " ", 
   RowBox[{"upper", " ", "triangular", " ", "matrix"}], ",", " ", 
   RowBox[{"Vandermonde", " ", "matrix"}]}], " ", "*)"}]], "Input"],

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

Cell[BoxData[
 RowBox[{"(*", " ", 
  RowBox[{":", 
   RowBox[{"Mathematica", " ", 
    RowBox[{"Version", ":", " ", 
     RowBox[{"8.0", ".4"}]}]}]}], " ", "*)"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["BeginPackage", "Subsection"],

Cell[BoxData[
 RowBox[{"Remove", "[", 
  RowBox[{
  "PerfectSearch", ",", "TruthTable", ",", "CompositeQ", ",", 
   "UpperTriangularMatrix"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"BeginPackage", "[", "\"\<PwM`Chap05Functional`\>\"", "]"}], 
  ";"}]], "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[{"CompositeQ", "::", "usage"}], "=", "\"\<CompositeQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns True if \!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\(\*
StyleBox[\" \", \"TI\"]\\\ \)]\)is a composite number.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"CompositeQ", "::", "badarg"}], "=", 
   "\"\<Argument `1` in CompositeQ[`1`] is not an integer greater than \
1.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ExpandFactors", "::", "usage"}], "=", "\"\<ExpandFactors[\!\(\*
StyleBox[\"lis\", \"TI\"]\)] expands a list of factors, \!\(\*
StyleBox[\"lis\", \"TI\"]\), of an integer as given by FactorInteger and \
returns the explicit number.\>\""}], ";"}]], "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[{"NearTo", "::", "usage"}], "=", "\"\<NearTo[\!\(\*
StyleBox[\"lis\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"elem\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns those elements in \!\(\*
StyleBox[\"lis\", \"TI\"]\) that are \!\(\*
StyleBox[\"n\", \"TI\"]\) positions from \!\(\*
StyleBox[\"elem\", \"TI\"]\)\!\(\*
StyleBox[\".\", \"TI\"]\)\\nNearTo[\!\(\*
StyleBox[\"lis\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"elem\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"{\", \"TI\"]\)\!\(\*
StyleBox[\"n\", \"TI\"]\)\!\(\*
StyleBox[\"}\", \"TI\"]\)] returns those elements in \!\(\*
StyleBox[\"lis\", \"TI\"]\) that are less than or equal to \!\(\*
StyleBox[\"n\", \"TI\"]\) positions away from \!\(\*
StyleBox[\"elem\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PerfectSearch", "::", "usage"}], "=", "\"\<PerfectSearch[\!\(\*
StyleBox[\"n\", \"TI\"]\),\!\(\*
StyleBox[\"m\", \"TI\"]\)] returns a list of all those perfect numbers \
(numbers that are equal to the sum of their proper divisors) between \!\(\*
StyleBox[\"n\", \"TI\"]\) and \!\(\*
StyleBox[\"m\", \"TI\"]\).\\nPerfectSearch[\!\(\*
StyleBox[\"n\", \"TI\"]\),\!\(\*
StyleBox[\"m\", \"TI\"]\),\!\(\*
StyleBox[\"k\", \"TI\"]\)] returns a list of all those perfect numbers \
between \!\(\*
StyleBox[\"n\", \"TI\"]\) and \!\(\*
StyleBox[\"m\", \"TI\"]\), searching by increment \!\(\*
StyleBox[\"k\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"PerfectSearchParallel", "::", "usage"}], "=", 
   "\"\<PerfectSearchParallel[\!\(\*
StyleBox[\"n\", \"TI\"]\),\!\(\*
StyleBox[\"m\", \"TI\"]\)\!\(\*
StyleBox[\",\", \"TI\"]\)\!\(\*
StyleBox[\" \", \"TI\"]\)\!\(\*
StyleBox[\"k\", \"TI\"]\)] searches for \!\(\*
StyleBox[\"k\", \"TI\"]\)-perfect numbers between \!\(\*
StyleBox[\"n\", \"TI\"]\) and \!\(\*
StyleBox[\"m\", \"TI\"]\) performing the search in parallel. If no subkernels \
are available, the search is performed on a single kernel.\>\""}], 
  ";"}]], "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[{"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[{"RandomColor", "::", "usage"}], "=", 
   "\"\<RandomColor[] returns an RGBColor expression with random values for \
the red, green, and blue components.\\nRandomColor[\!\(\*
StyleBox[\"n\", \"TI\"]\)] return a list of \!\(\*
StyleBox[\"n\", \"TI\"]\) random colors.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"RegularGraph", "::", "usage"}], "=", "\"\<RegularGraph[\!\(\*
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[{"SmithNumberQ", "::", "usage"}], "=", "\"\<SmithNumberQ[\!\(\*
StyleBox[\"n\", \"TI\"]\)] returns if \!\(\*
StyleBox[\"n\", \"TI\"]\) is a Smith number \[Dash] a composite number the \
sum of whose digits is equal to the sum of the digits of its prime factors.\>\
\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"StemPlot", "::", "usage"}], "=", "\"\<StemPlot[\!\(\*
StyleBox[\"data\", \"TI\"]\)] returns a stem plot of the discrete data, \
\!\(\*
StyleBox[\"data\", \"TI\"]\).\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"StemPlot", "::", "badarg"}], "=", 
   "\"\<The first argument to StemPlot must be a list of numbers.\>\""}], 
  ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"ToGraph", "::", "usage"}], "=", "\"\<ToGraph[\!\(\*
StyleBox[\"lis\", \"TI\"]\)] converts the list of pairs, \!\(\*
StyleBox[\"lis\", \"TI\"]\), to a directed graph.\>\""}], ";"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"TruthTable", "::", "usage"}], "=", "\"\<TruthTable[\!\(\*
StyleBox[\"expr\", \"TI\"]\), \!\(\*
StyleBox[\"vars\", \"TI\"]\)] returns a table of truth values for the logical \
expression \!\(\*
StyleBox[\"expr\", \"TI\"]\) in the variables \!\(\*
StyleBox[\"vars\", \"TI\"]\).\>\""}], ";"}]], "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"]
}, Closed]],

Cell[CellGroupData[{

Cell["Options", "Subsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"Options", "[", "StemPlot", "]"}], "=", 
   RowBox[{"Options", "[", "ListPlot", "]"}]}], ";"}]], "Input"],

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

Cell[CellGroupData[{

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

Cell[CellGroupData[{

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

Cell[BoxData["\<\"PWM`Chap05Functional`Private`\"\>"], "Output"]
}, Closed]]
}, 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[{"CompositeQ", "[", 
   RowBox[{"n_Integer", "/;", 
    RowBox[{"n", ">", "1"}]}], "]"}], ":=", 
  RowBox[{"Not", "[", 
   RowBox[{"PrimeQ", "[", "n", "]"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{
   RowBox[{"CompositeQ", "[", "n_", "]"}], "/;", 
   RowBox[{"If", "[", 
    RowBox[{
     RowBox[{"TrueQ", "[", 
      RowBox[{
       RowBox[{
        RowBox[{"Head", "[", "n", "]"}], "\[Equal]", "Integer"}], "&&", 
       RowBox[{"n", ">", "1"}]}], "]"}], ",", "True", ",", 
     RowBox[{
      RowBox[{"Message", "[", 
       RowBox[{
        StyleBox[
         RowBox[{"CompositeQ", "::", "badarg"}], "MessageName"], ",", "n"}], 
       "]"}], ";", "False"}]}], "]"}]}], ":=", 
  RowBox[{"Not", "@", 
   RowBox[{"PrimeQ", "[", "n", "]"}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ExpandFactors", "[", "lis_", "]"}], ":=", 
  RowBox[{"Apply", "[", 
   RowBox[{"Times", ",", 
    RowBox[{"Apply", "[", 
     RowBox[{"Power", ",", "lis", ",", 
      RowBox[{"{", "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[{"Quiet", "[", 
   RowBox[{"Select", "[", 
    RowBox[{
     RowBox[{"Names", "[", "\"\<System`*\>\"", "]"}], ",", 
     RowBox[{
      RowBox[{"MemberQ", "[", 
       RowBox[{
        RowBox[{"Options", "[", 
         RowBox[{"Symbol", "[", "#", "]"}], "]"}], ",", "opt", ",", 
        RowBox[{"{", "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[{"NearTo", "[", 
   RowBox[{"lis_List", ",", "elem_", ",", "n_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"pos", "=", 
      RowBox[{"Position", "[", 
       RowBox[{"lis", ",", "elem"}], "]"}]}], "}"}], ",", 
    RowBox[{"Extract", "[", 
     RowBox[{"lis", ",", 
      RowBox[{"{", 
       RowBox[{
        RowBox[{"pos", "-", "n"}], ",", 
        RowBox[{"pos", "+", "n"}]}], "}"}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"NearTo", "[", 
   RowBox[{"lis_List", ",", "elem_", ",", 
    RowBox[{"{", "n_", "}"}]}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"pos", "=", 
      RowBox[{"Position", "[", 
       RowBox[{"lis", ",", "elem"}], "]"}]}], "}"}], ",", 
    RowBox[{"Extract", "[", 
     RowBox[{"lis", ",", 
      RowBox[{"Range", "[", 
       RowBox[{
        RowBox[{"pos", "-", "n"}], ",", 
        RowBox[{"pos", "+", "n"}]}], "]"}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PerfectSearch", "[", 
   RowBox[{"n_", ",", "m_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", "perfectQ", "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"perfectQ", "[", "j_", "]"}], ":=", 
      RowBox[{
       RowBox[{"DivisorSigma", "[", 
        RowBox[{"1", ",", "j"}], "]"}], "\[Equal]", 
       RowBox[{"2", " ", "j"}]}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Select", "[", 
      RowBox[{
       RowBox[{"Range", "[", 
        RowBox[{"n", ",", "m", ",", "2"}], "]"}], ",", "perfectQ"}], 
      "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PerfectSearch", "[", 
   RowBox[{"n_", ",", "m_", ",", "k_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", "perfectQ", "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"perfectQ", "[", "j_", "]"}], ":=", 
      RowBox[{
       RowBox[{"DivisorSigma", "[", 
        RowBox[{"1", ",", "j"}], "]"}], "\[Equal]", 
       RowBox[{"k", " ", "j"}]}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"Select", "[", 
      RowBox[{
       RowBox[{"Range", "[", 
        RowBox[{"n", ",", "m"}], "]"}], ",", "perfectQ"}], "]"}]}]}], 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"PerfectSearchParallel", "[", 
   RowBox[{"n_", ",", "m_", ",", "k_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", "perfectQ", "}"}], ",", 
    RowBox[{
     RowBox[{
      RowBox[{"perfectQ", "[", "j_", "]"}], ":=", 
      RowBox[{
       RowBox[{"DivisorSigma", "[", 
        RowBox[{"1", ",", "j"}], "]"}], "\[Equal]", 
       RowBox[{"k", " ", "j"}]}]}], ";", "\[IndentingNewLine]", 
     RowBox[{"DistributeDefinitions", "[", "perfectQ", "]"}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"Parallelize", "[", 
      RowBox[{"Select", "[", 
       RowBox[{
        RowBox[{"Range", "[", 
         RowBox[{"n", ",", "m", ",", "2"}], "]"}], ",", "perfectQ"}], "]"}], 
      "]"}]}]}], "]"}]}]], "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[{"RandomColor", "[", "]"}], ":=", 
  RowBox[{"Apply", "[", 
   RowBox[{"RGBColor", ",", 
    RowBox[{"RandomReal", "[", 
     RowBox[{"1", ",", 
      RowBox[{"{", "3", "}"}]}], "]"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RandomColor", "[", 
   RowBox[{"n_Integer", "?", "Positive"}], "]"}], ":=", 
  RowBox[{"Apply", "[", 
   RowBox[{"RGBColor", ",", 
    RowBox[{"RandomReal", "[", 
     RowBox[{"1", ",", 
      RowBox[{"{", 
       RowBox[{"n", ",", "3"}], "}"}]}], "]"}], ",", 
    RowBox[{"{", "1", "}"}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"RegularGraph", "[", 
   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.002"}], ",", 
      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[{"mat_", ",", "col_", ",", 
    RowBox[{"{", "strings___String", "}"}]}], "]"}], ":=", 
  RowBox[{
   RowBox[{"mat", "[", 
    RowBox[{"[", 
     RowBox[{"All", ",", "col"}], "]"}], "]"}], "/.", 
   RowBox[{
    RowBox[{"Apply", "[", 
     RowBox[{"Alternatives", ",", 
      RowBox[{"{", "strings", "}"}]}], "]"}], "\[Rule]", 
    RowBox[{"Mean", "[", 
     RowBox[{"Cases", "[", 
      RowBox[{
       RowBox[{"mat", "[", 
        RowBox[{"[", 
         RowBox[{"All", ",", "col"}], "]"}], "]"}], ",", 
       RowBox[{"_", "?", "NumberQ"}]}], "]"}], "]"}]}]}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ReplaceElement", "[", 
   RowBox[{"mat_", ",", 
    RowBox[{"{", "strings__", "}"}]}], "]"}], ":=", "\[IndentingNewLine]", 
  RowBox[{"Transpose", "[", 
   RowBox[{"Map", "[", 
    RowBox[{
     RowBox[{
      RowBox[{"colMean", "[", 
       RowBox[{"#", ",", 
        RowBox[{"{", "strings", "}"}]}], "]"}], "&"}], ",", 
     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[{"SmithNumberQ", "[", 
   RowBox[{"n_", "/;", 
    RowBox[{"n", "\[LessEqual]", "1"}]}], "]"}], ":=", "False"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SmithNumberQ", "[", 
   RowBox[{"n_", "?", "PrimeQ"}], "]"}], ":=", "False"}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"SmithNumberQ", "[", "n_", "]"}], ":=", 
  RowBox[{"With", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"lis", "=", 
      RowBox[{"FactorInteger", "[", "n", "]"}]}], "}"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"Total", "[", 
      RowBox[{"Flatten", "[", 
       RowBox[{"MapThread", "[", 
        RowBox[{
         RowBox[{
          RowBox[{
           RowBox[{"IntegerDigits", "[", "#1", "]"}], "#2"}], "&"}], ",", 
         RowBox[{"Transpose", "[", "lis", "]"}]}], "]"}], "]"}], "]"}], 
     "\[Equal]", 
     RowBox[{"Total", "[", 
      RowBox[{"IntegerDigits", "[", "n", "]"}], "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"StemPlot", "[", 
   RowBox[{"lis_", ",", 
    RowBox[{"opts", ":", 
     RowBox[{"OptionsPattern", "[", "]"}]}]}], "]"}], ":=", 
  "\[IndentingNewLine]", 
  RowBox[{"If", "[", 
   RowBox[{
    RowBox[{"MatchQ", "[", 
     RowBox[{"lis", ",", 
      RowBox[{"{", 
       RowBox[{"__", "?", "NumericQ"}], "}"}]}], "]"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"ListPlot", "[", 
     RowBox[{"lis", ",", "opts", ",", 
      RowBox[{"Filling", "\[Rule]", "Axis"}]}], "]"}], ",", 
    "\[IndentingNewLine]", 
    RowBox[{"Message", "[", 
     RowBox[{"StemPlot", "::", "badarg"}], "]"}]}], "\[IndentingNewLine]", 
   "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToGraph", "[", 
   RowBox[{"lis", ":", 
    RowBox[{"{", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"_", ",", "_"}], "}"}], ".."}], "}"}]}], "]"}], ":=", 
  RowBox[{"DirectedEdge", "@@@", "lis"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"ToGraph", "[", 
   RowBox[{"lis", ":", 
    RowBox[{"{", 
     RowBox[{"_", ",", "_"}], "}"}]}], "]"}], ":=", 
  RowBox[{"DirectedEdge", "@@", "lis"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"TruthTable", "[", 
   RowBox[{"expr_", ",", "vars_"}], "]"}], ":=", 
  RowBox[{"Module", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"len", "=", 
       RowBox[{"Length", "[", "vars", "]"}]}], ",", "tuples", ",", "rules", 
      ",", "table", ",", "head"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{"tuples", "=", 
      RowBox[{"Tuples", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{"True", ",", "False"}], "}"}], ",", "len"}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"rules", "=", "\[VeryThinSpace]", 
      RowBox[{
       RowBox[{
        RowBox[{"Thread", "[", 
         RowBox[{"vars", "\[Rule]", "#1"}], "]"}], "&"}], "/@", "tuples"}]}], 
     ";", 
     RowBox[{"table", "=", 
      RowBox[{"Transpose", "@", 
       RowBox[{"Join", "[", 
        RowBox[{
         RowBox[{"Transpose", "[", "tuples", "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"expr", "/.", "rules"}], "}"}]}], "]"}]}]}], ";", 
     RowBox[{"head", "=", 
      RowBox[{"Append", "[", 
       RowBox[{"vars", ",", 
        RowBox[{"TraditionalForm", "[", "expr", "]"}]}], "]"}]}], ";", 
     RowBox[{"Grid", "[", 
      RowBox[{
       RowBox[{"Prepend", "[", 
        RowBox[{
         RowBox[{"table", "/.", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"True", "\[Rule]", "\"\<T\>\""}], ",", 
            RowBox[{"False", "\[Rule]", "\"\<F\>\""}]}], "}"}]}], ",", 
         "head"}], "]"}], ",", "\[IndentingNewLine]", 
       RowBox[{"Dividers", "\[Rule]", 
        RowBox[{"{", 
         RowBox[{
          RowBox[{"{", 
           RowBox[{
            RowBox[{"1", "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "Black"}], "}"}]}], ",", 
            RowBox[{
             RowBox[{"-", "1"}], "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "Black"}], "}"}]}], ",", 
            RowBox[{
             RowBox[{"-", "2"}], "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "LightGray"}], "}"}]}]}], "}"}], ",", 
          RowBox[{"{", 
           RowBox[{
            RowBox[{"1", "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "Black"}], "}"}]}], ",", 
            RowBox[{"2", "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "LightGray"}], "}"}]}], ",", 
            RowBox[{
             RowBox[{"-", "1"}], "\[Rule]", 
             RowBox[{"{", 
              RowBox[{"Thin", ",", "Black"}], "}"}]}]}], "}"}]}], "}"}]}], 
       ",", "\[IndentingNewLine]", 
       RowBox[{"BaseStyle", "\[Rule]", 
        RowBox[{"{", 
         RowBox[{"FontFamily", "\[Rule]", "\"\<Times\>\""}], "}"}]}]}], 
      "]"}]}]}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{
  RowBox[{"UpperTriangularMatrix", "[", 
   RowBox[{"n_Integer", "?", "Positive"}], "]"}], ":=", 
  RowBox[{"Table", "[", 
   RowBox[{
    RowBox[{"If", "[", 
     RowBox[{
      RowBox[{"j", "\[GreaterEqual]", "i"}], ",", "1", ",", "0"}], "]"}], ",", 
    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"]
}, 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["Examples", "Section"],

Cell[CellGroupData[{

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

Cell[BoxData["Quit"], "Input"],

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

Cell[BoxData[
 RowBox[{"<<", "PWM`Chap05Functional`"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"AdjacencyStructure[\\!\\(\\*\\nStyleBox[\\\"gr\\\", \
\\\"TI\\\"]\\)] returns the adjacency lists for each vertex in the graph \
\\!\\(\\*\\nStyleBox[\\\"gr\\\", \\\"TI\\\"]\\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"CompositeQ[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)] returns \
True if \!\(\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\)\*\\nStyleBox[\(\!\(\*\\nStyleBox[\\\" \\\", \\\"TI\\\"]\) \)]is \
a composite number.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"ExpandFactors[\\!\\(\\*\\nStyleBox[\\\"lis\\\", \
\\\"TI\\\"]\\)] expands a list of factors, \\!\\(\\*\\nStyleBox[\\\"lis\\\", \
\\\"TI\\\"]\\), of an integer as given by FactorInteger and returns the \
explicit number.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"FunctionsWithAttribute[\!\(\*\\nStyleBox[\\\"attr\\\", \
\\\"TI\\\"]\)] returns a list of all symbols in the System` context that have \
the attribute \!\(\*\\nStyleBox[\\\"attr\\\", \\\"TI\\\"]\).\"\>", 
  "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"FunctionsWithOption[\!\(\*\\nStyleBox[\\\"opt\\\", \\\"TI\\\"]\
\)] returns a list of all symbols in the System` context that have the option \
\!\(\*\\nStyleBox[\\\"opt\\\", \\\"TI\\\"]\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"HammingDistance1[\\!\\(\\*SubscriptBox[\\nStyleBox[\\\"sig\\\",\
 \\\"TI\\\"], \\(1\\)]\\),\\!\\(\\*SubscriptBox[\\nStyleBox[\\\"sig\\\", \
\\\"TI\\\"], \\(2\\)]\\)] computes the Hamming distance of the two binary \
signals \\!\\(\\*SubscriptBox[\\nStyleBox[\\\"sig\\\", \\\"TI\\\"], \
\\(1\\)]\\) and \\!\\(\\*SubscriptBox[\\nStyleBox[\\\"sig\\\", \\\"TI\\\"], \
\\(2\\)]\\) using Count[MapThread[SameQ[\[Ellipsis]]]].\"\>", "MSG"]], "Print",\
 "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"HammingNumber[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)] \
returns the \\*\\nStyleBox[\\(\\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\)th\\)] Hamming number. Hamming numbers are defined as numbers \
that divide powers of 60.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"HammingNumberList[\\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\)] returns the first \\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\
\\) Hamming numbers.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"NearTo[\\!\\(\\*\\nStyleBox[\\\"lis\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"elem\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)] returns those \
elements in \\!\\(\\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\\) that are \
\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) positions from \
\\!\\(\\*\\nStyleBox[\\\"elem\\\", \\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\".\\\
\", \\\"TI\\\"]\\)\\nNearTo[\\!\\(\\*\\nStyleBox[\\\"lis\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"elem\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"{\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\)\\!\\(\\*\\nStyleBox[\\\"}\\\", \\\"TI\\\"]\\)] returns those \
elements in \\!\\(\\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\\) that are less \
than or equal to \\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) positions \
away from \\!\\(\\*\\nStyleBox[\\\"elem\\\", \\\"TI\\\"]\\).\"\>", 
  "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"PerfectSearch[\!\(\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\),\!\(\*\\nStyleBox[\\\"m\\\", \\\"TI\\\"]\)] returns a list of \
all those perfect numbers (numbers that are equal to the sum of their proper \
divisors) between \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) and \
\!\(\*\\nStyleBox[\\\"m\\\", \
\\\"TI\\\"]\).\\nPerfectSearch[\!\(\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\),\!\(\*\\nStyleBox[\\\"m\\\", \\\"TI\\\"]\),\!\(\*\\nStyleBox[\\\
\"k\\\", \\\"TI\\\"]\)] returns a list of all those perfect numbers between \
\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) and \!\(\*\\nStyleBox[\\\"m\\\", \
\\\"TI\\\"]\), searching by increment \!\(\*\\nStyleBox[\\\"k\\\", \
\\\"TI\\\"]\).\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"PerfectSearchParallel[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\
\),\!\(\*\\nStyleBox[\\\"m\\\", \\\"TI\\\"]\)\!\(\*\\nStyleBox[\\\",\\\", \
\\\"TI\\\"]\)\!\(\*\\nStyleBox[\\\" \\\", \
\\\"TI\\\"]\)\!\(\*\\nStyleBox[\\\"k\\\", \\\"TI\\\"]\)] searches for \
\!\(\*\\nStyleBox[\\\"k\\\", \\\"TI\\\"]\)-perfect numbers between \
\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) and \!\(\*\\nStyleBox[\\\"m\\\", \
\\\"TI\\\"]\) performing the search in parallel. If no subkernels are \
available, the search is performed on a single kernel.\"\>", "MSG"]], "Print",\
 "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"PointsetDiameter[\!\(\*\\nStyleBox[\\\"pts\\\", \\\"TI\\\"]\)] \
computes the maximum distance between any pair of points in the list of \
points, \!\(\*\\nStyleBox[\\\"pts\\\", \\\"TI\\\"]\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"PrimeFactorForm[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)] \
formats the prime factorization of the integer \!\(\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\) in a traditional form.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"RandomColor[] returns an RGBColor expression with random \
values for the red, green, and blue \
components.\\nRandomColor[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)] \
return a list of \\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) random \
colors.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"RegularGraph[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)] \
returns a graph with \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) equilateral \
edges and all of whose internal angles are equiangular.\"\>", "MSG"]], "Print",\
 "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"RepUnit[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\)] \
returns a number consisting the digit 1 concatenated \
\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\\) times.\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"ReplaceElement[\\!\\(\\*\\nStyleBox[\\\"mat\\\", \
\\\"TI\\\"]\\), \\!\\(\\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\\)] returns the \
matrix \\!\\(\\*\\nStyleBox[\\\"mat\\\", \\\"TI\\\"]\\) with elements that \
are strings specified by \\!\\(\\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\\) \
replaced with their column mean.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"SierpinskiTriangle[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\
\\)] displays a Sierpinski triangle after \\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\) iterations of the geometric transformations that define it. \
SierpinskiTriangle takes the same options as Graphics.\"\>", "MSG"]], "Print",\
 "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"SmithNumberQ[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)] \
returns if \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) is a Smith number \
\[Dash] a composite number the sum of whose digits is equal to the sum of the \
digits of its prime factors.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"StemPlot[\!\(\*\\nStyleBox[\\\"data\\\", \\\"TI\\\"]\)] \
returns a stem plot of the discrete data, \!\(\*\\nStyleBox[\\\"data\\\", \
\\\"TI\\\"]\).\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"ToGraph[\!\(\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\)] converts \
the list of pairs, \!\(\*\\nStyleBox[\\\"lis\\\", \\\"TI\\\"]\), to a \
directed graph.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"TruthTable[\!\(\*\\nStyleBox[\\\"expr\\\", \\\"TI\\\"]\), \!\(\
\*\\nStyleBox[\\\"vars\\\", \\\"TI\\\"]\)] returns a table of truth values \
for the logical expression \!\(\*\\nStyleBox[\\\"expr\\\", \\\"TI\\\"]\) in \
the variables \!\(\*\\nStyleBox[\\\"vars\\\", \\\"TI\\\"]\).\"\>", 
  "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"UpperTriangularMatrix[\\!\\(\\*\\nStyleBox[\\\"n\\\", \\\"TI\\\
\"]\\)] returns a square matrix of size \\!\\(\\*\\nStyleBox[\\\"n\\\", \
\\\"TI\\\"]\\) with zeros below the diagonal and ones on and above the \
diagonal.\"\>", "MSG"]], "Print", "PrintUsage"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 StyleBox["\<\"VandermondeMatrix[\!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\)\!\
\(\*\\nStyleBox[\\\",\\\", \\\"TI\\\"]\)\!\(\*\\nStyleBox[\\\" \\\", \\\"TI\\\
\"]\)\!\(\*\\nStyleBox[\\\"var\\\", \\\"TI\\\"]\)] returns the Vandermonde \
matrix of order \!\(\*\\nStyleBox[\\\"n\\\", \\\"TI\\\"]\) in the variable \!\
\(\*\\nStyleBox[\\\"var\\\", \\\"TI\\\"]\).\"\>", "MSG"]], "Print", \
"PrintUsage"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

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

Cell[CellGroupData[{

Cell["AdjacencyStructure", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"SeedRandom", "[", "16", "]"}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"gr", "=", 
  RowBox[{"RandomGraph", "[", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{"10", ",", "15"}], "}"}], ",", 
    RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}]}], "]"}]}]}], "Input"],

Cell[BoxData[
 GraphicsBox[
  NamespaceBox["NetworkGraphics",
   DynamicModuleBox[{Typeset`graph = HoldComplete[
     Graph[{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}, {
      Null, {{2, 10}, {2, 3}, {3, 5}, {4, 5}, {4, 1}, {4, 7}, {4, 3}, {5, 
       7}, {5, 8}, {6, 5}, {9, 8}, {9, 6}, {10, 9}, {10, 8}, {10, 4}}}, {
      VertexLabels -> {"Name"}}]], Typeset`boxes, Typeset`boxes$s2d = 
    GraphicsGroupBox[{{
       Directive[
        Hue[0.6, 0.2, 0.8], 
        EdgeForm[
         Directive[
          GrayLevel[0], 
          Opacity[0.7]]]], 
       TagBox[{
         TagBox[
          
          DiskBox[{3.425766382958615, 0.8616061628114692}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$1"], 
         InsetBox[
          FormBox["1", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$1", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$1"], 
       TagBox[{
         TagBox[
          
          DiskBox[{1.5246734576259806`, 2.443383919127916}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$2"], 
         InsetBox[
          FormBox["2", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$2", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$2"], 
       TagBox[{
         TagBox[
          
          DiskBox[{1.9480154311828861`, 1.6093324781658502`}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$3"], 
         InsetBox[
          FormBox["3", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$3", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$3"], 
       TagBox[{
         TagBox[
          
          DiskBox[{2.231722910700096, 0.9192802922018217}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$4"], 
         InsetBox[
          FormBox["4", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$4", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$4"], 
       TagBox[{
         TagBox[
          
          DiskBox[{1.4170516751875386`, 0.5706183816828192}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$5"], 
         InsetBox[
          FormBox["5", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$5", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$5"], 
       TagBox[{
         TagBox[
          
          DiskBox[{0.31069129891061786`, 0.15649560399398854`}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$6"], 
         InsetBox[
          FormBox["6", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$6", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$6"], 
       TagBox[{
         TagBox[
          DiskBox[{2.204511816857064, 0.}, 0.033216905142992845`], 
          "DynamicName", BoxID -> "VertexID$7"], 
         InsetBox[
          FormBox["7", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$7", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$7"], 
       TagBox[{
         TagBox[
          
          DiskBox[{0.5913323090972973, 1.0086777003886587`}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$8"], 
         InsetBox[
          FormBox["8", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$8", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$8"], 
       TagBox[{
         TagBox[
          DiskBox[{0., 1.043245588955872}, 0.033216905142992845`], 
          "DynamicName", BoxID -> "VertexID$9"], 
         InsetBox[
          FormBox["9", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$9", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$9"], 
       TagBox[{
         TagBox[
          
          DiskBox[{1.0560939911918834`, 1.5623737545357783`}, 
           0.033216905142992845`], "DynamicName", BoxID -> "VertexID$10"], 
         InsetBox[
          FormBox["10", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$10", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$10"]}, {
       Directive[
        Opacity[0.7], 
        Hue[0.6, 0.7, 0.5]], 
       LineBox[{{
          DynamicLocation["VertexID$1", Automatic, Center], 
          DynamicLocation["VertexID$4", Automatic, Center]}, {
          DynamicLocation["VertexID$2", Automatic, Center], 
          DynamicLocation["VertexID$10", Automatic, Center]}, {
          DynamicLocation["VertexID$2", Automatic, Center], 
          DynamicLocation["VertexID$3", Automatic, Center]}, {
          DynamicLocation["VertexID$3", Automatic, Center], 
          DynamicLocation["VertexID$5", Automatic, Center]}, {
          DynamicLocation["VertexID$3", Automatic, Center], 
          DynamicLocation["VertexID$4", Automatic, Center]}, {
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$5", Automatic, Center]}, {
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$7", Automatic, Center]}, {
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$10", Automatic, Center]}, {
          DynamicLocation["VertexID$5", Automatic, Center], 
          DynamicLocation["VertexID$7", Automatic, Center]}, {
          DynamicLocation["VertexID$5", Automatic, Center], 
          DynamicLocation["VertexID$8", Automatic, Center]}, {
          DynamicLocation["VertexID$5", Automatic, Center], 
          DynamicLocation["VertexID$6", Automatic, Center]}, {
          DynamicLocation["VertexID$6", Automatic, Center], 
          DynamicLocation["VertexID$9", Automatic, Center]}, {
          DynamicLocation["VertexID$8", Automatic, Center], 
          DynamicLocation["VertexID$9", Automatic, Center]}, {
          DynamicLocation["VertexID$8", Automatic, Center], 
          DynamicLocation["VertexID$10", Automatic, Center]}, {
          DynamicLocation["VertexID$9", Automatic, Center], 
          DynamicLocation["VertexID$10", Automatic, Center]}}]}}], 
    Typeset`data}, 
    TagBox[
     DynamicBox[GraphComputation`NetworkGraphicsBox[
      2, Typeset`graph, Typeset`boxes], {
      CachedValue :> Typeset`boxes, SingleEvaluation -> True, 
       SynchronousUpdating -> False, TrackedSymbols :> {}},
      ImageSizeCache->{{7.98, 449.02626186136763`}, {-173.38546186136728`, 
       152.40597101605192`}}],
     MouseAppearanceTag["NetworkGraphics"]],
    AllowKernelInitialization->False,
    UnsavedVariables:>{Typeset`data}]],
  DefaultBaseStyle->{
   "NetworkGraphics", FrontEnd`GraphicsHighlightColor -> Hue[0.8, 1., 0.6]},
  FrameTicks->None]], "Output"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"1", ",", 
     RowBox[{"{", "4", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"2", ",", 
     RowBox[{"{", 
      RowBox[{"3", ",", "10"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"3", ",", 
     RowBox[{"{", 
      RowBox[{"2", ",", "4", ",", "5"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"4", ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "3", ",", "5", ",", "7", ",", "10"}], "}"}]}], "}"}], 
   ",", 
   RowBox[{"{", 
    RowBox[{"5", ",", 
     RowBox[{"{", 
      RowBox[{"3", ",", "4", ",", "6", ",", "7", ",", "8"}], "}"}]}], "}"}], 
   ",", 
   RowBox[{"{", 
    RowBox[{"6", ",", 
     RowBox[{"{", 
      RowBox[{"5", ",", "9"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"7", ",", 
     RowBox[{"{", 
      RowBox[{"4", ",", "5"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"8", ",", 
     RowBox[{"{", 
      RowBox[{"5", ",", "9", ",", "10"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"9", ",", 
     RowBox[{"{", 
      RowBox[{"6", ",", "8", ",", "10"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"10", ",", 
     RowBox[{"{", 
      RowBox[{"2", ",", "4", ",", "8", ",", "9"}], "}"}]}], "}"}]}], 
  "}"}]], "Output"]
}, Closed]],

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

Cell[CellGroupData[{

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"],

Cell[BoxData[
 GraphicsBox[
  NamespaceBox["NetworkGraphics",
   DynamicModuleBox[{Typeset`graph = HoldComplete[
     Graph[{1, 2, 3, 
      4}, {{{1, 2}, {2, 1}, {3, 1}, {3, 2}, {4, 1}, {4, 2}, {4, 4}}, Null}, {
      VertexLabels -> {"Name"}}]], Typeset`boxes, Typeset`boxes$s2d = 
    GraphicsGroupBox[{{
       Directive[
        Hue[0.6, 0.2, 0.8], 
        EdgeForm[
         Directive[
          GrayLevel[0], 
          Opacity[0.7]]]], 
       TagBox[{
         TagBox[
          
          DiskBox[{0.9533983897463674, 0.8877204662905944}, 
           0.021850666999072288`], "DynamicName", BoxID -> "VertexID$1"], 
         InsetBox[
          FormBox["1", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$1", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$1"], 
       TagBox[{
         TagBox[
          DiskBox[{0.953711093251963, 0.}, 0.021850666999072288`], 
          "DynamicName", BoxID -> "VertexID$2"], 
         InsetBox[
          FormBox["2", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$2", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$2"], 
       TagBox[{
         TagBox[
          DiskBox[{0., 0.4441516790275224}, 0.021850666999072288`], 
          "DynamicName", BoxID -> "VertexID$3"], 
         InsetBox[
          FormBox["3", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$3", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$3"], 
       TagBox[{
         TagBox[
          
          DiskBox[{1.9067921163937833`, 0.4442973209701048}, 
           0.021850666999072288`], "DynamicName", BoxID -> "VertexID$4"], 
         InsetBox[
          FormBox["4", TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$4", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$4"]}, {
       Directive[
        Opacity[0.7], 
        Hue[0.6, 0.7, 0.5]], 
       Arrowheads[{{0.03441734055646053, 0.7}}], {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$1", Automatic, Center], {
          0.9862459649982531, 0.7939761701268301}, {0.9939805709161343, 
          0.7700755428983579}, {1.0005571414170036`, 0.745830691257929}, {
          1.0059604660898254`, 0.7212976891363096}, {1.0101780480277054`, 
          0.6965332769039029}, {1.0132001327309634`, 0.671594730140596}, {
          1.0150197306675148`, 0.6465397271677642}, {1.0156326334383878`, 
          0.6214262156488076}, {1.015757714840626, 0.26633802913257004`}, {
          1.0151625049132225`, 0.24122409205051082`}, {1.0133605588998125`, 
          0.21616781337262123`}, {1.0103560443736814`, 0.1912271437127749}, {
          1.0061559102302904`, 0.1664597663022207}, {1.0007698706157462`, 
          0.14192296357876327`}, {0.9942103824597478, 0.11767348470290644`}, {
          0.9864926166649746, 0.0937674143073701}, 
          DynamicLocation["VertexID$2", Automatic, Center]}]}, {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$2", Automatic, Center], {
          0.9208635180000773, 0.0937442961637645}, {0.9131289120821962, 
          0.11764492339223666`}, {0.9065523415813269, 0.1418897750326655}, {
          0.9011490169085051, 0.16642277715428502`}, {0.8969314349706251, 
          0.19118718938669174`}, {0.8939093502673671, 0.2161257361499986}, {
          0.8920897523308157, 0.24118073912283036`}, {0.8914768495599427, 
          0.26629425064178697`}, {0.8913517681577047, 0.6213824371580244}, {
          0.8919469780851083, 0.6464963742400837}, {0.8937489240985182, 
          0.6715526529179733}, {0.8967534386246493, 0.6964933225778196}, {
          0.9009535727680402, 0.7212606999883737}, {0.9063396123825844, 
          0.7457975027118313}, {0.9128991005385829, 0.7700469815876881}, {
          0.9206168663333563, 0.7939530519832244}, 
          DynamicLocation["VertexID$1", Automatic, Center]}]}, {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$3", Automatic, Center], 
          DynamicLocation["VertexID$1", Automatic, Center]}]}, {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$3", Automatic, Center], 
          DynamicLocation["VertexID$2", Automatic, Center]}]}, {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$1", Automatic, Center]}]}, {
        Arrowheads[0.03441734055646053], 
        ArrowBox[{
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$2", Automatic, Center]}]}, {{
         Arrowheads[0.03441734055646053], 
         ArrowBox[{
           DynamicLocation["VertexID$4", Automatic, Center], {
           1.9068520740455712`, 0.44822393479790273`}, {1.9179467703856041`, 
           0.5181488994664138}, {1.9482008174013454`, 0.5821589425060758}, {
           1.995187496130727, 0.6351197298185011}, {2.055137940075397, 
           0.6727832033918062}, {2.123243441196089, 0.6921283239101557}, {
           2.19404116303642, 0.6916033924963401}, {2.261852322391889, 
           0.6712505146252078}, {2.3212376923662696`, 0.6327022227852832}, {
           2.367433890285129, 0.5790505287895513}, {2.396735455209412, 
           0.5145989092307064}, {2.406792068083192, 0.44451711767058005`}, {
           2.396797074076379, 0.3744265115555389}, {2.367552185484505, 
           0.30994915535959255`}, {2.3214031752764734`, 0.2562568670158364}, {
           2.2620517193997776`, 0.21765637924577458`}, {2.194258480232161, 
           0.1972438905701521}, {2.123461247266794, 0.19665671494258186`}, {
           2.0553387644948398`, 0.21594195053240123`}, {1.9953552304944204`, 
           0.2535527019153577}, {1.9483220075039474`, 0.30647215869543565`}, {
           1.9180116954013406`, 0.37045557803992424`}, {1.9068555262491185`, 
           0.44037076137385417`}, 
           DynamicLocation["VertexID$4", Automatic, Center]}]}}}}], 
    Typeset`data}, 
    TagBox[
     DynamicBox[GraphComputation`NetworkGraphicsBox[
      2, Typeset`graph, Typeset`boxes], {
      CachedValue :> Typeset`boxes, SingleEvaluation -> True, 
       SynchronousUpdating -> False, TrackedSymbols :> {}},
      ImageSizeCache->{{5.740693309010094, 
       443.2393066909899}, {-103.68974523154195`, 82.17056878448467}}],
     MouseAppearanceTag["NetworkGraphics"]],
    AllowKernelInitialization->False,
    UnsavedVariables:>{Typeset`data}]],
  DefaultBaseStyle->{
   "NetworkGraphics", FrontEnd`GraphicsHighlightColor -> Hue[0.8, 1., 0.6]},
  FrameTicks->None]], "Output"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"1", ",", 
     RowBox[{"{", "2", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"2", ",", 
     RowBox[{"{", "1", "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"3", ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "2"}], "}"}]}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"4", ",", 
     RowBox[{"{", 
      RowBox[{"1", ",", "2", ",", "4"}], "}"}]}], "}"}]}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["CompositeQ", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"lis", "=", 
  RowBox[{"FactorInteger", "[", 
   RowBox[{"10", "!"}], "]"}]}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"2", ",", "8"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"3", ",", "4"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"5", ",", "2"}], "}"}], ",", 
   RowBox[{"{", 
    RowBox[{"7", ",", "1"}], "}"}]}], "}"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"CompositeQ", "[", 
  SuperscriptBox["2", "31"], "]"}]], "Input"],

Cell[BoxData["True"], "Output"]
}, Closed]],

Cell["Test bad arguments:", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"CompositeQ", "[", 
  RowBox[{"{", 
   RowBox[{"a", ",", "b"}], "}"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{
  StyleBox[
   RowBox[{"CompositeQ", "::", "badarg"}], "MessageName"], ":", 
  " ", "\<\"Argument \[NoBreak]\\!\\({a, b}\\)\[NoBreak] in CompositeQ[\
\[NoBreak]\\!\\({a, b}\\)\[NoBreak]] is not an integer greater than \
1.\"\>"}]], "Message", "MSG"],

Cell[BoxData[
 RowBox[{"CompositeQ", "[", 
  RowBox[{"{", 
   RowBox[{"a", ",", "b"}], "}"}], "]"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["ExpandFactors", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ExpandFactors", "[", "lis", "]"}]], "Input"],

Cell[BoxData["3628800"], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["FunctionsWithAttribute", "Subsubsection"],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"Catalan\"\>", ",", "\<\"Degree\"\>", ",", "\<\"E\"\>", 
   ",", "\<\"EulerGamma\"\>", ",", "\<\"Glaisher\"\>", 
   ",", "\<\"GoldenRatio\"\>", ",", "\<\"Khinchin\"\>", 
   ",", "\<\"MachinePrecision\"\>", ",", "\<\"Pi\"\>"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["FunctionsWithOption", "Subsubsection"],

Cell[CellGroupData[{

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

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"\<\"BodePlot\"\>", ",", "\<\"ContourPlot\"\>", 
   ",", "\<\"ContourPlot3D\"\>", ",", "\<\"DensityPlot\"\>", 
   ",", "\<\"DiscretePlot\"\>", ",", "\<\"DiscretePlot3D\"\>", 
   ",", "\<\"FindArgMax\"\>", ",", "\<\"FindArgMin\"\>", 
   ",", "\<\"FindFit\"\>", ",", "\<\"FindMaximum\"\>", 
   ",", "\<\"FindMaxValue\"\>", ",", "\<\"FindMinimum\"\>", 
   ",", "\<\"FindMinValue\"\>", ",", "\<\"FindRoot\"\>", 
   ",", "\<\"LineIntegralConvolutionPlot\"\>", 
   ",", "\<\"ListLineIntegralConvolutionPlot\"\>", 
   ",", "\<\"ListStreamDensityPlot\"\>", ",", "\<\"ListStreamPlot\"\>", 
   ",", "\<\"ListVectorDensityPlot\"\>", ",", "\<\"ListVectorPlot\"\>", 
   ",", "\<\"ListVectorPlot3D\"\>", ",", "\<\"LogLinearPlot\"\>", 
   ",", "\<\"LogLogPlot\"\>", ",", "\<\"LogPlot\"\>", ",", "\<\"NArgMax\"\>", 
   ",", "\<\"NArgMin\"\>", ",", "\<\"NDSolve\"\>", ",", "\<\"NicholsPlot\"\>",
    ",", "\<\"NIntegrate\"\>", ",", "\<\"NMaximize\"\>", 
   ",", "\<\"NMaxValue\"\>", ",", "\<\"NMinimize\"\>", 
   ",", "\<\"NMinValue\"\>", ",", "\<\"NonlinearModelFit\"\>", 
   ",", "\<\"NProduct\"\>", ",", "\<\"NSum\"\>", ",", "\<\"NyquistPlot\"\>", 
   ",", "\<\"ParametricPlot\"\>", ",", "\<\"ParametricPlot3D\"\>", 
   ",", "\<\"Plot\"\>", ",", "\<\"Plot3D\"\>", ",", "\<\"PolarPlot\"\>", 
   ",", "\<\"RegionPlot\"\>", ",", "\<\"RegionPlot3D\"\>", 
   ",", "\<\"RevolutionPlot3D\"\>", ",", "\<\"RootLocusPlot\"\>", 
   ",", "\<\"SingularValuePlot\"\>", ",", "\<\"SphericalPlot3D\"\>", 
   ",", "\<\"StreamDensityPlot\"\>", ",", "\<\"StreamPlot\"\>", 
   ",", "\<\"VectorDensityPlot\"\>", ",", "\<\"VectorPlot\"\>", 
   ",", "\<\"VectorPlot3D\"\>"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell[TextData[{
 "HammingDistance",
 StyleBox["n",
  FontSlant->"Italic"]
}], "Subsubsection"],

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"],

Cell[CellGroupData[{

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"],

Cell[BoxData[
 TagBox[GridBox[{
    {"\<\"Function\"\>", "\<\"{Timing, result}\"\>"},
    {"HammingDistance1", 
     RowBox[{"{", 
      RowBox[{"0.47087599999999696`", ",", "499482"}], "}"}]},
    {"HammingDistance2", 
     RowBox[{"{", 
      RowBox[{"0.005252000000002255`", ",", "499482"}], "}"}]},
    {"HammingDistance3", 
     RowBox[{"{", 
      RowBox[{"1.061043000000005`", ",", "499482"}], "}"}]},
    {"HammingDistance4", 
     RowBox[{"{", 
      RowBox[{"0.29619900000000143`", ",", "499482"}], "}"}]},
    {"HammingDistance5", 
     RowBox[{"{", 
      RowBox[{"1.1912210000000023`", ",", "499482"}], "}"}]}
   },
   AutoDelete->False,
   GridBoxFrame->{"Columns" -> {{True}}, "Rows" -> {{True}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
   GridBoxItemStyle->{"Columns" -> {{
        Directive["SR"]}}, "Rows" -> {{
        Directive["SR"]}}}],
  "Grid"]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["HammingNumber", "Subsubsection"],

Cell[CellGroupData[{

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

Cell[BoxData["2125764000"], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["HammingNumberList", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"HammingNumberList", "[", 
  SuperscriptBox["10", "2"], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6", ",", "8", ",", "9", 
   ",", "10", ",", "12", ",", "15", ",", "16", ",", "18", ",", "20", ",", 
   "24", ",", "25", ",", "27", ",", "30", ",", "32", ",", "36", ",", "40", 
   ",", "45", ",", "48", ",", "50", ",", "54", ",", "60", ",", "64", ",", 
   "72", ",", "75", ",", "80", ",", "81", ",", "90", ",", "96", ",", "100", 
   ",", "108", ",", "120", ",", "125", ",", "128", ",", "135", ",", "144", 
   ",", "150", ",", "160", ",", "162", ",", "180", ",", "192", ",", "200", 
   ",", "216", ",", "225", ",", "240", ",", "243", ",", "250", ",", "256", 
   ",", "270", ",", "288", ",", "300", ",", "320", ",", "324", ",", "360", 
   ",", "375", ",", "384", ",", "400", ",", "405", ",", "432", ",", "450", 
   ",", "480", ",", "486", ",", "500", ",", "512", ",", "540", ",", "576", 
   ",", "600", ",", "625", ",", "640", ",", "648", ",", "675", ",", "720", 
   ",", "729", ",", "750", ",", "768", ",", "800", ",", "810", ",", "864", 
   ",", "900", ",", "960", ",", "972", ",", "1000", ",", "1024", ",", "1080", 
   ",", "1125", ",", "1152", ",", "1200", ",", "1215", ",", "1250", ",", 
   "1280", ",", "1296", ",", "1350", ",", "1440", ",", "1458", ",", "1500", 
   ",", "1536"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["NearTo", "Subsubsection"],

Cell[BoxData[
 RowBox[{
  RowBox[{"chars", "=", 
   RowBox[{"CharacterRange", "[", 
    RowBox[{"\"\<a\>\"", ",", "\"\<z\>\""}], "]"}]}], ";"}]], "Input"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"NearTo", "[", 
  RowBox[{"chars", ",", "\"\<q\>\"", ",", "3"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"{", "\<\"n\"\>", "}"}], ",", 
   RowBox[{"{", "\<\"t\"\>", "}"}]}], "}"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"NearTo", "[", 
  RowBox[{"chars", ",", "\"\<q\>\"", ",", 
   RowBox[{"{", "3", "}"}]}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"{", 
   RowBox[{"\<\"n\"\>", ",", "\<\"o\"\>", ",", "\<\"p\"\>", ",", "\<\"q\"\>", 
    ",", "\<\"r\"\>", ",", "\<\"s\"\>", ",", "\<\"t\"\>"}], "}"}], 
  "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["PerfectSearch", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"PerfectSearch", "[", 
  RowBox[{"2", ",", 
   SuperscriptBox["10", "5"]}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"6", ",", "28", ",", "496", ",", "8128"}], "}"}]], "Output"]
}, Closed]],

Cell["Find 4-perfect numbers:", "Text"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"PerfectSearch", "[", 
  RowBox[{"2", ",", 
   SuperscriptBox["10", "6"], ",", "4"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"30240", ",", "32760"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["PerfectSearchParallel", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"PerfectSearchParallel", "[", 
  RowBox[{"2", ",", "2200000", ",", "4"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{"30240", ",", "32760", ",", "2178540"}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["PointsetDiameter", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"points3D", "=", 
   RowBox[{"RandomReal", "[", 
    RowBox[{"1", ",", 
     RowBox[{"{", 
      RowBox[{"5", ",", "3"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", 
 RowBox[{"PointsetDiameter", "[", "points3D", "]"}]}], "Input"],

Cell[BoxData["1.1660873156918987`"], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["PrimeFactorForm", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"PrimeFactorForm", "[", 
  RowBox[{"50", "!"}], "]"}]], "Input"],

Cell[BoxData[
 InterpretationBox[
  RowBox[{
   TemplateBox[{"2","47"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"3","22"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"5","12"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"7","8"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"11","4"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"13","3"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"17","2"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"19","2"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"23","2"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"29","1"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"31","1"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"37","1"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"41","1"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"43","1"},
    "Superscript"], "\[CenterDot]", 
   TemplateBox[{"47","1"},
    "Superscript"]}],
  Apply[Times, 
   Apply[Power, {{2, 47}, {3, 22}, {5, 12}, {7, 8}, {11, 4}, {13, 3}, {17, 
    2}, {19, 2}, {23, 2}, {29, 1}, {31, 1}, {37, 1}, {41, 1}, {43, 1}, {47, 
    1}}, {1}]]]], "Output"]
}, Closed]],

Cell[BoxData[
 RowBox[{"PrimeFactorForm", "[", "9", "]"}]], "Input"]
}, Closed]],

Cell[CellGroupData[{

Cell["RandomColor", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"RandomColor", "[", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"RGBColor", "[", 
  RowBox[{
  "0.8487243044915873`", ",", "0.0178026881356117`", ",", 
   "0.9075273758442803`"}], "]"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"RandomColor", "[", "3", "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"RGBColor", "[", 
    RowBox[{
    "0.1568036629545675`", ",", "0.7427745508212316`", ",", 
     "0.3235023365525753`"}], "]"}], ",", 
   RowBox[{"RGBColor", "[", 
    RowBox[{
    "0.4892274275850934`", ",", "0.2721008692988933`", ",", 
     "0.485310049356662`"}], "]"}], ",", 
   RowBox[{"RGBColor", "[", 
    RowBox[{
    "0.4403607216868848`", ",", "0.6510282438088069`", ",", 
     "0.9151233148767994`"}], "]"}]}], "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["RegularGraph", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"RegularGraph", "[", 
  RowBox[{"5", ",", 
   RowBox[{"VertexSize", "\[Rule]", "Small"}], ",", 
   RowBox[{"VertexStyle", "\[Rule]", "Red"}], ",", 
   RowBox[{"VertexLabels", "\[Rule]", "\"\<Name\>\""}], ",", 
   RowBox[{"VertexLabelStyle", "\[Rule]", 
    RowBox[{"Directive", "[", 
     RowBox[{"\"\<Menu\>\"", ",", "8"}], "]"}]}]}], "]"}]], "Input"],

Cell[BoxData[
 GraphicsBox[
  NamespaceBox["NetworkGraphics",
   DynamicModuleBox[{Typeset`graph = HoldComplete[
     Graph[{1, 2, 3, 4, 5}, {
      Null, {{1, 2}, {2, 3}, {3, 4}, {4, 5}, {5, 1}}}, {EdgeStyle -> {
         Thickness[Large]}, VertexLabels -> {"Name"}, VertexLabelStyle -> {
         Directive["Menu", 8]}, VertexSize -> {Small}, VertexStyle -> {
         RGBColor[1, 0, 0]}}]], Typeset`boxes, Typeset`boxes$s2d = 
    GraphicsGroupBox[{{
       Directive[
        Hue[0.6, 0.2, 0.8], 
        EdgeForm[
         Directive[
          GrayLevel[0], 
          Opacity[0.7]]]], 
       TagBox[{
         TagBox[
          StyleBox[
           
           DiskBox[{1.5388417685876266`, 0.8090169943749475}, 
            0.04999999999999999], 
           RGBColor[1, 0, 0], StripOnInput -> False], "DynamicName", BoxID -> 
          "VertexID$1"], 
         InsetBox[
          FormBox[
           StyleBox["1", 
            Directive["Menu", 8], StripOnInput -> False], TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$1", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$1"], 
       TagBox[{
         TagBox[
          StyleBox[
           
           DiskBox[{0.9510565162951536, 1.618033988749895}, 
            0.04999999999999999], 
           RGBColor[1, 0, 0], StripOnInput -> False], "DynamicName", BoxID -> 
          "VertexID$2"], 
         InsetBox[
          FormBox[
           StyleBox["2", 
            Directive["Menu", 8], StripOnInput -> False], TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$2", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$2"], 
       TagBox[{
         TagBox[
          StyleBox[
           
           DiskBox[{1.1102230246251565`*^-16, 1.3090169943749475`}, 
            0.04999999999999999], 
           RGBColor[1, 0, 0], StripOnInput -> False], "DynamicName", BoxID -> 
          "VertexID$3"], 
         InsetBox[
          FormBox[
           StyleBox["3", 
            Directive["Menu", 8], StripOnInput -> False], TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$3", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$3"], 
       TagBox[{
         TagBox[
          StyleBox[
           DiskBox[{0., 0.30901699437494756`}, 0.04999999999999999], 
           RGBColor[1, 0, 0], StripOnInput -> False], "DynamicName", BoxID -> 
          "VertexID$4"], 
         InsetBox[
          FormBox[
           StyleBox["4", 
            Directive["Menu", 8], StripOnInput -> False], TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$4", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$4"], 
       TagBox[{
         TagBox[
          StyleBox[
           DiskBox[{0.9510565162951534, 0.}, 0.04999999999999999], 
           RGBColor[1, 0, 0], StripOnInput -> False], "DynamicName", BoxID -> 
          "VertexID$5"], 
         InsetBox[
          FormBox[
           StyleBox["5", 
            Directive["Menu", 8], StripOnInput -> False], TraditionalForm], 
          Offset[{2, 2}, 
           DynamicLocation["VertexID$5", Automatic, {Right, Top}]], 
          ImageScaled[{0, 0}], BaseStyle -> "Graphics"]}, "DynamicName", 
        BoxID -> "VertexLabelID$5"]}, {
       Directive[
        Opacity[0.7], 
        Hue[0.6, 0.7, 0.5]], 
       StyleBox[
        LineBox[{
          DynamicLocation["VertexID$1", Automatic, Center], 
          DynamicLocation["VertexID$2", Automatic, Center]}], 
        Thickness[Large], StripOnInput -> False], 
       StyleBox[
        LineBox[{
          DynamicLocation["VertexID$1", Automatic, Center], 
          DynamicLocation["VertexID$5", Automatic, Center]}], 
        Thickness[Large], StripOnInput -> False], 
       StyleBox[
        LineBox[{
          DynamicLocation["VertexID$2", Automatic, Center], 
          DynamicLocation["VertexID$3", Automatic, Center]}], 
        Thickness[Large], StripOnInput -> False], 
       StyleBox[
        LineBox[{
          DynamicLocation["VertexID$3", Automatic, Center], 
          DynamicLocation["VertexID$4", Automatic, Center]}], 
        Thickness[Large], StripOnInput -> False], 
       StyleBox[
        LineBox[{
          DynamicLocation["VertexID$4", Automatic, Center], 
          DynamicLocation["VertexID$5", Automatic, Center]}], 
        Thickness[Large], StripOnInput -> False]}}], Typeset`data}, 
    TagBox[
     DynamicBox[GraphComputation`NetworkGraphicsBox[
      2, Typeset`graph, Typeset`boxes], {
      CachedValue :> Typeset`boxes, SingleEvaluation -> True, 
       SynchronousUpdating -> False, TrackedSymbols :> {}},
      ImageSizeCache->{{7.979999999999999, 
       446.37534099582473`}, {-241.73454099582415`, 223.4895433436372}}],
     MouseAppearanceTag["NetworkGraphics"]],
    AllowKernelInitialization->False,
    UnsavedVariables:>{Typeset`data}]],
  DefaultBaseStyle->{
   "NetworkGraphics", FrontEnd`GraphicsHighlightColor -> Hue[0.8, 1., 0.6]},
  FrameTicks->None]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["ReplaceElement", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"mat3", "=", 
   RowBox[{"{", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{
      "0.796495", ",", "\"\<N/A\>\"", ",", "0.070125", ",", "\"\<nan\>\"", 
       ",", "0.806554"}], "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"\"\<nn\>\"", ",", 
       RowBox[{"-", "0.100365"}], ",", "0.992736", ",", 
       RowBox[{"-", "0.320560"}], ",", 
       RowBox[{"-", "0.0805351"}]}], "}"}], ",", "\[IndentingNewLine]", 
     RowBox[{"{", 
      RowBox[{"0.473571", ",", "0.460741", ",", "0.030060", ",", 
       RowBox[{"-", "0.412400"}], ",", "0.788522"}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{"0.614974", ",", 
       RowBox[{"-", "0.503201"}], ",", "0.615744", ",", "0.966053", ",", 
       RowBox[{"-", "0.011776"}]}], "}"}], ",", 
     RowBox[{"{", 
      RowBox[{
       RowBox[{"-", "0.828415"}], ",", "0.035514", ",", "0.8911617", ",", 
       "\"\<N/A\>\"", ",", 
       RowBox[{"-", "0.453926"}]}], "}"}]}], "}"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"MatrixForm", "[", "mat3", "]"}]}], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"0.796495`", "\<\"N/A\"\>", "0.070125`", "\<\"nan\"\>", "0.806554`"},
     {"\<\"nn\"\>", 
      RowBox[{"-", "0.100365`"}], "0.992736`", 
      RowBox[{"-", "0.32056`"}], 
      RowBox[{"-", "0.0805351`"}]},
     {"0.473571`", "0.460741`", "0.03006`", 
      RowBox[{"-", "0.4124`"}], "0.788522`"},
     {"0.614974`", 
      RowBox[{"-", "0.503201`"}], "0.615744`", "0.966053`", 
      RowBox[{"-", "0.011776`"}]},
     {
      RowBox[{"-", "0.828415`"}], "0.035514`", "0.8911617`", "\<\"N/A\"\>", 
      RowBox[{"-", "0.453926`"}]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output"]
}, Closed]],

Cell[CellGroupData[{

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

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"0.796495`", 
      RowBox[{"-", "0.026827749999999997`"}], "0.070125`", 
      "0.07769766666666666`", "0.806554`"},
     {"0.26415625`", 
      RowBox[{"-", "0.100365`"}], "0.992736`", 
      RowBox[{"-", "0.32056`"}], 
      RowBox[{"-", "0.0805351`"}]},
     {"0.473571`", "0.460741`", "0.03006`", 
      RowBox[{"-", "0.4124`"}], "0.788522`"},
     {"0.614974`", 
      RowBox[{"-", "0.503201`"}], "0.615744`", "0.966053`", 
      RowBox[{"-", "0.011776`"}]},
     {
      RowBox[{"-", "0.828415`"}], "0.035514`", "0.8911617`", 
      "0.07769766666666666`", 
      RowBox[{"-", "0.453926`"}]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["RepUnit", "Subsubsection"],

Cell[CellGroupData[{

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

Cell[BoxData["1111111111111"], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["SierpinskiTriangle", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"SierpinskiTriangle", "[", 
  RowBox[{"8", ",", "\[IndentingNewLine]", 
   RowBox[{"ImageSize", "\[Rule]", "Small"}], ",", 
   RowBox[{"Frame", "\[Rule]", "True"}], ",", 
   RowBox[{"FrameTicks", "\[Rule]", "False"}], ",", 
   RowBox[{"Background", "\[Rule]", "LightYellow"}]}], "]"}]], "Input"],

Cell[BoxData[
 GraphicsBox[
  {RGBColor[0, 0, 1], 
   {RGBColor[0, 0, 1], GeometricTransformationBox[GeometricTransformationBox[
      {RGBColor[0, 0, 1], 
       GeometricTransformationBox[GeometricTransformationBox[
         {RGBColor[0, 0, 1], 
          GeometricTransformationBox[GeometricTransformationBox[
            {RGBColor[0, 0, 1], 
             GeometricTransformationBox[GeometricTransformationBox[
               {RGBColor[0, 0, 1], 
                GeometricTransformationBox[GeometricTransformationBox[
                  {RGBColor[0, 0, 1], 
                   GeometricTransformationBox[GeometricTransformationBox[
                    {RGBColor[0, 0, 1], 
                    GeometricTransformationBox[GeometricTransformationBox[
                    {RGBColor[0, 0, 1], 
                    GeometricTransformationBox[
                    GeometricTransformationBox[
                    PolygonBox[{{0., 0.}, {1., 0.}, {0.5, 1.}}], {{{0.5, 
                    0.}, {0., 0.5}}, {0., 0.}}], {{{0., 0.}}, {{0.5, 0.}}, {{
                    0.25, 0.5}}}]}, {{{0.5, 0.}, {0., 0.5}}, {0., 0.}}], {{{
                    0., 0.}}, {{0.5, 0.}}, {{0.25, 0.5}}}]}, {{{0.5, 0.}, {0.,
                     0.5}}, {0., 0.}}], {{{0., 0.}}, {{0.5, 0.}}, {{0.25, 
                    0.5}}}]}, {{{0.5, 0.}, {0., 0.5}}, {0., 0.}}], {{{0., 
                 0.}}, {{0.5, 0.}}, {{0.25, 0.5}}}]}, {{{0.5, 0.}, {0., 
                0.5}}, {0., 0.}}], {{{0., 0.}}, {{0.5, 0.}}, {{0.25, 
              0.5}}}]}, {{{0.5, 0.}, {0., 0.5}}, {0., 0.}}], {{{0., 0.}}, {{
           0.5, 0.}}, {{0.25, 0.5}}}]}, {{{0.5, 0.}, {0., 0.5}}, {0., 
          0.}}], {{{0., 0.}}, {{0.5, 0.}}, {{0.25, 0.5}}}]}, {{{0.5, 0.}, {0.,
        0.5}}, {0., 0.}}], {{{0., 0.}}, {{0.5, 0.}}, {{0.25, 0.5}}}]}},
  Background->RGBColor[1, 1, 0.85],
  Frame->True,
  FrameTicks->False,
  ImageSize->Small]], "Output",
 ImageCache->GraphicsData["CompressedBitmap", "\<\
eJy93Xe75UtVJ/BN9+17G7jcSxQFJIgJBTM6Zh0DKoOYwxgYZFAY9Zl5HN+B
AZVsAEUUFCUJSJKogihJAUG4YOd0+pzTreBFJRh/U5+q+tau07R37+eZZ+aP
c/beVatWrVpVtWrVqlWrHvLwn3zUI3/84T/56Ec8/N4P+omH/69HPfoR//ve
X/8/f6IkHb7VarU65+/eq2vK96V8nf6dW5bl2Gp11o9bte+rw374Xn+f9P9W
/+/yD9X/91+e85zd5ZnP3F1+7df2lqc+dX/5jd/YW37nd3aX3/qt3eVpT2tp
v/7re8tv//bu8qxn7S5Pf3pLkwfmd393t5aRBscznrFX057xjIbzV391b/nN
32xp6lFOmjLwwQv/U5+6Vz/hTD3gwCun/G/+5u6hkri/+vgrqtmXWlA2sJAu
DZqD1axJ18xG+l4lVTXSejV7pRqUS7olDqnmSg5J24JDrZoHXJVBoRwK6KVt
waBaNY7MHJLWSN/MoeDcwKHV1Vm0/381iNR9VRbdfysWZQylmnB9Gxate/cg
i6R97CC6ZRaVOXV4q+n3vuWNbzy33HTT6Yrqn//5WKnm4vJnf3Z2ed/7TlfU
N998rH6++91nlre85Wwh4eLyL/9yrMK/611nlre+9Wyp7uLygQ8cq+SdPXtq
+cM/PLc8+9kXl4985Hht2qlTJ0va+eVFL9pZLl9uaX/zNyeWl770wvLCF+4s
f/d3J2ra7q60neWVr7ywnDvX0v7xH48vz3uetPMl/2Rt3vvff3x5/vMvLn/6
p+eW97630f5P/4TOi8uf/MnZ5dix05VdH/zgscLKi8s733lm+fM/b7RrI3hp
f/EXjXZtRPvp06eWP/7jc7XMRz96rNZ1/Pip5XWvO7+84AU7hebjNe3SpZPL
y152oaZ98IOtPTs7J5aXv/zC8gd/cGG5cKHR/vd/f3z5vd/bKWnnl/39Rvvf
/q00dJ5f/vqvT9c0danzda87t5w82WhHEx6+4x1nl7e//WylOXz3W7p8cOCV
U36mHX71qE+90tCBHnShD53oRTf6tUOadmmfdmqvstovDT/wZaYd3/APH9GE
r/iLzxlb+K8fpCmjf9Cuv/Sb/tOP4I0//auf9be69L9xYDwYF+g0TowX48b4
kWY8GWvGl3EmzbiTZhwaj9KMTzw0Xo1btBvHaDeuje/wHe3Gv3kwzwt0mi/m
TcaW+VTm1WrTHKz5q5uWX/7l/cpn6c973sU6jX3f2Tm1/MzPXFr29upiWkWO
vvT9JS+5UMo1uA984MTysz97eTlx4nT9TRzgr++vec355QlPuLT8278dWz78
4ePLz//8pTp25D3zmU2E+P7mN59bHvvYS5X///qvx5bHP/7S8vrXVzWh9gvx
5/tNN51ZHvOYS3Xs+P2Lv7hfx47vz33uxSqefD9/Hu2X69gJ7S94QaPp93//
wvIrv9Lg3v/+ExXO2PGbqNMnvr/61eeXJz/50vLv/35s+dCHGu3vfOeadv3l
+5/9WaMd//XV4x53qY4deWCIWd//6q8a7cYOnE9+8v7yilc02vW5un03FtBk
7Pj9lKfs1bHju0+/fZevf8CHdnh8hxd+9ahPveqXh57Q/oY3nKv0ohv92qE9
oV07fddu7ceH0I4/8vArtOMj2vHVb3zGb9/xXz/4rl/A6Se/9Zv+850c0K++
62e063e/22rb4IyPxz9+v44X4wbtxpE84yq0G29oN/6Mwyc8Yb+OS3nGqfHq
u/FrHBvPfhvfxrnvxn1oNx/Qbn74bb6YN76bR2U+ra7Zau4dqbzWV6961YVa
V5FNfW28bZV1ZAuZQf5oo/Laiw/koHKl7l7mSJVl+K1v/BWZPPLgAv+qV52v
vC6yuOddU/n12teeL3L0fNM6WhGs0L2KQFe6ZqAzxKGTjvQimj6G9D/6o4qu
Di2kG2ZIV42yRbwOfJbSF784pF/QvSMPi6SH9MuX16RjDRapq3xPkb/92xMV
tJFYV8aB7k/+5Nxokirf857Tg3Qrk7zOiUpySPdbuqYVuIGvlB+kq6/gH3mk
U9LNzkLXAdKR3Xs4RUrrBun+SusHOoM+HFJl4dog3WIV0nE5pOM+0lWF9NI7
A58FxUIFn7zSqyPPRJxJL6NhkB5WGDRl8KSI9X0mvaAc6OgHIf33f3/HWB2k
mz/gjWmkG+NIN+bTwVeSbh1/yUt2wiJzaeO8u6bPPnP5r/7qtGb0uXhNXd/J
MTLx9a8/n2Qqam9lEbUnk2z1hYE0LlIlfCFkCI6//MszGhlog5sMefGLd8jh
JL/sZTvL2952tiIpou5wp44y/a53Vc1yUHfx4smqvBfKaFVJJkAyy86fH9TR
a2CAuMjrUEd8o+4d76isC/R73nOmSmerSxkQSabUvP3tZ2qJsogECfkPr9aX
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
qVuxOHdY94j8qP/toK9d95gO9WY7LMElbkzyLlw4OYRZv9Q40OVeD3RlDEbj
NxxNEZ8vf/k4JxVjJh4n/lzoSx7lIpf64mSUfsxOIRfyOPilnAt5kexwiy0T
6jg+TqTM1CHYxCoNCKZ21XJvYCvtHrUYIakhRr/52BW6fsaaIokjlgY7p9rU
g/eaNBbmXLutUJ2r7hS6kpdk49uRZL93k92FPrard/UhoAkFYxdR9rVztC3W
VkPjox8dGAz8D33o2AGPcJU47HYo8cU9jRlJGpvxvAdSlgdYqnGWpgpVTXGf
bLDjLFh1mYYBJPoZ2Wb/cRRobml2kjujEtghGDqfKl333pLvmNmDU4625GL0
Mu3dWBosznOoIuLbAkzznMM15XZn0nhF9I3EwKdvBad00j+fZaLFRAivTQRp
83mk8wrKgDsWc4ik7okx0tDRg3WOemnQaHbcMoeJcljUgsG0tFw6n8smACa7
1Cb+3rsLODOOBxxtgrmTkPPZTYU5wbM3kZVsF3vbb54cF3PQSfSajA3b+RGb
zG8jkG9EUDKgJp9e21CfzzXBL+1gBk2LaNdAgOZ7WVdTs0VCDbxK53b0i6b1
entqdnyVxmjIGr5GaAxYDJRzuzUEuwrb7rMVh6+r/s+5WMj3lWpoxokdmSNC
wt7SxVHKfLL0aTTbVSLdHKqbySNVcilPhXSW9epXXzgQfAcerTb5mAcIyn4d
ITzNLYi3vvVMBQGqiKIjoMyRev6mBjW5cenooVIxx7hBYruM3PQsOOEpTcqp
5dxyn7m5Wjiz2sTF+7Sms4o3AypdzKpTVuWcE+Zio4WH13YPd5LjyAzKxMXt
UR/qYJxDyEjDQM4gpkVp1Zf3bA1UqSwg3YU4NRh8Yp0lAmyLCdcGXWqgpUhD
IEL7NcTER6BkqKEfztUWf9I2vOlLYZQ2h3okdM4Kjaw5RAne//3fjyNIBkRG
VVms30IjrI8Zj40WLUu7x1lGTnjSwjqvMQMtRYIZR2Fs2lKNVj4wM7R1V+D6
h8BCaIpaKXPcql1Un028yKEwGUuudtNrjgHZbw2/blPLQaR4B1YNA5atSIet
Tw5bKGl5pTFf2ZO1yz5UVgEJJoMMBtBktSgDc+wQFSOgEJLkZmq+VEkus+i+
W7WwHeoRRXNgCb2cEMRlUuYMz76DCyojbUANX7qRxaN0YZqlNyXJKiDBYJqS
uM6ogiGX9VVYKp4DcaBLyN5NbblvL2Or0MM/Hzjo7E6EIw137epN2RwoEjg9
xPbqq3qa333bMMqanE96UvXUH2Xhj+V4jiOBnkHfRvpvrBE625Wi5hqSq9pN
Kd0bd6IoolFUzRl+R4nakPDIYNfXswi8o5Wn0lI+fgzdm+KrJ3neIl4eBFO0
OvbBdmTcZop4sp5c31vC28uFqGb+b8Xb3ardkZYbz+3SWNsUFA600/5b4FY7
p79dHV8Gj620jYDD89xgsiZbb/QC4WuY0lVzfZ+uin63UazZli3bAzQlUL9B
2aOz1MW76EFf04tTIyUlBAzQvCEAhTQooVaFqkqVua6u1c1hua0yKEVxv0dV
W6JFWqaFrj1+ypZcMQ5JBoYCGpyFOdec5/vpQpiTLK7a5k66RSXh7tXLZJVt
PstWzOM0SNt3GuTX9LItosHe8BUGG68SOGiSsUCow+lP6rWIoSXh5HP71Xe0
a4O2aJO2MQFs4kdzHrhtpaE90XAm12QrTC7f0qds68vIHNeRyQd9Y58tb76W
TuNwF1a6lZIzwdf1PP1FYYETjNAl87V0vlJwwk1+3NhpNCvkCcfab75WGnOf
Fu2cnbmefupW7b6mCmozSxuLmpm9FAmMNOKvdEfu3fZo5tUoedNNY++GUBar
7iP+dZN0d11b1nThvHuzJFB2cOt1CFRbqg90e0+ixeUoxG5qV5xLkNSdyaYT
vpPd321nXHNNpL85bK/rtdKMnwdN60N/4mLARSbqo+CzUBOIwsTP4TfR4gGc
T9uSfv2fq7bzLrK7WI36zKNuijtwLbn71K++vqclfuAMp1yfhwMf/NkdzqFv
0TPouwX6m5vGdXU+JWpku0KzO0ID55KuuZp7T8aJMmgUX6AMjm/sYMYJsHaD
pyk0sWIXFPHTbKan3JpqNfvOsPbpW1JNivB2JF1JkTxs4fZibpsS4u985+na
y0y6Bmf3sl59Y4eJw7dZCgYsAwcrTPDkNqM61KVO4WCsj5vojfcCFlg4pLMT
kDK5F2pk40EexCC1y4L04J5tbYoNEwjQUiT3MMkoGGWrgcn0fltS1Z652R3e
/ywhuYuJw5Y8GkG8Mx/c86JQNAWi3RFMuVwiyhUApr9N9Nyvj1894UDY3je3
KfPMEZNu0R0f0pOpuZL6SzO54YciGJxDfcaWtVrUjXwXPeI9gav6mdnwIT2N
Fm1bpu8Cl5DpopBtqu8zehljgWLBE/JwfSbgcH5Xu05LO1qN3Y7E8weGA5WT
+QIB7FRheAM7Xf+6vXv10N4Zxo3hnPwCW3in3OGKBrpUybF2xuXvY8k63H9X
ZXj1mVs1+R51bdBTFCXKNeXgpS9tsa3auwEXEky4CiOrmhMWEqS9ObI3XM1I
FDjk6SawzuGk8Vwsg/OhvVrj1PEbtEAa2p367I00qOKalmeCoFU1WKQkJC70
SEWyNE1gGNEkTStN3MSN5kdz5+HwTKw6MSCo9JxNftT8pat3PYxstb+oioqS
PVpX3w71IOpmHi3GqVxZBb+11na3uiAqKatNzp1h64Chb+kqZnDEqhrzwtvS
zQIEBQpRCg7leZOptOj+WzW+PWvBkia9S+6uU92YZ1tqnjsFOeLJrdToevos
zwI57Ci69gi40yV8/fUt9f+dhpTvtFTdXDnf4cn1Ofj7hdj6W/159qk//TH0
v6wG8rTH0zabeHD/LrywzBpK6hR2BqXtgtNeNrNcismZBXGc68ZFlZ7fmaBZ
o6asAt/eky0IkvpTeYFOPA6ICsLUm0sz6iWcbD9Tr95GJmyl6AO2amG7od6f
Api0nXZ1xeWHUGSX0W7Znp+f5iB7ML93ZpqVfpRVJWBLtuxBAFENsN7qM7g5
mpZ6Bw39iYW6Ym1qywOGvN6Py+fQFGn0/T7IwO1c5UofNJMoFofv6Gl+91P0
A+cvCVqTOnIxROTKwPW4cWv6NtJ/tLa3efldHG7O7bWReuycMPntRLEKvNL7
zXHPRCHk+vned079IIlMLCANuoVlhWG+22MjErfD+EIjRFoh7LM2tKE5tl3X
H/Zo4pFCZFiSxHOEbYLLLgllYIlZbbc7+O4OQxhKk2fDD1aZ+Y4QvpsO6lCX
OuEzlj97K3pbPGpTmWmTrZLeMFmEc3ob+ynVNDcdQmr8/eQtk10ad2e7NNSq
UJUFq1S9icrP7hNfK4XD6adu5Nm4CmItpHXIpybQer6351l2qQ/ywHD8S7n4
msAp332Gz9mKnmvq/pOwaVF+duYrJJZxKxVzLC6FFFySJi93CtbRkNsRBwWt
oN5Exef0iZDwxcZWrH8kvInwutedX31fT3P2Ic29nNma2N8Mbc57W9RnRczc
n69hIFtTU5+mSpuvTSjXw49v5HLz87uhH8yvn3Ml2vPEa/xPs3hktSjz4Ad6
8biyJz4j0Pij5gXZvADb4jnU9M/bkjqqIrsp7TvqhZAplgTfE6tEq814U6Rw
JNRlZskCAlQRRaGAKrqXKlRVqtxEXfNgvL4ukYkHQBvM/TTrAaev7OEwqMyS
h/ViJkzebgQCNEYhKPLuJNS/8it7n78VNUcSr20IVqERs6gTsvIS/tNIetg0
aXr8yn65Za3XMPpEWPe4c6tN9MQD0srEOYGNOoszTwMd4oi0SN+H9+TEiZBV
QLLmGVAw2Fx8wZa1sniQtfOjR7l0qdUPn+ZPv6Q5WVZOVqHJ12NTfV/QSW+R
ZY7V06GiOh2q150P1wsIWep/qK9+fksH3oo0pdf3guaBW9V4tGpT9humFb0x
DpPd2+ARHSzOBmaikyOgipCPBcWm2h7YFxUDMq9UcFnjKldGyiNlH+r3pKXn
hYoC/4Vbomb4zLVPfOgeyI/s2c0Dea1XAy1FNmH/wt4xkUhm2uted+5HejJT
Qd6NLiBftCU2qlbeaS5SJdgImDxNW0A2YfuiPtAYTBmZ/HpUT/Nb+oDbiOf6
eirB8KpRc0hxbtQWJJ9xbCjfD9Xztnby5Ry8FFkdqqvYDRVUmrVtLq6oqQl9
qlkHtD7fih+dUQ4wn84Dy2ddH1e3GzXA3sDmGta1+t2J7hSuqW5t8P+6jv78
+JtasWqtveE/ZMxUR6VF+tSMVHslSsdgIbsx66qMqeisjqWP/tOG7qz5qx+t
sscpQd+RjXtkdFR57bGZFvAbnPVflaSz4S7NmoQrZgt1R5pzZgPYqmCzziPE
qQsLscWGYi8tXiUJzGFFkZYIhU6tWgSs/Yo3Vy41mbSXRsS89rXNF4ROIY10
auxoG1Fp4JXr1xgH7fCrR3305tCeuC3oa1G9z9ZVDf1pj7x2YX6nhyVv9eMD
fuCLOvqpT+UbGhyqg8NX/MVnawh8uZuXLTdeuAj9xVv2qX2DNpMQiXSWa94J
qC3EC60afidFuSWdUzJt91vAa5YKqkpedHG2mkeXnTRSsNxVyvskXZccwSx9
12Z6rfXO6Zy8xHdOqDHSN6dqVKXmGHNxGIsmt5Wan5Os7AZDO7xxZVGfehNm
OufCvieQPbrR77v2LEvTTkK7dsOBD/ihPP7MtOMfPqIJX/G3R/eucPgPn/5o
QVlbBO5NffrFfWmdbiSO15l8dxez0BJ/4MRSX/pBZ2Jad9fKgPVXO2pWXj5Z
unfOiD3djvfj6ILoRNbur6JEY+vPhdQsPOLfd+gqdNur5OFqn+X31cBIsBjH
+qMqV6MbMYmZfQt095dIPpbuo8NfVVaeZFm6FW56c1dXJ7p2fzhrGPvmi6Kb
RO4X9wXc1KZMtSOnvfXRaHPasYmcfIwZqJ74xOY0RGufHwl2M8ozcIRyEW7B
ZMyROZKngNwJSQ3LFWG06XNUoWxgU4GuQGoPgRdMJoMkWQVkdgmHob3Kdvlj
gm6ruL8RN4fKlkQcFrKTTFJL0rjSyPm5bJdjVKCiOUQ3i6O0vuObSZWE1ML4
L9nQR1/S+1VnvOAF1d1jbCTsl2hM/cJIdgykCAnhoarZm7bH3hnFmzRrUqVI
hxS30Np1lX3iKM5uwFF0dhbWkLyRlrKJ1m2zPzvjEnZOYdbHz+31Z45qIae9
4tTIKaQFZQt5c+7A07AarYV8uGfPaoy4Iq42Yza+MXl+6Za8Njujmc4Xha80
ecYJdY5vzQiU+NZJM2i7m+LEvd04ngx8RtOVcbAt8f2s80Bv5ID9yjjdsws1
/D367khDx5VvZ6IX3TM+d0147Zl8s6k1DxHNXdGl2WrTWI43beIC5T5E7uV2
p4cYSslT2bSgFsu1WWmkldkbsLhB5B52XMMUKbI1rreEJmktOZXFR6ustcGW
90CSTXI3TFUdDLZgWnt77Y77nYWgYCNkkOvPFFTE2NeM0ryAxcuiX0Gp2aaB
sHYl/cu24ut11YHG1l9NN9/crl56XIOTTky5UauERzMO9F97tXh3PLpoOY/6
wSNVn5MIbpOsTcLHEuuuthJDPvjB9npX8GiONHlgEkewlB14rKtwq0Nd6lS3
NS14pKERrXlqI3bf4DEftFWbtR0P8MLLyZv492VdmhPyUY/MMSaXeOCyW/RH
GOqtNhaEogbPz/XZuPbYvLEopjRqYu0SFkz0gv394Y/tJE2SrKXbykqRlG7D
oa3rKlDR9JQjbRw5yMqrFYXco1Or4i2hdU996v7qy7fkSH+tqa4JZDhTR/DG
hZbC2596Ga/19bOMmo5z3hJMuZzVJt+ISTnp0uT1U9gpEtOZOjJb/pl6wpJy
OCQ9yrqRMT/9mJhT/dmxje3/8klDUaZHGo0Z3Va3B7zkzZHkON3KLtTH/RfR
hi195sKF4WHNuUYSiVxAAq3ZcUgrCAPNMSXhJwv+JCdGKSILsV+xVbuagb27
6x0wsCcMdozpyAYnCl7gbDhIQ86m8xNw5FrJG3AOk5R1sBi4+e5Z4GxSwDku
3kT/V0y6R96/ng8kEgZ7fp4vB5ChIW6oM1wcame45tF6/ABcnhWY0/KM7aBv
I/031PFImsRtrDnh7/eL2C3Ny8R07LUOOZ4lM50DNr/zHFezXAfPQ889zn6K
Z31TA7U817+bA1s7u8gLzHkMpsy2FKdS5H2Y1JBXQFMrahK2uj1Rdu4rN/Cm
5q9uVykRpNEZto2cOU1+xp017gyUPTuXN77x3HB6NgPjlK9P9SFZYda85S3t
Nqr8xEXt+muKz+GmgQC1B1MUCqi6N/q4ElCqjNNzM5qdz02B4UaHci3QEi3S
Mi3kkvVVW3Hl+oo793Ft2TE/d4ZJ22wVrXmF6Xm1qkfzr1kEDj+fxCzWPwkw
jDFlAqSYuZCbuy1098GIzFAtfQNdqkgxvd29LStBedAMoRyRYsWmyZUGbWr7
V3Uhp3YmlHYh/kDIYmyFzadFZvZvpgooIm+O8CtuUsokwm/K8UtPOhihnua4
xdIol+1u6vFRzuIUnP7mML+YhA5NKE356i1bjZF6Hdqbbz4Q5vfSpepzOSIC
s+ERt33gBbSZkqpT7HCSRbw0q/Uc3EhRKAqqgJrnQOdwua4/995D4Ka2fPVE
yZXhcrPDIPdTpTNIUme+HGq22GVxxQwcq4e0knfgsik56eJr4KxzV+7QchA2
6NtI/9ERmt5BHE3Wp92Vz1Jn3uTRy2LFBOz4caePLY7U/OzZHTpaaWD9MZ0E
NUW24LpTZ7pWyWo1ngnGBIzfpiH/uf6/rlp0bcjJ6Ra9rsXsd7Mwvs3xviWi
jAEiC6wZXCRkwAjLuBIyQANVhGtgQRHfZtppE7UNi5qBsR9/zVZUX1tFUI/T
XWVIf1Yr7sJEjWxsax6DOyhKNuJacOyTFcT3UmR+hCahThOavFS4ibav6X0+
eddVWy3H0KCOH3YvU/dzly+fSDb/FEnJ7g508WOmbMT625eT1dduRdU69Gh/
PGB+n4Wu0sInjGT7YUmyprdfEmSkhwLdVPfX9gkG/PWvP1sX5tlnmX6gL6aH
YZoT+sUeInv4LLejphpxut082aJWalmMHfFFNt74fs5pfkuf05SLWreplV83
RNpewmCWOe7NnjtVdUIaXcHC77cW5+UATW1pO7Ur2tSpMXornHJgm/cm+10T
V6IFrOm9a/0tXdnUs6734sAHf/PSbXWov90lu9Dh2i3rdb1py+ERwpPh7Ou3
4snd6zkPtcEic/Zsi7/Oe4JF0tZTGvHO2GRXhAZ+ZNI4UVsh0ed7C759stJH
YhF+BCEcvE7zXEfwygMDVpkZL5xwJ9Q2A4K60YAWcB1vpRXNLbhH86/TJmcj
m/jQbqzcZoQzXPrZiInN0SGhNA+Ey6z71HHMaRPPtpLncQdYu8ydeV0WtIQ0
a1Fh9mOFm5HGMQlCiKcYm3MYTeQgC3nIpMbl6Y4eRvNBW7X8SFV/3/GO03WE
4vI6jOYdq6CVTsdi8plDZapSOhnNizFxMPka86zY2TlRyxZ59okdHdEmyR+Q
uCUrCgVUUPa3J2ueKlXNA0W58SJqi5hpzEh++9vrK0urTa1+UO+CZjhqwcw/
9KEDETNdMDSsyo55fiShmXTqyF67Il+sSJQoa2veTrDMNiQ7MxLDHAKIpicV
ZiRTxEy2dcTJKsR+w1btaoZwsmF+CSB+su3qQ0M/h96Z9E/Hjl08jfAkEX8t
8v4y9M8Un55rMJuBu0o9m69R5O2vTa34hl7G0MaAZVI+mRiv9Eym4LnFNKe1
+3DNWHDPqaz0GU65fhh5wIP5yoiZ6EjEzO3oPzreXsjCnYiZtulldMSInE6Y
o2HG+7As8PfpYNb6K30bExaooAg2wy6vYUVDskwa6oWgb9xAe7tNdm2l+T3v
OVU9H/TlhQs12kQsu0ax4MlGMQFF2FooxcS8T4cRW7PFLrtYYcByYncWFRMo
Ctu1h+qQWqssVX/TllSSiawWy7KOm1l2dMGeCOCuRS3dilrkYoLWE5ExGwPp
Z5YpbWuYuJlAVFQq3ETbN/WxpLnkOKlRWBCLJxtjImwngnYiwkerSqRuLkAx
GOJi3kwtqB+8JRU2o4o1KTlsmDjDgvTe99bnv3IzlzlQEitQAQm0/SUEEJWd
2aa6H9znzORJMYxueVDLxi5B1C2E0ngfz0a8xM3crr4WHYUG4KjfyumzSnXu
z4frAb1p3N4Z8v9wDWIdEj91qlp6g/D/1qNsR3mgCn4BVOb/soHMmr+6oe5r
rXOOpGOSM2Of/vSLNRBTu8a6W6+vUkAEWCqzOsHITXBJsoAADVi7idPeqoNa
FdJKlQ/ZirpmC9PPVK9s2XrAwjpLjVsuSM3/same9+tlEwddXoIxSpsjHMIJ
tzpwbRNdD+lyjfCNy0d7IHQdJrA0P24U5FYiILe7odf36Avr3RxuJdQdNDGY
tUtLe9+8FUUt1N3kFV5Pf7Nux9TUTVIJO52rblah+pZvw5R1NI4bXHg3UfHN
vcFswhrD8rJ+G6lGoal9VSZXajfPJMkqIFna2F9gEErgoVvWajlPgLD+dFEZ
bw8Y37KUxo+XIrIJ90N7GVzoTxAWfno4tV3CSiThXGaKz0ILt97g8raezc+3
bFVfO32Nc6FRy+zNoc7ITgxo9SSvXUxsmy+nlJvq+ZbGlWc+s7tWDE+3S5dO
5LpIHN662aBCf+s2eMvouYrb1YjEfBX/pdUmvN/aaWLjsxAQLEUlTWxlyrEk
WQXk27bC1hxg3Vhw+hR39zzm7CWKTXi+rZchB7oVewRj9jvK2XZ4bl8tjERk
C16zO1wCCYr4NcTFsXkC7A6Hhur5xVXmTlWkNbVit8fH3xtvjCUKZXOVaNXk
7a0WYr/dVunbjFWdOWUFjI+C6lK1MuASBl097d0ARuLDg3S73W/fwIJ2B/GB
w2MxLz7+B64DCW05rsrajauPi4A2kqGJX9FdCeqhbbu00hZTn37ngBhcj21R
y7c4E+0gE371qC9hO2/B3aDS3ydQu5m4RdtZjdhKHRSaIHS/rAPhpe+Obx/7
2P1C24l6YEgAxO2fFM9dXB4ALirkzq/ZkZCyPilbvssHF48B5fuepOKFXz3q
IzjVL6/391j+0Itu9GsHB+9Nbf+OPoObF3N7u30snUeGVxqrAq8MMzV59H1m
a+lk/zp8zG1r1yoDXX8dqFaZJ3+kU6+FO5lD1TQ85ypee4LkYZd8Zchdl0YP
XZ3079yyxUQktJTrN73pQMQZ+rjDtQ984EQqoRzrB+NyiiHD0G/DRXN5zWvG
zp3PtSRZBWSOT/OGNzTX7oIwuDlROIjjKTBFnOHczbDVHdw3tes72yJRhEoW
WuOf3ChjaNoXt4iQdvzzLV62BmdgUQCaI1aVYQdc0NqN0nMjzfhUR6kri36h
4Lu2oXXVXiLUba3BLY00szVsv9r/RO6e4dh2+NXPaX7HvjpHoelevQMf/N1n
fcChAz2Dvlug/7u6CkBlTyz1Fsy8SfH1A3htmpjp0vupehm6RfteHR7L8Jq2
ozUtjzuL3Ba9nfQouOb3+doT1U29DwmFpHbHdgvyCQ3jMY+JJ3IyT53Zx2wy
9tfFirbDsJydvzyeH/LmU4DZpyueQglpo05aGR1tE73f3VnJcBJDI63IwI5f
FWNl9/qodfXn6bNxN57Jx4S9BlqKrCNB7ozjGTXwFvueLanKE/b5m/2c4ofT
NYSql2bXT8vJsh4/mtmvasZJ+99Ez/f0YYTzlkG6ahyRcJqu13s6m/h0hKwC
kg05CQuDy83fu2WteUi+TK2xsWeptZgx+mUTz+RoSAuIFTjTkXeMvd+m+r63
l7EnYo0RCKs+yLNqT4LqPZ/vfveZQ04IV4f7jYjdKQbi0e5c0nQNh9LOEnGh
ozjky6GKtpWX54b8f92KvOYUZA3n5NIOUvfrmwQ9OmtNMx6zStg4vPKVF+K8
4uBCEgHDHg5Ukby2J60d616oVaiqVLmJuppfNuXZnhqe7YynxlEbXhi5sNuu
HLaVIY4x7cWC8VpshTWxlYUjZywZ+rZd37cVXUfGa8hLt92tg9E3m37upTBG
F24Ojw2clSYPzPzgVwSOvP4w8EZ6vq/Pj9wPZ1ctI2COZEIW5Sq5x3pDCvGd
4Cd5ZDcLvUEUE21B/f1bUXG4Oj22Y539yc17r1rlrDRxkNBzPA7EnAkcHwFl
vaO6qb7v72XazbePjQjilsMcY85IkDZH8FAuETy2q+/oeJOVICSXYyLqW8H4
KJCXVwPpz5n+wIbafqAvRASH+zjGU3/OtAopLYufg5ZJy4OhYJUhAX5wq3qu
rbuaHm6mX8cXfGQn/gLtTbX2YEnGUymyCfsP9mGmFeIx03agEXE3vgb0f2ny
wKD6YVvhvWY8mqnFL37x8B5gnZPU37HchO1hfTRkg4y38QdYv3iyu/pvW+Kx
S8yli5zz9xcR13C3gKfWs7r7eHO3XVbaH7Ew1qcwe+Mu9fyqa45fcv26RRLc
62/aNf1MmtlGtjKbPXxLmlx5Zhw1ow0G9TC/nTrVlmvx3shXT3blnqOF1adV
Rrp8cG2n3M7o+0sbFS+56tXATTS1WAKfUNvMMCPdhiiyPs8GRosi6BLFymci
qMrv7/yNdST+g6Zxwd+CCGyk5ch46c+EyVlltpnt3ftmlehnXrV8js+ky29P
jTZ8OYmUDq9bVJto+aEhTfdqRJj5FYi819dvWie5ub2cy1N78zsYMPCYesSW
tdrvkyR8G9cxONfO1/MuSavFhg0cOzfRIk7hpvoeMc1akf9EDDwkEueqRQL0
FqlbWkd6E40yafIKVAVaHXSO28TYxHYwKGyB26Xei/WMzUSi44yDzLYL55Km
ivpWFXNXe+ir+8xubOR/7/K3PVnYYsOZbhSxorZkv0CDkSQrW5dS5JFbYjfh
MjEoHybUdIyYo7boJUBLkU3YH9nZkBtSxFJRaaLN024iqQrID2+JLU/LEW5F
sAQbGZN4JQVkE7Yf7oOHbaNfXx76vd/SB9xGPDeOB77aa1bnR8gGZ53S2sNd
LV2+NIoS5+Af2VBHC3ZxuzqdhVAlvpVvB5G748Eiv6XLB2fSPmpL3MHBk6UF
+bw4/AN9Zs8tP8/xbML9qD5b5icN+iszQ+wOn+rDM9hGljyq93oOcZopYVx0
tehJ6g+sPHoDtkd3CjCuO80f0CSpbHT7/7ElHlplv89/wHclWuomemo9Ra9r
sQrqTK7rYt4tJUZ+dEsceW9itmLnnYZNOH60r0H9QnJN7/epVz+2ZdlEGTFt
e6iOjWV/rPNMF9IZmDd+fMsydC9849q9qcyPTyvIATy3UObk/+/8szPsrf4P
7gWsgA==\
\>"]]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["SmithNumberQ", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"Select", "[", 
  RowBox[{
   RowBox[{"Range", "[", "1000", "]"}], ",", "SmithNumberQ"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
  "4", ",", "22", ",", "27", ",", "58", ",", "85", ",", "94", ",", "121", ",",
    "166", ",", "202", ",", "265", ",", "274", ",", "319", ",", "346", ",", 
   "355", ",", "378", ",", "382", ",", "391", ",", "438", ",", "454", ",", 
   "483", ",", "517", ",", "526", ",", "535", ",", "562", ",", "576", ",", 
   "588", ",", "627", ",", "634", ",", "636", ",", "645", ",", "648", ",", 
   "654", ",", "663", ",", "666", ",", "690", ",", "706", ",", "728", ",", 
   "729", ",", "762", ",", "778", ",", "825", ",", "852", ",", "861", ",", 
   "895", ",", "913", ",", "915", ",", "922", ",", "958", ",", "985"}], 
  "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["StemPlot", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"StemPlot", "[", 
  RowBox[{
   RowBox[{"{", 
    RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5"}], "}"}], ",", 
   RowBox[{"PlotStyle", "\[Rule]", 
    RowBox[{"PointSize", "[", "Medium", "]"}]}], ",", 
   RowBox[{"FillingStyle", "\[Rule]", 
    RowBox[{"RGBColor", "[", 
     RowBox[{"1", ",", "0", ",", "0"}], "]"}]}]}], "]"}]], "Input"],

Cell[BoxData[
 GraphicsBox[
  GraphicsComplexBox[{{1., 1.}, {2., 2.}, {3., 3.}, {4., 4.}, {5., 5.}, {1., 
   0.}, {2., 0.}, {3., 0.}, {4., 0.}, {5., 0.}, {1., 1.}, {2., 2.}, {3., 
   3.}, {4., 4.}, {5., 5.}}, {{{}, {}, {}, {}, 
     {RGBColor[1, 0, 0], LineBox[{6, 1}], LineBox[{7, 2}], LineBox[{8, 3}], 
      LineBox[{9, 4}], LineBox[{10, 5}]}}, {{}, 
     {Hue[0.67, 0.6, 0.6], PointSize[Medium], 
      PointBox[{11, 12, 13, 14, 15}]}, {}}}],
  AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948],
  Axes->True,
  AxesOrigin->{0, 0},
  PlotRange->{{0, 5.}, {0, 5.}},
  PlotRangeClipping->True,
  PlotRangePadding->{
    Scaled[0.02], 
    Scaled[0.02]}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["ToGraph", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[{
 RowBox[{
  RowBox[{"lis", "=", 
   RowBox[{"RandomInteger", "[", 
    RowBox[{"9", ",", 
     RowBox[{"{", 
      RowBox[{"12", ",", "2"}], "}"}]}], "]"}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{"ToGraph", "[", "lis", "]"}]}], "Input"],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"3", "\[DirectedEdge]", "8"}], ",", 
   RowBox[{"0", "\[DirectedEdge]", "0"}], ",", 
   RowBox[{"9", "\[DirectedEdge]", "3"}], ",", 
   RowBox[{"1", "\[DirectedEdge]", "2"}], ",", 
   RowBox[{"9", "\[DirectedEdge]", "7"}], ",", 
   RowBox[{"6", "\[DirectedEdge]", "7"}], ",", 
   RowBox[{"5", "\[DirectedEdge]", "3"}], ",", 
   RowBox[{"0", "\[DirectedEdge]", "2"}], ",", 
   RowBox[{"2", "\[DirectedEdge]", "6"}], ",", 
   RowBox[{"5", "\[DirectedEdge]", "7"}], ",", 
   RowBox[{"0", "\[DirectedEdge]", "4"}], ",", 
   RowBox[{"6", "\[DirectedEdge]", "2"}]}], "}"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ToGraph", "[", 
  RowBox[{"{", 
   RowBox[{"3", ",", "2"}], "}"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"3", "\[DirectedEdge]", "2"}]], "Output"]
}, Closed]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ToGraph", "[", 
  RowBox[{"{", "}"}], "]"}]], "Input"],

Cell[BoxData[
 RowBox[{"{", "}"}]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["TruthTable", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"TruthTable", "[", 
  RowBox[{
   RowBox[{
    RowBox[{"A", "\[And]", "B"}], "\[Implies]", 
    RowBox[{"\[Not]", "C"}]}], ",", 
   RowBox[{"{", 
    RowBox[{"A", ",", "B", ",", "C"}], "}"}]}], "]"}]], "Input"],

Cell[BoxData[
 TagBox[GridBox[{
    {"A", "B", "C", 
     TagBox[
      FormBox[
       RowBox[{
        RowBox[{"A", "\[And]", "B"}], "\[Implies]", 
        RowBox[{"\[Not]", "C"}]}],
       TraditionalForm],
      TraditionalForm,
      Editable->True]},
    {"\<\"T\"\>", "\<\"T\"\>", "\<\"T\"\>", "\<\"F\"\>"},
    {"\<\"T\"\>", "\<\"T\"\>", "\<\"F\"\>", "\<\"T\"\>"},
    {"\<\"T\"\>", "\<\"F\"\>", "\<\"T\"\>", "\<\"T\"\>"},
    {"\<\"T\"\>", "\<\"F\"\>", "\<\"F\"\>", "\<\"T\"\>"},
    {"\<\"F\"\>", "\<\"T\"\>", "\<\"T\"\>", "\<\"T\"\>"},
    {"\<\"F\"\>", "\<\"T\"\>", "\<\"F\"\>", "\<\"T\"\>"},
    {"\<\"F\"\>", "\<\"F\"\>", "\<\"T\"\>", "\<\"T\"\>"},
    {"\<\"F\"\>", "\<\"F\"\>", "\<\"F\"\>", "\<\"T\"\>"}
   },
   AutoDelete->False,
   BaseStyle->{FontFamily -> "Times"},
   GridBoxDividers->{"ColumnsIndexed" -> {1 -> {
         Thickness[Tiny], 
         GrayLevel[0]}, -1 -> {
         Thickness[Tiny], 
         GrayLevel[0]}, -2 -> {
         Thickness[Tiny], 
         GrayLevel[0.85]}}, "RowsIndexed" -> {1 -> {
         Thickness[Tiny], 
         GrayLevel[0]}, 2 -> {
         Thickness[Tiny], 
         GrayLevel[0.85]}, -1 -> {
         Thickness[Tiny], 
         GrayLevel[0]}}},
   GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
  "Grid"]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["UpperTriangularMatrix", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"UpperTriangularMatrix", "[", "5", "]"}], "//", 
  "MatrixForm"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"1", "1", "1", "1", "1"},
     {"0", "1", "1", "1", "1"},
     {"0", "0", "1", "1", "1"},
     {"0", "0", "0", "1", "1"},
     {"0", "0", "0", "0", "1"}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output"]
}, Closed]]
}, Closed]],

Cell[CellGroupData[{

Cell["VandermondeMatrix", "Subsubsection"],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{
  RowBox[{"VandermondeMatrix", "[", 
   RowBox[{"4", ",", "\[Lambda]"}], "]"}], "//", "MatrixForm"}]], "Input"],

Cell[BoxData[
 TagBox[
  RowBox[{"(", "\[NoBreak]", GridBox[{
     {"1", 
      SubscriptBox["\[Lambda]", "1"], 
      SubsuperscriptBox["\[Lambda]", "1", "2"], 
      SubsuperscriptBox["\[Lambda]", "1", "3"]},
     {"1", 
      SubscriptBox["\[Lambda]", "2"], 
      SubsuperscriptBox["\[Lambda]", "2", "2"], 
      SubsuperscriptBox["\[Lambda]", "2", "3"]},
     {"1", 
      SubscriptBox["\[Lambda]", "3"], 
      SubsuperscriptBox["\[Lambda]", "3", "2"], 
      SubsuperscriptBox["\[Lambda]", "3", "3"]},
     {"1", 
      SubscriptBox["\[Lambda]", "4"], 
      SubsuperscriptBox["\[Lambda]", "4", "2"], 
      SubsuperscriptBox["\[Lambda]", "4", "3"]}
    },
    GridBoxAlignment->{
     "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, 
      "RowsIndexed" -> {}},
    GridBoxSpacings->{"Columns" -> {
        Offset[0.27999999999999997`], {
         Offset[0.7]}, 
        Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> {
        Offset[0.2], {
         Offset[0.4]}, 
        Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}],
  Function[BoxForm`e$, 
   MatrixForm[BoxForm`e$]]]], "Output"]
}, Closed]]
}, Closed]]
}, Open  ]]
}, Open  ]]
},
AutoGeneratedPackage->Automatic,
WindowSize->{939, 979},
WindowMargins->{{432, Automatic}, {Automatic, 10}},
ShowSelection->True,
Magnification:>FEPrivate`If[
  FEPrivate`Equal[FEPrivate`$VersionNumber, 6.], 1.25, 1.25 Inherited],
FrontEndVersion->"8.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (October 5, \
2011)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[579, 22, 68, 1, 83, "Section",
 InitializationGroup->True],
Cell[650, 25, 398, 13, 34, "Text"],
Cell[CellGroupData[{
Cell[1073, 42, 30, 0, 42, "Subsection"],
Cell[1106, 44, 134, 4, 33, "Input"],
Cell[1243, 50, 239, 6, 33, "Input"],
Cell[1485, 58, 146, 4, 33, "Input"],
Cell[1634, 64, 355, 9, 53, "Input"],
Cell[1992, 75, 137, 4, 33, "Input"],
Cell[2132, 81, 147, 4, 33, "Input"],
Cell[2282, 87, 241, 7, 33, "Input"],
Cell[2526, 96, 256, 8, 33, "Input"],
Cell[2785, 106, 888, 19, 110, "Input"],
Cell[3676, 127, 154, 4, 33, "Input"],
Cell[3833, 133, 173, 5, 33, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[4043, 143, 34, 0, 31, "Subsection"],
Cell[4080, 145, 159, 4, 41, "Input"],
Cell[4242, 151, 114, 3, 41, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[4393, 159, 57, 0, 31, "Subsection"],
Cell[4453, 161, 271, 7, 53, "Input"],
Cell[4727, 170, 280, 7, 33, "Input"],
Cell[5010, 179, 184, 5, 33, "Input"],
Cell[5197, 186, 302, 6, 72, "Input"],
Cell[5502, 194, 303, 7, 72, "Input"],
Cell[5808, 203, 292, 7, 72, "Input"],
Cell[6103, 212, 471, 10, 72, "Input"],
Cell[6577, 224, 462, 10, 72, "Input"],
Cell[7042, 236, 475, 10, 72, "Input"],
Cell[7520, 248, 467, 10, 72, "Input"],
Cell[7990, 260, 498, 11, 72, "Input"],
Cell[8491, 273, 309, 7, 72, "Input"],
Cell[8803, 282, 242, 6, 33, "Input"],
Cell[9048, 290, 1017, 26, 91, "Input"],
Cell[10068, 318, 679, 15, 110, "Input"],
Cell[10750, 335, 567, 14, 91, "Input"],
Cell[11320, 351, 292, 7, 72, "Input"],
Cell[11615, 360, 271, 6, 72, "Input"],
Cell[11889, 368, 336, 7, 91, "Input"],
Cell[12228, 377, 284, 6, 72, "Input"],
Cell[12515, 385, 245, 6, 53, "Input"],
Cell[12763, 393, 373, 9, 72, "Input"],
Cell[13139, 404, 366, 8, 91, "Input"],
Cell[13508, 414, 333, 7, 72, "Input"],
Cell[13844, 423, 236, 6, 33, "Input"],
Cell[14083, 431, 175, 5, 33, "Input"],
Cell[14261, 438, 237, 5, 33, "Input"],
Cell[14501, 445, 347, 8, 72, "Input"],
Cell[14851, 455, 315, 7, 72, "Input"],
Cell[15169, 464, 397, 10, 72, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[15603, 479, 29, 0, 31, "Subsection"],
Cell[15635, 481, 151, 4, 63, "Input"],
Cell[15789, 487, 152, 4, 63, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[15978, 496, 37, 0, 31, "Subsection"],
Cell[CellGroupData[{
Cell[16040, 500, 74, 1, 63, "Input"],
Cell[16117, 503, 64, 0, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[16230, 509, 63, 0, 31, "Subsection"],
Cell[16296, 511, 791, 23, 176, "Input"],
Cell[17090, 536, 344, 10, 63, "Input"],
Cell[17437, 548, 209, 6, 63, "Input"],
Cell[17649, 556, 592, 18, 102, "Input"],
Cell[18244, 576, 256, 7, 63, "Input"],
Cell[18503, 585, 352, 10, 102, "Input"],
Cell[18858, 597, 454, 12, 102, "Input"],
Cell[19315, 611, 341, 10, 102, "Input"],
Cell[19659, 623, 222, 6, 63, "Input"],
Cell[19884, 631, 403, 13, 63, "Input"],
Cell[20290, 646, 275, 7, 102, "Input"],
Cell[20568, 655, 471, 14, 102, "Input"],
Cell[21042, 671, 1338, 38, 307, "Input"],
Cell[22383, 711, 196, 6, 63, "Input"],
Cell[22582, 719, 492, 15, 102, "Input"],
Cell[23077, 736, 526, 16, 102, "Input"],
Cell[23606, 754, 631, 18, 140, "Input"],
Cell[24240, 774, 629, 18, 140, "Input"],
Cell[24872, 794, 769, 21, 176, "Input"],
Cell[25644, 817, 334, 9, 63, "Input"],
Cell[25981, 828, 646, 18, 176, "Input"],
Cell[26630, 848, 603, 17, 176, "Input"],
Cell[27236, 867, 238, 7, 63, "Input"],
Cell[27477, 876, 345, 10, 63, "Input"],
Cell[27825, 888, 847, 22, 288, "Input"],
Cell[28675, 912, 277, 9, 63, "Input"],
Cell[28955, 923, 635, 19, 140, "Input"],
Cell[29593, 944, 429, 12, 102, "Input"],
Cell[30025, 958, 1483, 42, 213, "Input"],
Cell[31511, 1002, 155, 4, 63, "Input"],
Cell[31669, 1008, 123, 3, 63, "Input"],
Cell[31795, 1013, 677, 20, 140, "Input"],
Cell[32475, 1035, 672, 20, 213, "Input"],
Cell[33150, 1057, 250, 8, 63, "Input"],
Cell[33403, 1067, 198, 6, 63, "Input"],
Cell[33604, 1075, 2778, 77, 362, "Input"],
Cell[36385, 1154, 413, 12, 63, "Input"],
Cell[36801, 1168, 513, 16, 102, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[37351, 1189, 41, 0, 31, "Subsection"],
Cell[37395, 1191, 69, 2, 63, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[37501, 1198, 32, 0, 31, "Subsection"],
Cell[37536, 1200, 58, 1, 63, "Input"]
}, Closed]]
}, Open  ]],
Cell[CellGroupData[{
Cell[37643, 1207, 27, 0, 83, "Section"],
Cell[CellGroupData[{
Cell[37695, 1211, 34, 0, 42, "Subsection"],
Cell[37732, 1213, 30, 0, 63, "Input"],
Cell[37765, 1215, 183, 6, 62, "Text"],
Cell[37951, 1223, 65, 1, 63, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[38053, 1229, 41, 0, 31, "Subsection"],
Cell[CellGroupData[{
Cell[38119, 1233, 61, 1, 63, "Input"],
Cell[38183, 1236, 246, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[38466, 1245, 53, 1, 63, "Input"],
Cell[38522, 1248, 270, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[38829, 1257, 56, 1, 63, "Input"],
Cell[38888, 1260, 286, 4, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[39211, 1269, 65, 1, 63, "Input"],
Cell[39279, 1272, 267, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[39583, 1281, 62, 1, 63, "Input"],
Cell[39648, 1284, 258, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[39943, 1293, 59, 1, 63, "Input"],
Cell[40005, 1296, 488, 7, 141, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[40530, 1308, 56, 1, 63, "Input"],
Cell[40589, 1311, 298, 4, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[40924, 1320, 60, 1, 63, "Input"],
Cell[40987, 1323, 218, 3, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[41242, 1331, 49, 1, 63, "Input"],
Cell[41294, 1334, 1343, 23, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[42674, 1362, 56, 1, 63, "Input"],
Cell[42733, 1365, 747, 11, 175, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[43517, 1381, 64, 1, 63, "Input"],
Cell[43584, 1384, 598, 9, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[44219, 1398, 59, 1, 63, "Input"],
Cell[44281, 1401, 261, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[44579, 1410, 58, 1, 63, "Input"],
Cell[44640, 1413, 243, 3, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[44920, 1421, 54, 1, 63, "Input"],
Cell[44977, 1424, 320, 5, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[45334, 1434, 55, 1, 63, "Input"],
Cell[45392, 1437, 261, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[45690, 1446, 50, 1, 63, "Input"],
Cell[45743, 1449, 235, 4, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[46015, 1458, 57, 1, 63, "Input"],
Cell[46075, 1461, 383, 5, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[46495, 1471, 61, 1, 63, "Input"],
Cell[46559, 1474, 340, 5, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[46936, 1484, 55, 1, 63, "Input"],
Cell[46994, 1487, 308, 4, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[47339, 1496, 51, 1, 63, "Input"],
Cell[47393, 1499, 215, 3, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[47645, 1507, 50, 1, 63, "Input"],
Cell[47698, 1510, 219, 3, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[47954, 1518, 53, 1, 63, "Input"],
Cell[48010, 1521, 349, 5, 95, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[48396, 1531, 64, 1, 63, "Input"],
Cell[48463, 1534, 287, 4, 135, "Print"]
}, Closed]],
Cell[CellGroupData[{
Cell[48787, 1543, 60, 1, 63, "Input"],
Cell[48850, 1546, 411, 6, 95, "Print"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[49310, 1558, 70, 2, 31, "Subsection"],
Cell[CellGroupData[{
Cell[49405, 1564, 43, 0, 30, "Subsubsection"],
Cell[CellGroupData[{
Cell[49473, 1568, 303, 8, 102, "Input"],
Cell[49779, 1578, 7544, 170, 675, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[57360, 1753, 72, 1, 63, "Input"],
Cell[57435, 1756, 1272, 44, 102, "Output"]
}, Closed]],
Cell[58722, 1803, 70, 0, 47, "SolutionText"],
Cell[CellGroupData[{
Cell[58817, 1807, 548, 13, 63, "Input"],
Cell[59368, 1822, 7030, 139, 393, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[66435, 1966, 73, 1, 63, "Input"],
Cell[66511, 1969, 457, 16, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[67017, 1991, 35, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[67077, 1995, 111, 3, 63, "Input"],
Cell[67191, 2000, 289, 10, 63, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[67517, 2015, 88, 2, 78, "Input"],
Cell[67608, 2019, 31, 0, 63, "Output"]
}, Closed]],
Cell[67654, 2022, 35, 0, 62, "Text"],
Cell[CellGroupData[{
Cell[67714, 2026, 110, 3, 63, "Input"],
Cell[67827, 2031, 273, 6, 50, "Message"],
Cell[68103, 2039, 111, 3, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[68263, 2048, 38, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[68326, 2052, 68, 1, 63, "Input"],
Cell[68397, 2055, 34, 0, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[68480, 2061, 47, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[68552, 2065, 82, 1, 63, "Input"],
Cell[68637, 2068, 287, 5, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[68973, 2079, 44, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[69042, 2083, 88, 1, 63, "Input"],
Cell[69133, 2086, 1694, 27, 400, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[70876, 2119, 94, 4, 21, "Subsubsection"],
Cell[70973, 2125, 368, 12, 128, "Input"],
Cell[CellGroupData[{
Cell[71366, 2141, 847, 25, 176, "Input"],
Cell[72216, 2168, 916, 25, 301, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[73181, 2199, 38, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[73244, 2203, 69, 1, 63, "Input"],
Cell[73316, 2206, 37, 0, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[73402, 2212, 42, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[73469, 2216, 95, 2, 78, "Input"],
Cell[73567, 2220, 1294, 19, 251, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[74910, 2245, 31, 0, 21, "Subsubsection"],
Cell[74944, 2247, 154, 4, 63, "Input"],
Cell[CellGroupData[{
Cell[75123, 2255, 104, 2, 63, "Input"],
Cell[75230, 2259, 137, 4, 63, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[75404, 2268, 128, 3, 63, "Input"],
Cell[75535, 2273, 211, 5, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[75795, 2284, 38, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[75858, 2288, 115, 3, 78, "Input"],
Cell[75976, 2293, 99, 2, 63, "Output"]
}, Closed]],
Cell[76090, 2298, 39, 0, 62, "Text"],
Cell[CellGroupData[{
Cell[76154, 2302, 125, 3, 78, "Input"],
Cell[76282, 2307, 81, 2, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[76412, 2315, 46, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[76483, 2319, 113, 2, 63, "Input"],
Cell[76599, 2323, 97, 2, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[76745, 2331, 41, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[76811, 2335, 269, 7, 102, "Input"],
Cell[77083, 2344, 46, 0, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[77178, 2350, 40, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[77243, 2354, 87, 2, 63, "Input"],
Cell[77333, 2358, 1185, 36, 72, "Output"]
}, Closed]],
Cell[78533, 2397, 68, 1, 63, "Input"]
}, Closed]],
Cell[CellGroupData[{
Cell[78638, 2403, 36, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[78699, 2407, 59, 1, 63, "Input"],
Cell[78761, 2410, 156, 4, 63, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[78954, 2419, 64, 1, 63, "Input"],
Cell[79021, 2422, 490, 14, 102, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[79560, 2442, 37, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[79622, 2446, 375, 8, 102, "Input"],
Cell[80000, 2456, 5336, 132, 952, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[85385, 2594, 39, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[85449, 2598, 1077, 27, 251, "Input"],
Cell[86529, 2627, 1092, 28, 212, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[87658, 2660, 221, 6, 63, "Input"],
Cell[87882, 2668, 1157, 31, 212, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[89088, 2705, 32, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[89145, 2709, 61, 1, 63, "Input"],
Cell[89209, 2712, 40, 0, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[89298, 2718, 43, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[89366, 2722, 318, 6, 102, "Input"],
Cell[89687, 2730, 24466, 406, 472, 1890, 34, "CachedBoxData", "BoxData", \
"Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[114202, 3142, 37, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[114264, 3146, 129, 3, 63, "Input"],
Cell[114396, 3151, 668, 11, 140, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[115113, 3168, 33, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[115171, 3172, 368, 9, 63, "Input"],
Cell[115542, 3183, 675, 16, 597, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[116266, 3205, 32, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[116323, 3209, 257, 8, 102, "Input"],
Cell[116583, 3219, 629, 14, 63, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[117249, 3238, 107, 3, 63, "Input"],
Cell[117359, 3243, 64, 1, 63, "Output"]
}, Closed]],
Cell[CellGroupData[{
Cell[117460, 3249, 78, 2, 63, "Input"],
Cell[117541, 3253, 45, 1, 63, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[117635, 3260, 35, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[117695, 3264, 233, 7, 63, "Input"],
Cell[117931, 3273, 1304, 36, 401, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[119284, 3315, 46, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[119355, 3319, 110, 3, 63, "Input"],
Cell[119468, 3324, 711, 20, 212, "Output"]
}, Closed]]
}, Closed]],
Cell[CellGroupData[{
Cell[120228, 3350, 42, 0, 21, "Subsubsection"],
Cell[CellGroupData[{
Cell[120295, 3354, 135, 3, 63, "Input"],
Cell[120433, 3359, 1147, 31, 231, "Output"]
}, Closed]]
}, Closed]]
}, Open  ]]
}, Open  ]]
}
]
*)

(* End of internal cache information *)
