(* Content-type: application/mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 6.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 145, 7] NotebookDataLength[ 37437, 1040] NotebookOptionsPosition[ 33037, 897] NotebookOutlinePosition[ 33590, 920] CellTagsIndexPosition[ 33505, 915] WindowFrame->Normal ContainsDynamic->False*) (* Beginning of Notebook Content *) Notebook[{ Cell[BoxData[ RowBox[{"\[IndentingNewLine]", RowBox[{ StyleBox[ RowBox[{ StyleBox["Neural", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], StyleBox[" ", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], StyleBox[ RowBox[{ StyleBox[ StyleBox["N", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], "et"}]], " ", StyleBox["Forward", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], StyleBox[" ", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], StyleBox[ RowBox[{ StyleBox[ StyleBox["P", "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], "hase"}]], " ", "Array"}], "Title", FontFamily->"Times", FontSize->48, FontColor->RGBColor[1, 0, 0]], StyleBox["\[IndentingNewLine]", FontFamily->"Times"], "\[IndentingNewLine]", StyleBox[ RowBox[{"Sanjay", " ", "Rajopadhye"}], "Subtitle", FontFamily->"Times", FontColor->RGBColor[1, 0, 0]], StyleBox["\[IndentingNewLine]", "Subtitle", FontFamily->"Times", FontColor->RGBColor[1, 0, 0]], "\[IndentingNewLine]", StyleBox[ RowBox[{"Colorado", " ", "State", " ", "University"}], "Subtitle", FontFamily->"Times", FontColor->RGBColor[1, 0, 0]], StyleBox["\[IndentingNewLine]", FontFamily->"Times"]}]}]], "Input", Evaluatable->False, CellChangeTimes->{{3.416852888381369*^9, 3.416852910176201*^9}, { 3.41686130391221*^9, 3.41686132112427*^9}}, TextAlignment->Center, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"SetDirectory", "[", "\"\<~svr/alpha/NeuralNets/CS560Spring2008\>\"", "]"}]], "Input", CellChangeTimes->{{3.416852949621178*^9, 3.416852970736835*^9}}, FontSize->12], Cell[BoxData["\<\"/s/parsons/d/fac/svr/alpha/NeuralNets/CS560Spring2008\"\>"],\ "Output", CellChangeTimes->{3.416852972773313*^9, 3.416854355901545*^9, 3.416861334576497*^9, 3.416862777601058*^9, 3.4168637744523582`*^9, 3.417276562905035*^9}, FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"load", "[", "\"\\"", "]"}], ";"}]], "Input", CellChangeTimes->{{3.416852976803646*^9, 3.416852991944384*^9}, { 3.416853036842944*^9, 3.416853037108578*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData["\<\"[Neural]\"\>"], "Print", CellChangeTimes->{{3.416853037883036*^9, 3.416853057305367*^9}, 3.416854360955958*^9, 3.41686133696983*^9, 3.416862779609747*^9, 3.416863775533299*^9, 3.417276569342311*^9}, FontSize->12], Cell[BoxData["\<\" Library Loaded\"\>"], "Print", CellChangeTimes->{{3.416853037883036*^9, 3.416853057305367*^9}, 3.416854360955958*^9, 3.41686133696983*^9, 3.416862779609747*^9, 3.416863775533299*^9, 3.417276572901066*^9}, FontSize->12] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"analyze", "[", "]"}], ";", " ", RowBox[{"show", "[", "]"}]}]], "Input", CellChangeTimes->{{3.416861342425145*^9, 3.416861344161126*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData["\<\" \"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276579023044*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Static Analysis of system \"\>", "\[InvisibleSpace]", "\<\"Neural\"\>"}], SequenceForm["Static Analysis of system ", "Neural"], Editable->False]], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276581239087*^9}, FontSize->12], Cell[BoxData["\<\"--Checking declaration of variables.\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.41727658346917*^9}, FontSize->12], Cell[BoxData["\<\"--Checking single assignment rule.\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276586336841*^9}, FontSize->12], Cell[BoxData["\<\"--Checking definitions of output/local variables.\"\>"], \ "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276587611026*^9}, FontSize->12], Cell[BoxData["\<\"--Checking definition of input variables.\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276588887875*^9}, FontSize->12], Cell[BoxData["\<\"--Checking that input/local variables are used.\"\>"], \ "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.4172765901638813`*^9}, FontSize->12], Cell[BoxData["\<\"--Checking type and domain consistency in the \ equations:\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276591442067*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----equation defining \"\>", "\[InvisibleSpace]", "\<\"y1\"\>"}], SequenceForm["----equation defining ", "y1"], Editable->False]], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.41727659391695*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----equation defining \"\>", "\[InvisibleSpace]", "\<\"y2\"\>"}], SequenceForm["----equation defining ", "y2"], Editable->False]], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276595196022*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----equation defining \"\>", "\[InvisibleSpace]", "\<\"z1\"\>"}], SequenceForm["----equation defining ", "z1"], Editable->False]], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276596477901*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"----equation defining \"\>", "\[InvisibleSpace]", "\<\"z\"\>"}], SequenceForm["----equation defining ", "z"], Editable->False]], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.4172765977529488`*^9}, FontSize->12], Cell[BoxData["\<\"\\nAnalysis Successful...\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276599032037*^9}, FontSize->12], Cell[BoxData["\<\"system Neural :{N,P,M | 2<=N; 2<=P; 2<=M}\\n \ (x : {n | 1<=n<=N} of integer; \\n W1 : {p,n | 1<=p<=P; \ 1<=n<=N} of integer; \\n W2 : {m,p | 1<=m<=M; 1<=p<=P} of \ integer)\\n returns (z : {m | 1<=m<=M} of integer);\\nvar\\n y1 : {p | \ 1<=p<=P} of integer;\\n y2 : {p | 1<=p<=P} of integer;\\n z1 : {m | \ 1<=m<=M} of integer;\\nlet\\n y1 = reduce(+, (p,n->p), W1 * x.(p,n->n));\\n \ y2 = thold(y1);\\n z1 = reduce(+, (m,p->m), W2 * y2.(m,p->p));\\n z = \ thold(z1);\\ntel;\"\>"], "Print", CellChangeTimes->{3.416853064379453*^9, 3.416854365154937*^9, 3.416861345621852*^9, 3.416862782817675*^9, 3.4168637778895884`*^9, 3.417276601759206*^9}, FontSize->12] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"getOccurs", "[", RowBox[{"reduce", "[", "___", "]"}], "]"}]], "Input", CellChangeTimes->{{3.416853272440463*^9, 3.416853274092107*^9}}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"6", ",", "1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"6", ",", "3", ",", "2"}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.416853539456407*^9, 3.416853584833949*^9, 3.416854401326756*^9, 3.4168613625901213`*^9, 3.4168627863772*^9, 3.416863781783183*^9, 3.417276604673975*^9}, FontSize->12] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"serializeReduce", "[", RowBox[{ RowBox[{"{", RowBox[{"6", ",", "1", ",", "2"}], "}"}], ",", " ", "\"\p,n-1)\>\""}], "]"}], ";"}]], "Input", CellChangeTimes->{{3.41685330511253*^9, 3.416853355962605*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"getOccurs", "[", RowBox[{"reduce", "[", "___", "]"}], "]"}]], "Input", CellChangeTimes->{{3.41685351176098*^9, 3.416853514836468*^9}, { 3.416854446193564*^9, 3.416854449829384*^9}, {3.4168613725666933`*^9, 3.416861374716117*^9}}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{"{", RowBox[{"6", ",", "4", ",", "2"}], "}"}], "}"}]], "Output", CellChangeTimes->{3.416854453481742*^9, 3.416861378427059*^9, 3.416862791743984*^9, 3.416863786055417*^9, 3.417277075812916*^9}, FontSize->12] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"serializeReduce", "[", RowBox[{ RowBox[{"{", RowBox[{"6", ",", "4", ",", "2"}], "}"}], ",", " ", "\"\m,p-1)\>\""}], "]"}], ";"}]], "Input", CellChangeTimes->{{3.416853369167459*^9, 3.416853417855437*^9}, { 3.416853592661512*^9, 3.416853593235928*^9}}, FontSize->12], Cell["\<\ Now, let's try to do a few transformations without normalizing for some time.\ \ \>", "Text", CellChangeTimes->{{3.416861417372821*^9, 3.416861458246482*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"schedule", "[", RowBox[{"scheduleType", " ", "\[Rule]", " ", "sameLinearPart"}], "]"}]], "Input", CellChangeTimes->{{3.416853890193697*^9, 3.416853897780823*^9}, { 3.416854482666744*^9, 3.416854518086045*^9}}, FontSize->12], Cell[BoxData["\<\"Checking options...\"\>"], "Print", CellChangeTimes->{3.416854522747887*^9, 3.416861501002886*^9, 3.416862801803844*^9, 3.416863794109755*^9, 3.41727720267931*^9}, FontSize->12], Cell[BoxData[ RowBox[{ RowBox[{"checkOptions", "::", "\<\"sameLinPartImpossible\"\>"}], RowBox[{ ":", " "}], "\<\"Using the samelinearPart\\n options, all the local \ variables of the system must have the same\\n number of indices\"\>"}]], \ "Message", "MSG", CellChangeTimes->{3.416854524541512*^9, 3.416861504254221*^9, 3.416862803899768*^9, 3.4168637961148787`*^9, 3.417277204360134*^9}, FontSize->12], Cell[BoxData["$Failed"], "Output", CellChangeTimes->{3.416853899419709*^9, 3.416854524600282*^9, 3.416861504261179*^9, 3.4168628039869947`*^9, 3.416863796199449*^9, 3.417277206179731*^9}, FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"show", "[", "]"}]], "Input", CellChangeTimes->{{3.41685465398356*^9, 3.416854656068463*^9}, 3.416861509010436*^9}, FontSize->12], Cell[BoxData["\<\"system Neural :{N,P,M | 2<=N; 2<=P; 2<=M}\\n \ (x : {n | 1<=n<=N} of integer; \\n W1 : {p,n | 1<=p<=P; \ 1<=n<=N} of integer; \\n W2 : {m,p | 1<=m<=M; 1<=p<=P} of \ integer)\\n returns (z : {m | 1<=m<=M} of integer);\\nvar\\n ZAcc : \ {m,p | 1<=m<=M; 0<=p<=P; 2<=N; 2<=P; 2<=M} of integer;\\n YAcc : {p,n | \ 1<=p<=P; 0<=n<=N; 2<=N; 2<=P; 2<=M} of integer;\\n y1 : {p | 1<=p<=P} of \ integer;\\n y2 : {p | 1<=p<=P} of integer;\\n z1 : {m | 1<=m<=M} of \ integer;\\nlet\\n ZAcc = \\n case\\n {m,p | 1<=m<=M; p=0; 2<=N; \ 2<=P; 2<=M} : 0.(m,p->);\\n {m,p | 1<=m<=M; 1<=p<=P; 2<=N; 2<=P; 2<=M} \ : ZAcc.(m,p->m,p-1) + W2 * y2.(m,p->p);\\n esac;\\n YAcc = \\n \ case\\n {p,n | 1<=p<=P; n=0; 2<=N; 2<=P; 2<=M} : 0.(p,n->);\\n \ {p,n | 1<=p<=P; 1<=n<=N; 2<=N; 2<=P; 2<=M} : YAcc.(p,n->p,n-1) + W1 * \ x.(p,n->n);\\n esac;\\n y1 = {p | 1<=p<=P; 2<=N; 2<=P; 2<=M} : \ YAcc.(p->p,N);\\n y2 = thold(y1);\\n z1 = {m | 1<=m<=M; 2<=N; 2<=P; 2<=M} : \ ZAcc.(m->m,P);\\n z = thold(z1);\\ntel;\"\>"], "Print", CellChangeTimes->{3.41685465673109*^9, 3.41686151604757*^9, 3.416862805851448*^9, 3.4168637993067417`*^9, 3.41727723781213*^9}, FontSize->12] }, Open ]], Cell[TextData[StyleBox["So now we have to do the appropriate changes of bases \ to get the program to match our view (as drawn on the board). We will use \ the non-square change-of basis to align the 1D variables into2D space. ", FontSize->12]], "Text", CellChangeTimes->{{3.416861534642158*^9, 3.416861561136668*^9}, { 3.416861958713245*^9, 3.4168620230618258`*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "changeOfBasis"}]], "Input", CellChangeTimes->{{3.416855142531833*^9, 3.416855147238778*^9}}, FontSize->12], Cell[BoxData[ StyleBox["\<\"changeOfBasis[var.fn] returns a copy of $result in which \ the\\nvariable var is reindexed by an unimodular affine function fn. \ The\\nchange of basis is specified as \\\"B.(i,j,k -> i+1,j,k)\\\" where B is\ \\nthe variable to be reindexed, and the change of basis matrix has \ the\\nformat of an Alpha dependence, with one difference: the index \ mapping\\nfunction is understood as a mapping from initial to new position \ (and\\nnot the opposite). If it is square, this matrix should \ be\\nunimodular. Non-square change of basis (also called generalized \ \\nchange of basis) are allowed, in that case, the\\nfunction should be \ called this way: changeOfBasis[var.fn,\\n{index, ...}] applies a change of \ basis fn on variable var,\\nexcept that the new indices of var are named \ according to the second\\nargument.\\nExample: \\nchangeOfBasis[\\\"B.(i,j ->\ \\n1,i,j)\\\",{\\\"i1\\\",\\\"j1\\\",\\\"k1\\\"}]).\\n\\nchangeOfBasis[sys,\ var.fn, {index, ...}] applies a change of basis to\\nsystem sys instead of \ $result. \\n\\nchangeOfBasis[\\\"B.(i,j -> 1,i,j)\\\", recurse->True] \ \\nrecursively executes the change of basis on subsystem `subsys' called \ \\nwith B as input or output. The recursive change of basis has \\nmany \ restriction: as the semantics of the subsystem is modified, \\nwe impose that \ there is only one occurence of subsys appearing \\nin the system. Moreover, \ the recursive change of basis can \\nmodify only local indices (indices which \ are not extension \\nindices in the use of subsys) and must involve only \ local \\nindices and parameter transmitted to the subsystem. \\nThe change \ of basis on the extension indices can be performed \\nwith the function \ extDomainCOB[] (see ?extDomainCOB).\"\>", "MSG"]], "Print", "PrintUsage", CellChangeTimes->{3.417277244257003*^9}, CellTags->"Info3417255643-8717929"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"changeOfBasis", "[", RowBox[{"\"\p,N+1)\>\"", ",", " ", RowBox[{"{", RowBox[{"\"\\"", ",", " ", "\"\\""}], "}"}]}], "]"}], ";"}]], "Input", CellChangeTimes->{{3.416855009038533*^9, 3.416855108908371*^9}, { 3.416855164502504*^9, 3.416855194708841*^9}, {3.416863812582326*^9, 3.416863812925384*^9}}, FontSize->12], Cell[BoxData[ RowBox[{ RowBox[{"changeOfBasis", "[", RowBox[{"\"\p,N+2)\>\"", ",", " ", RowBox[{"{", RowBox[{"\"\\"", ",", " ", "\"\\""}], "}"}]}], "]"}], ";"}]], "Input", CellChangeTimes->{{3.416855492922427*^9, 3.416855520262952*^9}, { 3.416855579783881*^9, 3.416855581206436*^9}, 3.416862071525128*^9, { 3.4168638261746492`*^9, 3.416863827277886*^9}}, FontSize->12], Cell[TextData[StyleBox["Now, let's see what the program looks like (we still \ haven't normalized it)", FontSize->12]], "Text", CellChangeTimes->{{3.416862079769436*^9, 3.416862116912058*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"show", "[", "]"}]], "Input", CellChangeTimes->{{3.416862119894186*^9, 3.416862121001439*^9}}, FontSize->12], Cell[BoxData["\<\"system Neural :{N,P,M | 2<=N; 2<=P; 2<=M}\\n \ (x : {n | 1<=n<=N} of integer; \\n W1 : {p,n | 1<=p<=P; \ 1<=n<=N} of integer; \\n W2 : {m,p | 1<=m<=M; 1<=p<=P} of \ integer)\\n returns (z : {m | 1<=m<=M} of integer);\\nvar\\n ZAcc : \ {m,p | 1<=m<=M; 0<=p<=P; 2<=N; 2<=P; 2<=M} of integer;\\n YAcc : {p,n | \ 1<=p<=P; 0<=n<=N; 2<=N; 2<=P; 2<=M} of integer;\\n y1 : {p,n | 1<=p<=P; \ n=N+1} of integer;\\n y2 : {p,n | 1<=p<=P; n=N+2} of integer;\\n z1 : {m | \ 1<=m<=M} of integer;\\nlet\\n ZAcc = \\n case\\n {m,p | 1<=m<=M; \ p=0; 2<=N; 2<=P; 2<=M} : 0.(m,p->);\\n {m,p | 1<=m<=M; 1<=p<=P; 2<=N; \ 2<=P; 2<=M} : ZAcc.(m,p->m,p-1) + W2 * y2.(p->p,N+2).(m,p->p);\\n \ esac;\\n YAcc = \\n case\\n {p,n | 1<=p<=P; n=0; 2<=N; 2<=P; \ 2<=M} : 0.(p,n->);\\n {p,n | 1<=p<=P; 1<=n<=N; 2<=N; 2<=P; 2<=M} : \ YAcc.(p,n->p,n-1) + W1 * x.(p,n->n);\\n esac;\\n y1 = ({p | 1<=p<=P; \ 2<=N; 2<=P; 2<=M} : YAcc.(p->p,N)).(p,n->p);\\n y2 = \ thold(y1.(p->p,N+1)).(p,n->p);\\n z1 = {m | 1<=m<=M; 2<=N; 2<=P; 2<=M} : \ ZAcc.(m->m,P);\\n z = thold(z1);\\ntel;\"\>"], "Print", CellChangeTimes->{3.416862121428067*^9, 3.4168628250571957`*^9, 3.41686383477101*^9, 3.417277261190044*^9}, FontSize->12] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"changeOfBasis", "[", RowBox[{"\"\ p,m+N+3)\>\"", ",", " ", RowBox[{"{", RowBox[{"\"\\"", ",", " ", "\"\\""}], "}"}]}], "]"}], ";"}]], "Input", CellChangeTimes->{{3.416856090169692*^9, 3.416856155003756*^9}, { 3.416856189100783*^9, 3.41685621871442*^9}, {3.416856591393747*^9, 3.41685659154484*^9}, {3.416862850659712*^9, 3.416862851881543*^9}, { 3.416863858603833*^9, 3.416863869613614*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"normalize", "[", "]"}], ";", " ", RowBox[{"simplifySystem", "[", "]"}], ";", " ", RowBox[{"show", "[", "]"}]}]], "Input", CellChangeTimes->{{3.4168633907425833`*^9, 3.4168633944205313`*^9}, { 3.416863892555842*^9, 3.416863898564893*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData["\<\"After simplifyInContext\"\>"], "Print", CellChangeTimes->{3.416863395030912*^9, 3.416863900909094*^9, 3.4172772716732597`*^9}, FontSize->12], Cell[BoxData["\<\"system Neural :{N,P,M | 2<=N; 2<=P; 2<=M}\\n \ (x : {n | 1<=n<=N} of integer; \\n W1 : {p,n | 1<=p<=P; \ 1<=n<=N} of integer; \\n W2 : {m,p | 1<=m<=M; 1<=p<=P} of \ integer)\\n returns (z : {m | 1<=m<=M} of integer);\\nvar\\n ZAcc : \ {p,n | 0<=p<=P; N+4<=n<=N+M+3} of integer;\\n YAcc : {p,n | 1<=p<=P; \ 0<=n<=N} of integer;\\n y1 : {p,n | 1<=p<=P; n=N+1} of integer;\\n y2 : \ {p,n | 1<=p<=P; n=N+2} of integer;\\n z1 : {m | 1<=m<=M} of \ integer;\\nlet\\n ZAcc = \\n case\\n {p,n | p=0} : 0.(p,n->);\\n \ {p,n | 1<=p} : ZAcc.(p,n->p-1,n) + W2.(p,n->n-N-3,p) * \ y2.(p,n->p,N+2);\\n esac;\\n YAcc = \\n case\\n {p,n | n=0} \ : 0.(p,n->);\\n {p,n | 1<=n} : YAcc.(p,n->p,n-1) + W1 * x.(p,n->n);\\n \ esac;\\n y1 = {p,n | 1>=0} : YAcc.(p,n->p,n-1);\\n y2 = \ thold(y1.(p,n->p,n-1));\\n z1 = {m | 1>=0} : ZAcc.(m->P,m+N+3);\\n z = \ thold(z1);\\ntel;\"\>"], "Print", CellChangeTimes->{3.416863395030912*^9, 3.416863900909094*^9, 3.417277272660997*^9}, FontSize->12] }, Open ]] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"changeOfBasis", "[", RowBox[{"\"\0,m+N+1)\>\"", ",", " ", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}], "]"}], ";"}]], "Input",\ CellChangeTimes->{{3.416863505431053*^9, 3.416863640898067*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"normalize", "[", "]"}], ";", " ", RowBox[{"show", "[", "]"}]}]], "Input", CellChangeTimes->{{3.416863644578973*^9, 3.4168636508467407`*^9}}, FontSize->12], Cell[BoxData["\<\"system Neural :{N,P,M | 2<=N; 2<=P; 2<=M}\\n \ (x : {n | 1<=n<=N} of integer; \\n W1 : {p,n | 1<=p<=P; \ 1<=n<=N} of integer; \\n W2 : {m,p | 1<=m<=M; 1<=p<=P} of \ integer)\\n returns (z : {m | 1<=m<=M} of integer);\\nvar\\n ZAcc : \ {p,n | 0<=p<=P; N+4<=n<=N+M+3} of integer;\\n YAcc : {p,n | 1<=p<=P; \ 0<=n<=N} of integer;\\n y1 : {p,n | 1<=p<=P; n=N+1} of integer;\\n y2 : \ {p,n | 1<=p<=P; n=N+2} of integer;\\n z1 : {p,n | p=0; N+2<=n<=N+M+1} of \ integer;\\nlet\\n ZAcc = \\n case\\n {p,n | p=0} : 0.(p,n->);\\n \ {p,n | 1<=p} : ZAcc.(p,n->p-1,n) + W2.(p,n->n-N-3,p) * \ y2.(p,n->p,N+2);\\n esac;\\n YAcc = \\n case\\n {p,n | n=0} \ : 0.(p,n->);\\n {p,n | 1<=n} : YAcc.(p,n->p,n-1) + W1 * x.(p,n->n);\\n \ esac;\\n y1 = YAcc.(p,n->p,n-1);\\n y2 = thold(y1.(p,n->p,n-1));\\n \ z1 = ZAcc.(p,n->P,n+2);\\n z = thold(z1.(m->0,m+N+1));\\ntel;\"\>"], "Print",\ CellChangeTimes->{3.416863651838015*^9, 3.41686394195852*^9, 3.417277283065083*^9}, FontSize->12] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ StyleBox[ RowBox[{"schedule", "[", RowBox[{"scheduleType", " ", "\[Rule]", " ", "sameLinearPart"}], "]"}], FontSize->12]], "Input", CellChangeTimes->{{3.416863951303825*^9, 3.416863987332624*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData["\<\"Checking options...\"\>"], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277666351226*^9}, FontSize->12], Cell[BoxData["\<\"Dependence analysis...\"\>"], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277669016227*^9}, FontSize->12], Cell[BoxData["\<\"Building LP...\"\>"], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277672186178*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"LP: \"\>", "\[InvisibleSpace]", "230", "\[InvisibleSpace]", "\<\"\\n\\t\\t\\t variables, \"\>", "\[InvisibleSpace]", "272", "\[InvisibleSpace]", "\<\" Constraints\"\>"}], SequenceForm["LP: ", 230, "\n\t\t\t variables, ", 272, " Constraints"], Editable->False]], "Print", CellChangeTimes->{3.416864000646542*^9, 3.4172776746442204`*^9}, FontSize->12], Cell[BoxData["\<\"Writing file for PIP....\"\>"], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277677202989*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Writing line \"\>", "\[InvisibleSpace]", "100"}], SequenceForm["Writing line ", 100], Editable->False]], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277679436915*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Writing line \"\>", "\[InvisibleSpace]", "200"}], SequenceForm["Writing line ", 200], Editable->False]], "Print", CellChangeTimes->{3.416864000646542*^9, 3.4172776815468388`*^9}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"File", "\[Rule]", "\<\"/tmp/m00003348921.pip\"\>"}], ",", RowBox[{"FileType", "\[Rule]", "File"}], ",", RowBox[{"Date", "\[Rule]", "3417256065"}], ",", RowBox[{"ByteCount", "\[Rule]", "194141"}]}], "}"}]], "Print", CellChangeTimes->{3.416864000646542*^9, 3.41727768249305*^9}, FontSize->12], Cell[BoxData["\<\"Solving the LP...\"\>"], "Print", CellChangeTimes->{3.416864000646542*^9, 3.4172776833628483`*^9}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"File", "\[Rule]", "\<\"/tmp/m00003348921.pipres\"\>"}], ",", RowBox[{"FileType", "\[Rule]", "File"}], ",", RowBox[{"Date", "\[Rule]", "3417256065"}], ",", RowBox[{"ByteCount", "\[Rule]", "389"}]}], "}"}]], "Print", CellChangeTimes->{3.416864000646542*^9, 3.417277684146161*^9}, FontSize->12] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{ "Alpha`FarkasSchedule`Private`ReadPipResult", "::", "\<\"PipOutputError\"\>"}], RowBox[{":", " "}], "\<\" No schedule found, sorry\\t ...\"\>"}]], "Message",\ "MSG", CellChangeTimes->{3.416864001999166*^9, 3.417277685922073*^9}, FontSize->12], Cell[BoxData[ RowBox[{ RowBox[{"schedule", "::", "\<\"wrgresult\"\>"}], RowBox[{ ":", " "}], "\<\"wrong schedule. Report bug to Alpha\"\>"}]], "Message", \ "MSG", CellChangeTimes->{3.416864001999166*^9, 3.417277687766698*^9}, FontSize->12] }, Open ]], Cell[TextData[StyleBox["Why can't we find a schedule? What if we don't \ constrain the scheduler?", FontSize->12]], "Text", CellChangeTimes->{{3.416864030144904*^9, 3.416864070669592*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"schedule", "[", "]"}], ";"}]], "Input", CellChangeTimes->{{3.416864077424018*^9, 3.4168640817305317`*^9}}, FontSize->12], Cell[CellGroupData[{ Cell[BoxData["\<\"Checking options...\"\>"], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277691126924*^9}, FontSize->12], Cell[BoxData["\<\"Dependence analysis...\"\>"], "Print", CellChangeTimes->{3.416864082181241*^9, 3.4172776927619143`*^9}, FontSize->12], Cell[BoxData["\<\"Building LP...\"\>"], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277695136704*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"LP: \"\>", "\[InvisibleSpace]", "230", "\[InvisibleSpace]", "\<\"\\n\\t\\t\\t variables, \"\>", "\[InvisibleSpace]", "232", "\[InvisibleSpace]", "\<\" Constraints\"\>"}], SequenceForm["LP: ", 230, "\n\t\t\t variables, ", 232, " Constraints"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277696756216*^9}, FontSize->12], Cell[BoxData["\<\"Writing file for PIP....\"\>"], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277698376824*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Writing line \"\>", "\[InvisibleSpace]", "100"}], SequenceForm["Writing line ", 100], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277700562845*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Writing line \"\>", "\[InvisibleSpace]", "200"}], SequenceForm["Writing line ", 200], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277702226129*^9}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"File", "\[Rule]", "\<\"/tmp/m00003648921.pip\"\>"}], ",", RowBox[{"FileType", "\[Rule]", "File"}], ",", RowBox[{"Date", "\[Rule]", "3417256091"}], ",", RowBox[{"ByteCount", "\[Rule]", "165701"}]}], "}"}]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277703889864*^9}, FontSize->12], Cell[BoxData["\<\"Solving the LP...\"\>"], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277705842226*^9}, FontSize->12], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"File", "\[Rule]", "\<\"/tmp/m00003648921.pipres\"\>"}], ",", RowBox[{"FileType", "\[Rule]", "File"}], ",", RowBox[{"Date", "\[Rule]", "3417256091"}], ",", RowBox[{"ByteCount", "\[Rule]", "1767"}]}], "}"}]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277707576872*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Total execution Time: \"\>", "\[InvisibleSpace]", RowBox[{"4", "+", "\<\"N\"\>", "+", "\<\"P\"\>"}]}], SequenceForm["Total execution Time: ", 4 + "N" + "P"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277709320891*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"x\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "0"}], SequenceForm["T_", "x", {"n", "N", "P", "M"}, " = ", 0], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277711385845*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"W1\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "0"}], SequenceForm["T_", "W1", {"p", "n", "N", "P", "M"}, " = ", 0], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277713246131*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"W2\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"m\"\>", ",", "\<\"p\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "0"}], SequenceForm["T_", "W2", {"m", "p", "N", "P", "M"}, " = ", 0], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.4172777151618958`*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"z\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"m\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", RowBox[{"4", "+", "\<\"N\"\>", "+", "\<\"P\"\>"}]}], SequenceForm["T_", "z", {"m", "N", "P", "M"}, " = ", 4 + "N" + "P"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277717365962*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"ZAcc\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", RowBox[{"2", "+", "\<\"N\"\>", "+", "\<\"p\"\>"}]}], SequenceForm["T_", "ZAcc", {"p", "n", "N", "P", "M"}, " = ", 2 + "N" + "p"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277719353902*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"YAcc\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "\<\"n\"\>"}], SequenceForm["T_", "YAcc", {"p", "n", "N", "P", "M"}, " = ", "n"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277721348887*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"y1\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "\<\"n\"\>"}], SequenceForm["T_", "y1", {"p", "n", "N", "P", "M"}, " = ", "n"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277723681171*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"y2\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", "\<\"n\"\>"}], SequenceForm["T_", "y2", {"p", "n", "N", "P", "M"}, " = ", "n"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277725793919*^9}, FontSize->12], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"T_\"\>", "\[InvisibleSpace]", "\<\"z1\"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{"\<\"p\"\>", ",", "\<\"n\"\>", ",", "\<\"N\"\>", ",", "\<\"P\"\>", ",", "\<\"M\"\>"}], "}"}], "\[InvisibleSpace]", "\<\" = \"\>", "\[InvisibleSpace]", RowBox[{"3", "+", "\<\"N\"\>", "+", "\<\"P\"\>"}]}], SequenceForm["T_", "z1", {"p", "n", "N", "P", "M"}, " = ", 3 + "N" + "P"], Editable->False]], "Print", CellChangeTimes->{3.416864082181241*^9, 3.417277727918912*^9}, FontSize->12] }, Open ]] }, Open ]], Cell[TextData[StyleBox["Draw out the domains and the dependences, and I hope \ you will see.", FontSize->12]], "Text", CellChangeTimes->{{3.416864030144904*^9, 3.416864070669592*^9}, { 3.416864137257485*^9, 3.416864157935688*^9}}] }, ScreenStyleEnvironment->"Presentation", WindowSize->{986, 1422}, WindowMargins->{{124, Automatic}, {Automatic, 15}}, ShowSelection->True, FrontEndVersion->"6.0 for Linux x86 (64-bit) (April 20, 2007)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{ "Info3417255643-8717929"->{ Cell[13829, 403, 1889, 26, 613, "Print", CellTags->"Info3417255643-8717929"]} } *) (*CellTagsIndex CellTagsIndex->{ {"Info3417255643-8717929", 33398, 909} } *) (*NotebookFileOutline Notebook[{ Cell[568, 21, 1954, 63, 241, "Input", Evaluatable->False], Cell[CellGroupData[{ Cell[2547, 88, 193, 4, 34, "Input"], Cell[2743, 94, 265, 5, 34, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[3045, 104, 223, 5, 34, "Input"], Cell[CellGroupData[{ Cell[3293, 113, 240, 4, 24, "Print"], Cell[3536, 119, 247, 4, 24, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[3832, 129, 190, 5, 34, "Input"], Cell[CellGroupData[{ Cell[4047, 138, 210, 4, 24, "Print"], Cell[4260, 144, 387, 9, 24, "Print"], Cell[4650, 155, 244, 4, 24, "Print"], Cell[4897, 161, 243, 4, 24, "Print"], Cell[5143, 167, 260, 5, 24, "Print"], Cell[5406, 174, 250, 4, 24, "Print"], Cell[5659, 180, 260, 5, 24, "Print"], Cell[5922, 187, 267, 5, 24, "Print"], Cell[6192, 194, 370, 9, 24, "Print"], Cell[6565, 205, 371, 9, 24, "Print"], Cell[6939, 216, 371, 9, 24, "Print"], Cell[7313, 227, 371, 9, 24, "Print"], Cell[7687, 238, 234, 4, 45, "Print"], Cell[7924, 244, 741, 11, 305, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[8714, 261, 178, 4, 34, "Input"], Cell[8895, 267, 386, 10, 34, "Output"] }, Open ]], Cell[9296, 280, 285, 8, 34, "Input"], Cell[CellGroupData[{ Cell[9606, 292, 277, 6, 34, "Input"], Cell[9886, 300, 255, 6, 34, "Output"] }, Open ]], Cell[10156, 309, 335, 9, 34, "Input"], Cell[10494, 320, 184, 5, 35, "Text"], Cell[CellGroupData[{ Cell[10703, 329, 257, 6, 34, "Input"], Cell[10963, 337, 200, 3, 24, "Print"], Cell[11166, 342, 419, 9, 65, "Message"], Cell[11588, 353, 209, 4, 34, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[11834, 362, 158, 4, 34, "Input"], Cell[11995, 368, 1267, 17, 545, "Print"] }, Open ]], Cell[13277, 388, 387, 6, 55, "Text"], Cell[CellGroupData[{ Cell[13689, 398, 137, 3, 34, "Input"], Cell[13829, 403, 1889, 26, 613, "Print", CellTags->"Info3417255643-8717929"] }, Open ]], Cell[15733, 432, 387, 10, 34, "Input"], Cell[16123, 444, 413, 10, 34, "Input"], Cell[16539, 456, 209, 4, 35, "Text"], Cell[CellGroupData[{ Cell[16773, 464, 133, 3, 34, "Input"], Cell[16909, 469, 1309, 18, 545, "Print"] }, Open ]], Cell[18233, 490, 487, 11, 34, "Input"], Cell[CellGroupData[{ Cell[18745, 505, 296, 7, 34, "Input"], Cell[CellGroupData[{ Cell[19066, 516, 163, 3, 24, "Print"], Cell[19232, 521, 1096, 16, 545, "Print"] }, Open ]] }, Open ]], Cell[20355, 541, 285, 8, 34, "Input"], Cell[CellGroupData[{ Cell[20665, 553, 194, 5, 34, "Input"], Cell[20862, 560, 1093, 16, 545, "Print"] }, Open ]], Cell[CellGroupData[{ Cell[21992, 581, 235, 6, 34, "Input"], Cell[CellGroupData[{ Cell[22252, 591, 132, 2, 24, "Print"], Cell[22387, 595, 135, 2, 24, "Print"], Cell[22525, 599, 127, 2, 24, "Print"], Cell[22655, 603, 416, 8, 45, "Print"], Cell[23074, 613, 137, 2, 24, "Print"], Cell[23214, 617, 245, 6, 24, "Print"], Cell[23462, 625, 247, 6, 24, "Print"], Cell[23712, 633, 356, 8, 24, "Print"], Cell[24071, 643, 132, 2, 24, "Print"], Cell[24206, 647, 357, 8, 24, "Print"] }, Open ]], Cell[24578, 658, 289, 8, 24, "Message"], Cell[24870, 668, 249, 7, 24, "Message"] }, Open ]], Cell[25134, 678, 191, 3, 35, "Text"], Cell[CellGroupData[{ Cell[25350, 685, 157, 4, 34, "Input"], Cell[CellGroupData[{ Cell[25532, 693, 132, 2, 24, "Print"], Cell[25667, 697, 137, 2, 24, "Print"], Cell[25807, 701, 127, 2, 24, "Print"], Cell[25937, 705, 414, 8, 45, "Print"], Cell[26354, 715, 137, 2, 24, "Print"], Cell[26494, 719, 245, 6, 24, "Print"], Cell[26742, 727, 245, 6, 24, "Print"], Cell[26990, 735, 357, 8, 24, "Print"], Cell[27350, 745, 130, 2, 24, "Print"], Cell[27483, 749, 358, 8, 24, "Print"], Cell[27844, 759, 321, 7, 24, "Print"], Cell[28168, 768, 464, 11, 24, "Print"], Cell[28635, 781, 489, 11, 24, "Print"], Cell[29127, 794, 491, 11, 24, "Print"], Cell[29621, 807, 526, 12, 24, "Print"], Cell[30150, 821, 558, 13, 24, "Print"], Cell[30711, 836, 503, 11, 24, "Print"], Cell[31217, 849, 499, 11, 24, "Print"], Cell[31719, 862, 499, 11, 24, "Print"], Cell[32221, 875, 551, 12, 24, "Print"] }, Open ]] }, Open ]], Cell[32799, 891, 234, 4, 35, "Text"] } ] *) (* End of internal cache information *)