(* 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[ 216171, 6250] NotebookOptionsPosition[ 100524, 3526] NotebookOutlinePosition[ 202671, 5818] CellTagsIndexPosition[ 202555, 5812] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\<\"\[FirstPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LeftPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}], ButtonNote->"Previous Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[RightPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}], ButtonNote->"Next Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LastPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}], ButtonNote->"Last Slide", Evaluator->Automatic], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Center}}, "RowsIndexed" -> {}}]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell["\<\ Half\[Hyphen]GCD and Fast Rational Recovery\ \>", "Title"], Cell["Daniel Lichtblau", "Author"], Cell["\<\ Wolfram Research, Inc. 100 Trade Centre Dr. Champaign IL USA, 61820\ \>", "Affiliation"], Cell[TextData[StyleBox[ButtonBox["danl@wolfram.com", ButtonData:>{ URL["mailto:danl@wolfram.com"], None}], ButtonBoxOptions -> {DefaultStyle -> "Hyperlink"}]], "Author"], Cell["\<\ ISSAC 2005, Beijing July 2005\ \>", "Affiliation"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\<\"\[FirstPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LeftPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}], ButtonNote->"Previous Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[RightPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}], ButtonNote->"Next Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LastPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}], ButtonNote->"Last Slide", Evaluator->Automatic], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Center}}, "RowsIndexed" -> {}}]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Abstract", "Section"], Cell["\<\ Over the past few decades several variations on a \"half GCD\" algorithm for \ obtaining the pair of terms in the middle of a Euclidean sequence have been \ proposed. In the integer case algorithm design and proof of correctness are \ complicated by the effect of carries. This paper will demonstrate a variant \ with a relatively simple proof of correctness. We apply this to the task of \ rational recovery for a linear algebra solver. We also show how it is \ applicable to lattice reduction in the plane.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ The basic idea behind the \"half GCD\" (HGCD) algorithm is similar to that of \ many divide\[Hyphen]and\[Hyphen]conquer algorithms. We split our input \ integer into two parts of roughly half the size (based on the larger one). We \ do a recursive half GCD call It gives multipliers as well (similar to those \ obtained by extended gcd, and in fact HGCD is a very good way to do extended \ gcd computations). We use these to reduce not just the half size reduced \ inputs, but the full sized originals. We show that this reduces them by \ approximately 1/4 in size. Repeating this reduces to 1/2 the original size \ (this is the crude idea: the devil is in the details). We now have something \ that can indeed be used recursively.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\<\"\[FirstPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LeftPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}], ButtonNote->"Previous Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[RightPointer]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}], ButtonNote->"Next Slide", Evaluator->Automatic], ButtonBox[ StyleBox["\<\"\[LastPage]\"\>", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}], ButtonNote->"Last Slide", Evaluator->Automatic], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Center}}, "RowsIndexed" -> {}}]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ HGCD is based on a method for computing continued fractions presented by Sch\ \[ODoubleDot]nhage around 1971. It is superlinear in bit complexity, as it is \ seen to be log(n) times worse than multiplication, which had been shown to be \ superlinear. It is related to...\ \>", "Text", FontColor->GrayLevel[0], Background->GrayLevel[1]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ HGCD is based on a method for computing continued fractions presented by Sch\ \[ODoubleDot]nhage around 1971. It is superlinear in bit complexity, as it is \ seen to be log(n) times worse than multiplication, which had been shown to be \ superlinear. It is related to...\ \>", "Text", FontColor->GrayLevel[0]], Cell["\<\ A slower superlinear algorithm by Knuth that had just appeared. This in turn \ is related to...\ \>", "Text", CellChangeTimes->{3.373907150462005*^9}, FontColor->RGBColor[0, 0, 1]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ HGCD is based on a method for computing continued fractions presented by Sch\ \[ODoubleDot]nhage around 1971. It is superlinear in bit complexity, as it is \ seen to be log(n) times worse than multiplication, which had been shown to be \ superlinear. It is related to...\ \>", "Text", FontColor->GrayLevel[0]], Cell["\<\ A slower superlinear algorithm by Knuth that had just appeared. This in turn \ is related to...\ \>", "Text", CellChangeTimes->{3.373907135441929*^9}, FontColor->RGBColor[0, 0, 1]], Cell["\<\ An earlier algorithm, \"nearly\" subquadratic, by Lehmer (long before \ emergence of subquadratic multiplication). This in turn is related to...\ \>", "Text", FontColor->RGBColor[0.5, 0, 0.5]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ HGCD is based on a method for computing continued fractions presented by Sch\ \[ODoubleDot]nhage around 1971. It is superlinear in bit complexity, as it is \ seen to be log(n) times worse than multiplication, which had been shown to be \ superlinear. It is related to...\ \>", "Text"], Cell["\<\ A slower superlinear algorithm by Knuth that had just appeared. This in turn \ is related to...\ \>", "Text", CellChangeTimes->{3.373907143616871*^9}, FontColor->RGBColor[0, 0, 1]], Cell["\<\ An earlier algorithm, \"nearly\" subquadratic, by Lehmer (long before \ emergence of subquadratic multiplication). This in turn is related to...\ \>", "Text", FontColor->RGBColor[0.5, 0, 0.5]], Cell["\<\ A MUCH earlier algorithm, which had quadratic bit complexity.\ \>", "Text", FontColor->RGBColor[1, 0.5, 0]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Background and brief history", "Section"], Cell["\<\ What Sch\[ODoubleDot]nhage proposed was a method for efficient computation of \ continued fractions. With small modification this becomes a gcd algorithm. It \ was presented as such by Moenck and subsequently Aho, Hopcroft, and Ullman. \ These worked primarily with the univariate polynomial case, and the latter \ also discussed modifications needed to handle the integer case.\ \>", "Text"], Cell["\<\ The problem was that subtle details related to integer carries made that \ variant of the algorithm difficult to implement, and, indeed, difficult even \ to state clearly. Even the polynomial case is not trivial, and the version \ appearing in Aho, Hopcroft, and Ullman was a bit flawed.\ \>", "Text"], Cell["\<\ Around 1990 Thull and Yap presented an algorithm with proof, but it is quite \ intricate in terms of following all possible cases. I believe corrections \ have been made from time to time; I do not know its present status but assume \ it is correct. The polynomial case was discussed in detail in the text by von \ zur Gathen and Gerhard, where it is mentioned that at that time (1999) \ similar methods could probably be made to work for integers, but the details \ made a clean proof problematic. This motivated a more recent variant by Pan \ and Wang that seems correct but is a bit short on detail (ruthless \ enforcement of ISSAC page limits?), hence difficult to implement. \ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["\<\ Background and brief history (okay, it's not so brief anymore)\ \>", "Section"], Cell["\<\ Around 2001 we at WRI (specifically David Terr, Mark Sofroniou, and myself) \ implemented a version that always worked but was only probabilistically \ superlinear (though testing indicated it clearly had the expected bit \ complexity on large examples). More recently I wanted a version that was \ provably correct, not so much for the speed but because I wanted to \ experiment with rational recovery. This requires a \"truly correct\" HGCD, as \ opposed to one that might merely take us nearby to the middle in a remainder \ sequence, which, for asymptotic speed purposes, seems to be generally \"good \ enough\".\ \>", "Text"], Cell["\<\ This necessitated that I figure out how correctly to do this, hence the main \ part of this work. Of course the speed is important, so Mark Sofroniou and I \ (more him than me) took this opportunity of overhaul to do some careful \ tuning and make improvements in various places.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Recent related work", "Section"], Cell["\<\ In the past few years there has been a nice binary recursive method \ implemented by Stehl\[EAcute] and Zimmermann. It avoids carry issues by \ working from the least significant halves of the inputs, hence can be viewed \ as a superlinear cousin of the well known binary gcd method. This one has \ also been done by Mark Sofroniou. Quite recently there is work in progress by \ Niels M\[ODoubleDot]ller. It uses a method also due to Sch\[ODoubleDot]nhage, \ developed for reducing binary quadratic forms. This, too, is closely related \ to work by Yap, and furthermore is a close relative to the method of this \ talk. M\[ODoubleDot]ller moreover implemented prior variants including the \ Stehl\[EAcute] and Zimmermann method, and reported on timing comparisons (all \ seem to be close). Moreover Sasaki, Takahashi, and Takuya also formulated a \ similar rational recovery by divide\[Hyphen]and\[Hyphen]conquer.\ \>", "Text"], Cell["\<\ One interesting point we will cover briefly is that one can in a sense \ reverse the quadratic form reduction process,. That is, HGCD can be utilized \ to reduce a binary quadratic form. We will in fact show how it may reduce a \ planar lattice.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD: What it does", "Section"], Cell[TextData[{ "Given a pair of positive integers ", Cell[BoxData["\[ThinSpace]"], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{"m", ">", "n"}], TraditionalForm]]], ". HGCD will return a multiplier matrix and a new pair ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}], TraditionalForm]]], " of consecutive values in the Euclidean remainder sequence for ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], TraditionalForm]]], ". These straddle the half size point in that ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "i"], "\[GreaterEqual]", SqrtBox["m"], ">", SubscriptBox["v", RowBox[{"i", "+", "1"}]]}], TraditionalForm]]], ". The matrix ", Cell[BoxData[ FormBox[ SubscriptBox["R", "i"], TraditionalForm]]], " is the product of elementary transformation matrices, and ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["R", "i"], "(", GridBox[{ {"m"}, {"n"} }], ")"}], "=", RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}]}], TraditionalForm]]], "." }], "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD: basic ideas of the paper", "Section"], Cell[TextData[{ "Build matrix ", Cell[BoxData[ FormBox[ SubscriptBox["R", "i"], TraditionalForm]]], " as product of \"elementary\" matrices ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["R", "j"], "=", RowBox[{ RowBox[{"(", GridBox[{ {"0", "1"}, {"1", RowBox[{"-", SubscriptBox["q", "j"]}]} }], ")"}], " ", SubscriptBox["R", RowBox[{"j", "-", "1"}]]}]}], TraditionalForm]]], " where the ", Cell[BoxData[ FormBox[ SubscriptBox["q", "j"], TraditionalForm]]], " are successive quotients in the remainder sequence of our input integers \ ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], TraditionalForm]]], "." }], "Text", CellDingbat->"\[FilledSmallCircle]"], Cell[TextData[{ "Simple lemmas show how to recover ", Cell[BoxData[ FormBox[ SubscriptBox["R", RowBox[{"j", "-", "1"}]], TraditionalForm]]], " from ", Cell[BoxData[ FormBox[ SubscriptBox["R", "j"], TraditionalForm]]], " and describe growth bounds of various quantities encountered." }], "Text", CellDingbat->"\[FilledSmallCircle]"], Cell["\<\ One lemma from the literature gives a sufficient condition for obtaining a \ consecutive pair in the remainder sequence. The use is that we need not work \ with the original inputs but (as observed by Lehmer almost 70 years ago) can \ work with leading part. Later refinement: work recursively with top \"half\" \ of inputs.\ \>", "Text", CellDingbat->"\[FilledSmallCircle]"], Cell[TextData[{ "Formulate lemmas to bound sizes of values formed by multiplying the HGCD \ matrix for the top halves with the full inputs: due to carries this is not \ entirely trivial. With these we can bound number of fixup steps (forward or \ backwards Euclidean steps). This enforces complexity bound of ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ StyleBox["log", FontSlant->"Italic"], "(", "n", ")"}], RowBox[{"M", "(", "n", ")"}]}], TraditionalForm]]], ", where ", Cell[BoxData[ FormBox[ RowBox[{"M", "(", "n", ")"}], TraditionalForm]]], " is the cost of multiplying a pair of ", Cell[BoxData[ FormBox["n", TraditionalForm]]], "-bit integers." }], "Text", CellDingbat->"\[FilledSmallCircle]"], Cell["\<\ Formulate lemmas to \"repair\" a pair so that we can invoke the lemma \ regarding consecutive pairs in the sequence.\ \>", "Text", CellDingbat->"\[FilledSmallCircle]"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD algorithm", "Section"], Cell[TextData[{ "Step 1: Take ", Cell[BoxData[ FormBox[ RowBox[{"k", "=", " ", RowBox[{"\[LeftFloor]", FractionBox[ RowBox[{ SubscriptBox["log", "2"], "m"}], "2"], "\[RightFloor]"}]}], TraditionalForm]]], ". Write ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], "=", RowBox[{"(", "\[NegativeThinSpace]", GridBox[{ { RowBox[{ RowBox[{ SuperscriptBox["2", "k"], " ", SubscriptBox["f", "0"]}], "+", SubscriptBox["f", "1"]}]}, { RowBox[{ RowBox[{ SuperscriptBox["2", "k"], " ", SubscriptBox["g", "0"]}], "+", SubscriptBox["g", "1"]}]} }], "\[NegativeThinSpace]", ")"}]}], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["f", "1"], ",", SubscriptBox["g", "1"]}], "}"}], "<", SuperscriptBox["2", "k"]}], TraditionalForm]]], ". We have ", Cell[BoxData[ FormBox[ RowBox[{ SuperscriptBox["2", "k"], ">", SqrtBox["m"], ">", SuperscriptBox["2", RowBox[{"k", "-", "1"}]]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["g", "0"], "\[LessEqual]", SubscriptBox["f", "0"], "<", RowBox[{"2", SqrtBox["m"]}]}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Step 2: Recursively compute ", Cell[BoxData[ FormBox[ RowBox[{"HGCD", "(", GridBox[{ { SubscriptBox["f", "0"]}, { SubscriptBox["g", "0"]} }], ")"}], TraditionalForm]]], ". Obtain matrix ", Cell[BoxData[ FormBox[ SubscriptBox["R", "i"], TraditionalForm]]], " and pair ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ { SubscriptBox["r", "i"]}, { SubscriptBox["r", RowBox[{"i", "+", "1"}]]} }], ")"}], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["R", "i"], " ", RowBox[{"(", GridBox[{ { SubscriptBox["f", "0"]}, { SubscriptBox["g", "0"]} }], ")"}]}], "=", RowBox[{"(", GridBox[{ { SubscriptBox["r", "i"]}, { SubscriptBox["r", RowBox[{"i", "+", "1"}]]} }], ")"}]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{"0", "\[LessEqual]", SubscriptBox["r", RowBox[{"i", "+", "1"}]], "<", SqrtBox[ SubscriptBox["f", "0"]], "<", SubscriptBox["r", "i"]}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Step 3: Compute ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}], "=", RowBox[{ SubscriptBox["R", "i"], "(", GridBox[{ {"m"}, {"n"} }], ")"}]}], TraditionalForm]]], ". Lemmas (see paper) bound ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}], TraditionalForm]]], ", so that we obtain cases of set 4. Some bounds are conditional on the size \ of ", Cell[BoxData[ FormBox[ SubscriptBox["r", "i"], TraditionalForm]]], ". Rather conveniently, it turns out that all conditions can be arranged to \ have the same \"crossover\" value ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["r", "i"], "=", RowBox[{"2", " ", SqrtBox[ SubscriptBox["f", "0"]]}]}], TraditionalForm]]], ". (What matters is that size conditions all be the same; the actual \ crossover is not important except as a technical detail in proofs). We also \ bound ", Cell[BoxData[ FormBox[ SubscriptBox["v", RowBox[{"i", "-", "1"}]], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Step 4: Possible cases: (i) ", Cell[BoxData[ FormBox[ SubscriptBox["v", RowBox[{"i", "+", "1"}]], TraditionalForm]]], " may be negative. (ii) ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "i"], "<", SubscriptBox["v", RowBox[{"i", "+", "1"}]]}], TraditionalForm]]], ". If neither, that is, ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "i"], ">", SubscriptBox["v", RowBox[{"i", "+", "1"}]], ">", "0"}], TraditionalForm]]], ", then we set ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}], "=", RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}]}], TraditionalForm]]], " and move to step 5. Else..." }], "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD algorithm", "Section"], Cell[TextData[{ "Case i: ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], ">", SubscriptBox["v", "i"]}], TraditionalForm]]], ". Take the matrix ", Cell[BoxData[ FormBox[ RowBox[{"H", "=", RowBox[{"(", GridBox[{ {"1", "0"}, { RowBox[{"-", "h"}], "1"} }], ")"}]}], TraditionalForm]]], " where ", Cell[BoxData[ FormBox[ RowBox[{"h", "=", RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "/", SubscriptBox["v", "i"]}], "\[RightFloor]"}], "\[GreaterEqual]", "1"}]}], TraditionalForm]]], ". The new pair is ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}], "=", RowBox[{ RowBox[{"H", " ", RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { SubscriptBox["v", RowBox[{"i", "+", "1"}]]} }], ")"}]}], "=", RowBox[{"(", GridBox[{ { SubscriptBox["v", "i"]}, { RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "-", RowBox[{"h", " ", SubscriptBox["v", "i"]}]}]} }], ")"}], " "}]}], TraditionalForm]]], "which satisfies the requirement that ", Cell[BoxData[ FormBox[ RowBox[{"u", ">", "v", ">", "0"}], TraditionalForm]]], ". Move on to step 5." }], "Text"], Cell[TextData[{ "Case ii: ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "<", "0"}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "+", SubscriptBox["v", "i"]}], "\[GreaterEqual]", "0"}], TraditionalForm]]], ". First assume ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["q", "i"], ">", "1"}], TraditionalForm]]], ". Then take ", Cell[BoxData[ FormBox[ RowBox[{"H", "=", RowBox[{"(", GridBox[{ {"1", "0"}, {"1", "1"} }], ")"}]}], TraditionalForm]]], " and proceed as in case i above to obtain a positive pair in the correct \ order. Note that ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"u", "-", "v"}], "=", RowBox[{"\[VerticalBar]", SubscriptBox["v", RowBox[{"i", "+", "1"}]], "\[VerticalBar]", "<", RowBox[{ SuperscriptBox["2", RowBox[{"k", "+", "1"}]], " ", SqrtBox[ SubscriptBox["f", "0"]]}]}]}], TraditionalForm]]], ". This means that a Euclidean step will bring the pair into the range \ claimed in step 6 below. If ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["q", "i"], "=", "1"}], TraditionalForm]]], ", again we use the matrix ", Cell[BoxData[ FormBox["H", TraditionalForm]]], " as defined above, and again we obtain a positive pair in the correct \ order. But the product ", Cell[BoxData[ FormBox[ RowBox[{"H", " ", SubscriptBox["R", "i"]}], TraditionalForm]]], " is ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"0", "1"}, {"1", "0"} }], ")"}], TraditionalForm]]], " which is not an elementary matrix. To correct, multiply by ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"0", "1"}, {"1", "0"} }], ")"}], TraditionalForm]]], " again, giving as product the identity matrix. This flips ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}], TraditionalForm]]], ". Proceed back to step i to correct thie ordering." }], "Text"], Cell[TextData[{ "Case (iii). If ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "<", "0"}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "+", SubscriptBox["v", "i"]}], "<", "0"}], TraditionalForm]]], " then either ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "i"], "\[LessEqual]", RowBox[{ SuperscriptBox["2", RowBox[{"k", "-", "1"}]], " ", SqrtBox[ SubscriptBox["f", "0"]]}]}], TraditionalForm]]], " or ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", RowBox[{"i", "+", "1"}]], "\[LessEqual]", RowBox[{ RowBox[{"-", SuperscriptBox["2", RowBox[{"k", "-", "1"}]]}], " ", SqrtBox[ SubscriptBox["f", "0"]]}]}], TraditionalForm]]], ". In either case we have ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["r", "i"], "\[LessEqual]", RowBox[{"2", " ", SqrtBox[ SubscriptBox["f", "0"]]}]}], TraditionalForm]]], ". Perform a reversal of a Euclidean step, obtaining pair ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}], "=", RowBox[{ RowBox[{"(", GridBox[{ { SubscriptBox["v", RowBox[{"i", "-", "1"}]]}, { SubscriptBox["v", "i"]} }], ")"}], "=", RowBox[{ SubscriptBox["R", RowBox[{"i", "-", "1", " "}]], "(", GridBox[{ {"m"}, {"n"} }], ")"}]}]}], TraditionalForm]]], ". If ", Cell[BoxData[ FormBox[ RowBox[{"u", "<", "v"}], TraditionalForm]]], " then we go to case (i) above." }], "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD algorithm", "Section"], Cell[TextData[{ "Step 5: Perform a Euclidean reduction on ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}], TraditionalForm]]], ", obtaining next consecutive pair ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"v"}, {"w"} }], ")"}], TraditionalForm]]], " in the remainder sequence for ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], TraditionalForm]]], ", with elementary transformation matrix ", Cell[BoxData[ FormBox[ RowBox[{"Q", "=", RowBox[{"(", GridBox[{ {"0", "1"}, {"1", RowBox[{"-", "q"}]} }], ")"}], " "}], TraditionalForm]]], "(", Cell[BoxData[ FormBox[ RowBox[{"q", "=", RowBox[{"\[LeftFloor]", RowBox[{"u", "/", "v"}], "\[RightFloor]"}]}], TraditionalForm]]], ", ", Cell[BoxData[ FormBox[ RowBox[{"w", "=", RowBox[{"u", "-", RowBox[{"q", " ", "v"}]}]}], TraditionalForm]]], "). Form corresponding transformation matrix ", Cell[BoxData[ FormBox[ RowBox[{"R", "=", RowBox[{"Q", " ", SubscriptBox["R", "i"]}]}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Step 6: Examine the values of our pair ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"v"}, {"w"} }], ")"}], TraditionalForm]]], ". We know: ", Cell[BoxData[ FormBox[ RowBox[{"0", "<", "v", "<", RowBox[{ SuperscriptBox["2", "k"], " ", "3", " ", SqrtBox[ SubscriptBox["f", "0"]]}], "<", RowBox[{ SuperscriptBox["2", RowBox[{"k", "+", RowBox[{"1", "/", "2"}]}]], " ", "3", " ", SuperscriptBox["m", RowBox[{"1", "/", "4"}]]}], "<", RowBox[{ SuperscriptBox["2", RowBox[{"3", "/", "2"}]], " ", "3", " ", SuperscriptBox["m", RowBox[{"3", "/", "4"}]]}]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{"u", ">", SuperscriptBox["2", RowBox[{"k", "-", "1"}]], ">", RowBox[{ SqrtBox["m"], "/", "4"}]}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Case i: ", Cell[BoxData[ FormBox[ RowBox[{"w", "<", SqrtBox["m"]}], TraditionalForm]]], ". If ", Cell[BoxData[ FormBox[ RowBox[{"v", "\[GreaterEqual]", SqrtBox["m"]}], TraditionalForm]]], " we have our pair straddling ", Cell[BoxData[ FormBox[ SqrtBox["m"], TraditionalForm]]], ". Return it along with the transforming matrix ", Cell[BoxData[ FormBox["R", TraditionalForm]]], ". If ", Cell[BoxData[ FormBox[ RowBox[{"v", "<", SqrtBox["m"]}], TraditionalForm]]], " we do reverse Euclidean steps, updating our remainder sequence pair and \ transformation matrix. We have at most five such steps before an element \ exceeds ", Cell[BoxData[ FormBox[ SqrtBox["m"], TraditionalForm]]], " ; perform as many such steps as is needed to obtain the pair straddling ", Cell[BoxData[ FormBox[ SqrtBox["m"], TraditionalForm]]], " and return it with corresponding matrix." }], "Text"], Cell[TextData[{ "Case (ii). ", Cell[BoxData[ FormBox[ RowBox[{ SqrtBox["m"], "\[LessEqual]", "w", "<", "v", "<", RowBox[{ SuperscriptBox["2", RowBox[{"3", "/", "2"}]], " ", "3", " ", SuperscriptBox["m", RowBox[{"3", "/", "4"}]]}]}], TraditionalForm]]], " (typical: ", Cell[BoxData[ FormBox["w", TraditionalForm]]], " and ", Cell[BoxData[ FormBox["v", TraditionalForm]]], " both close to ", Cell[BoxData[ FormBox[ SuperscriptBox["m", RowBox[{"3", "/", "4"}]], TraditionalForm]]], "). Similarly to step 1, we take ", Cell[BoxData[ FormBox[ RowBox[{"l", "=", " ", RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], "m"}], "\[RightFloor]"}], "-", " ", RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], "v"}], "\[RightFloor]"}]}]}], TraditionalForm]]], ". Note ", Cell[BoxData[ FormBox["l", TraditionalForm]]], " is roughly between one fourth and one half bit length of ", Cell[BoxData[ FormBox["m", TraditionalForm]]], " (Specifically: ", Cell[BoxData[ FormBox[ RowBox[{" ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], "m"}], "\[RightFloor]"}], "/", "4"}], "-", "3"}], "<", "l", "<", RowBox[{ RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], "m"}], "\[RightFloor]"}], "/", "2"}], "+", "3"}]}]}], TraditionalForm]]], "). Proceed to step 7." }], "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["HGCD algorithm", "Section"], Cell[TextData[{ "Step 7: Write ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"(", GridBox[{ {"v"}, {"w"} }], ")"}], "=", RowBox[{"(", "\[NegativeThinSpace]", GridBox[{ { RowBox[{ RowBox[{ SuperscriptBox["2", "l"], " ", SubscriptBox["f", "2"]}], "+", SubscriptBox["f", "3"]}]}, { RowBox[{ RowBox[{ SuperscriptBox["2", "l"], " ", SubscriptBox["g", "2"]}], "+", SubscriptBox["g", "3"]}]} }], "\[NegativeThinSpace]", ")"}]}], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{" ", RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], SubscriptBox["f", "2"]}], "\[RightFloor]"}], "=", RowBox[{ RowBox[{"\[LeftFloor]", RowBox[{ SubscriptBox["log", "2"], "v"}], "\[RightFloor]"}], "-", "l"}]}]}], TraditionalForm]]], ". Can show: ", Cell[BoxData[ FormBox[ SubscriptBox["f", "2"], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ SubscriptBox["g", "2"], TraditionalForm]]], " are no larger than ", Cell[BoxData[ FormBox[ RowBox[{"O", "(", SqrtBox["m"], ")"}], TraditionalForm]]], ".\nAs in step 2, recursively compute ", Cell[BoxData[ FormBox[ RowBox[{"HGCD", "(", GridBox[{ { SubscriptBox["f", "2"]}, { SubscriptBox["g", "2"]} }], ")"}], TraditionalForm]]], ". As in steps 3 and 4, obtain transformation matrix ", Cell[BoxData[ FormBox["S", TraditionalForm]]], ", and consecutive pair ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ { SubscriptBox["v", "j"]}, { SubscriptBox["v", RowBox[{"j", "+", "1"}]]} }], ")"}], TraditionalForm]]], " in remainder sequence for ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"m"}, {"n"} }], ")"}], TraditionalForm]]], ", with ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "j"], ">", SubscriptBox["v", RowBox[{"j", "+", "1"}]], "\[GreaterEqual]", "0"}], TraditionalForm]]], ". If ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["v", "j"], "\[LessEqual]", RowBox[{ SuperscriptBox["2", RowBox[{"l", "-", "2"}]], " ", SqrtBox[ SubscriptBox["f", "2"]]}]}], TraditionalForm]]], " . If necessary, do a single reverse Euclidean step to get previous \ consecutive pair in the sequence. At this point we have a consecutive pair, \ call it ", Cell[BoxData[ FormBox[ RowBox[{"(", GridBox[{ {"x"}, {"y"} }], ")"}], TraditionalForm]]], ". Theory guarantees ", Cell[BoxData[ FormBox[ RowBox[{"y", "<", RowBox[{ SuperscriptBox["2", RowBox[{"l", "+", "2"}]], " ", SqrtBox[ SubscriptBox["f", "2"]]}]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{"x", ">", RowBox[{ SuperscriptBox["2", RowBox[{"l", "-", "2"}]], " ", SqrtBox[ SubscriptBox["f", "2"]]}]}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "Step 8: We know ", Cell[BoxData[ FormBox[ SubscriptBox["f", "2"], TraditionalForm]]], " is within a factor of ", Cell[BoxData[ FormBox["2", TraditionalForm]]], " of ", Cell[BoxData[ FormBox[ RowBox[{ SuperscriptBox["2", RowBox[{"-", "l"}]], "v"}], TraditionalForm]]], " , so ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ RowBox[{ SuperscriptBox["2", "l"], " ", SqrtBox[ SubscriptBox["f", "2"]]}], "\[TildeTilde]", RowBox[{ SuperscriptBox["2", RowBox[{"l", "/", "2"}]], " ", SqrtBox["v"]}], "\[TildeTilde]", RowBox[{ SqrtBox[ FractionBox["m", "v"]], " ", SqrtBox["v"]}]}], "=", SqrtBox["m"]}], TraditionalForm]]], " (approximation from first to last is within a factor of ", Cell[BoxData[ FormBox["2", TraditionalForm]]], " ). Inequalities from step 7 imply ", Cell[BoxData[ FormBox[ RowBox[{"y", "<", RowBox[{"8", " ", SqrtBox["m"]}]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{"x", ">", RowBox[{ SqrtBox["m"], "/", "8"}]}], TraditionalForm]]], ". With limited number of Euclidean steps, or reversals thereof, we obtain \ the consecutive pair in the remainder sequence that straddles ", Cell[BoxData[ FormBox[ SqrtBox["m"], TraditionalForm]]], ", and the transformation matrix that gives this pair." }], "Text"], Cell["\<\ While this is a bit intricate, it seems simpler than any other version I have \ seen that enforces the \"straddle the half\[Hyphen]size\" condition. This in \ turn is important for a simple coding of rational recovery.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Example to demonstrate speed", "Section"], Cell[BoxData[ RowBox[{ RowBox[{"fibs", "=", RowBox[{"{", RowBox[{ RowBox[{"Fibonacci", "[", RowBox[{"10", "^", "7"}], "]"}], ",", RowBox[{"Fibonacci", "[", RowBox[{ RowBox[{"10", "^", "7"}], "+", "1"}], "]"}]}], "}"}]}], ";"}]], "Input"], Cell["These have about two million digits:", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Log", "[", RowBox[{"10.", ",", RowBox[{"fibs", "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}]], "Input"], Cell[BoxData["2.0898760530147848`*^6"], "Output"] }, Open ]], Cell["\<\ We'll take gcd (regular and extended) to get some idea of the speed of this \ method. This is done on a 3 GHz machine under Linux, using a \ not\[Hyphen]terribly\[Hyphen]optimized GMP installation for the bignum \ arithmetic.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{"Timing", "[", RowBox[{ RowBox[{"gcd", "=", RowBox[{"Apply", "[", RowBox[{"GCD", ",", "fibs"}], "]"}]}], ";"}], "]"}], "\[IndentingNewLine]", RowBox[{"Timing", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"gcd2", ",", "mults"}], "}"}], "=", RowBox[{"Apply", "[", RowBox[{"ExtendedGCD", ",", "fibs"}], "]"}]}], ";"}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mults", ".", "fibs"}], "\[Equal]", "gcd", "\[Equal]", "gcd2", "==", "1"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"41.051759`", " ", "Second"}], ",", "Null"}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"52.057087`", " ", "Second"}], ",", "Null"}], "}"}]], "Output"], Cell[BoxData["True"], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Example to demonstrate speed", "Section"], Cell["\<\ We contrast this to the time it takes just to multiply this pair.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Timing", "[", RowBox[{ RowBox[{"product", "=", RowBox[{"Apply", "[", RowBox[{"Times", ",", "fibs"}], "]"}]}], ";"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"1.3627920000000044`", " ", "Second"}], ",", "Null"}], "}"}]], "Output"] }, Open ]], Cell[TextData[{ "Note that with ", Cell[BoxData[ FormBox["2000000", TraditionalForm]]], " digit inputs, we expect the ratio between multiplication and \ HGCD\[Hyphen]based gcd to be, roughly, a factor of ", Cell[BoxData[ FormBox[ RowBox[{"log", "(", "2000000", ")"}], TraditionalForm]]], " (using base of ", Cell[BoxData[ FormBox["2", TraditionalForm]]], ", since this is a divide\[Hyphen]and\[Hyphen]conquer algorithm)." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"41.", "/", RowBox[{"Log", "[", RowBox[{"2.", ",", RowBox[{"Log", "[", RowBox[{"2.", ",", RowBox[{"First", "[", "fibs", "]"}]}], "]"}]}], "]"}]}]], "Input"], Cell[BoxData["1.8040211088053746`"], "Output"] }, Open ]], Cell["This indicates that the speed is in the expected ballpark.", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Rational recovery", "Section"], Cell[TextData[{ "Because HGCD brings us right to the middle pair in a remainder sequence, it \ is ideally suited for recovery of rationals from ", Cell[BoxData[ FormBox["p", TraditionalForm]], FontSlant->"Italic"], "\[Hyphen]adic", StyleBox[" ", FontSlant->"Italic"], "images. The method is explained in detail in the text by von zur Gathen and \ Gerhard. Given a prime power ", Cell[BoxData[ FormBox[ SuperscriptBox["p", "k"], TraditionalForm]]], " and a smaller nonnegative integer ", Cell[BoxData[ FormBox["x", TraditionalForm]]], " not divisible by ", Cell[BoxData[ FormBox["p", TraditionalForm]]], ", we can obtain a rational ", Cell[BoxData[ FormBox[ RowBox[{"a", "/", "b"}], TraditionalForm]]], " equivalent to ", Cell[BoxData[ FormBox["x", TraditionalForm]]], " modulo ", Cell[BoxData[ FormBox[ SuperscriptBox["p", "k"], TraditionalForm]]], " with both numerator and denominator smaller than the square root of the \ prime power. It is obtained directly from the ", Cell[BoxData[ FormBox["HGCD", TraditionalForm]]], " matrix and middle pair given by ", Cell[BoxData[ FormBox[ RowBox[{"HGCD", "(", GridBox[{ { SuperscriptBox["p", "k"]}, {"x"} }], ")"}], TraditionalForm]]], "." }], "Text"], Cell[TextData[{ "To summarize, we have a matrix ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["R", "j"], "=", RowBox[{"(", GridBox[{ { SubscriptBox["s", "j"], SubscriptBox["t", "j"]}, { SubscriptBox["s", RowBox[{"j", "+", "1"}]], SubscriptBox["t", RowBox[{"j", "+", "1"}]]} }], ")"}]}], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["R", "j"], " ", RowBox[{"(", GridBox[{ { SuperscriptBox["p", "k"]}, {"x"} }], ")"}]}], "=", RowBox[{"(", GridBox[{ {"u"}, {"v"} }], ")"}]}], TraditionalForm]]], ". We have ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"{", RowBox[{"v", ",", SubscriptBox["t", RowBox[{"j", "+", "1"}]]}], "}"}], "<", SqrtBox[ SuperscriptBox["p", "k"]]}], TraditionalForm]]], " and ", Cell[BoxData[ FormBox[ RowBox[{ FractionBox["v", SubscriptBox["t", RowBox[{"j", "+", "1"}]]], SubscriptBox["\[Congruent]", SuperscriptBox["p", "k"]], "x"}], TraditionalForm]]], " because ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ RowBox[{ SubscriptBox["s", RowBox[{"j", "+", "1"}]], " ", SuperscriptBox["p", "k"]}], "+", RowBox[{ SubscriptBox["t", RowBox[{"j", "+", "1"}]], " ", "x"}]}], "=", "v"}], TraditionalForm]]], ". Thus we have our desired rational." }], "Text"], Cell[TextData[{ "The ", StyleBox["Mathematica", FontSlant->"Italic"], " code below will do this recovery given the input pair ", Cell[BoxData[ FormBox[ RowBox[{"{", RowBox[{"x", ",", SuperscriptBox["p", "k"]}], "}"}], TraditionalForm]]], "." }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"rationalRecover", "[", RowBox[{"x_", ",", "pk_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"#", "[", RowBox[{"[", RowBox[{"2", ",", "2"}], "]"}], "]"}], "/", RowBox[{"#", "[", RowBox[{"[", RowBox[{"1", ",", "2", ",", "2"}], "]"}], "]"}]}], ")"}], "&"}], ")"}], "[", RowBox[{"Internal`HGCD", "[", RowBox[{"pk", ",", "x"}], "]"}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"rationalRecover", "[", RowBox[{"111122223333444455556666777788889999", ",", SuperscriptBox[ RowBox[{"Prime", "[", "222", "]"}], "17"]}], "]"}]], "Input"], Cell[BoxData[ FractionBox["226563468288751478292482603", "350240101969175888689266729"]], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Rational recovery", "Section"], Cell["\<\ It is not hard to code the pedestrian approach, using the usual Euclidean \ algorithm to work down to where we first get below half the size of the \ second input.\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"rationalRecover2", "[", RowBox[{"a_", ",", "b_"}], "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"mat", ",", RowBox[{"aa", "=", "a"}], ",", RowBox[{"bb", "=", "b"}], ",", RowBox[{"cc", "=", "1"}], ",", RowBox[{"dd", "=", "0"}], ",", "quo"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"mat", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"bb", ",", "dd"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"While", "[", RowBox[{ RowBox[{ RowBox[{"Abs", "[", "aa", "]"}], "\[GreaterEqual]", RowBox[{"Sqrt", "[", "b", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"quo", "=", RowBox[{"Quotient", "[", RowBox[{"bb", ",", "aa"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"aa", ",", "cc"}], "}"}], ",", RowBox[{"{", RowBox[{"bb", ",", "dd"}], "}"}]}], "}"}], "=", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"bb", ",", "dd"}], "}"}], "-", RowBox[{"quo", "*", RowBox[{"{", RowBox[{"aa", ",", "cc"}], "}"}]}]}], ",", RowBox[{"{", RowBox[{"aa", ",", "cc"}], "}"}]}], "}"}]}], ";"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"aa", "/", "cc"}]}]}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"rationalRecover2", "[", RowBox[{"111122223333444455556666777788889999", ",", SuperscriptBox[ RowBox[{"Prime", "[", "222", "]"}], "17"]}], "]"}]], "Input"], Cell[BoxData[ FractionBox["226563468288751478292482603", "350240101969175888689266729"]], "Output"] }, Open ]], Cell["Yet another method involves lattice reduction.", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"rationalRecover3", "[", RowBox[{"n_", ",", "pq_"}], "]"}], ":=", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], "/", RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}]}], "&"}], ")"}], "[", RowBox[{"First", "[", RowBox[{"LatticeReduce", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"n", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"pq", ",", "0"}], "}"}]}], "}"}], "]"}], "]"}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"rationalRecover3", "[", RowBox[{"111122223333444455556666777788889999", ",", SuperscriptBox[ RowBox[{"Prime", "[", "222", "]"}], "17"]}], "]"}]], "Input"], Cell[BoxData[ FractionBox["226563468288751478292482603", "350240101969175888689266729"]], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Speed of rational recovery on a larger example", "Section"], Cell["We'll try a larger example to illustrate speed.", "Text"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"v1", ",", "v2"}], "}"}], "=", RowBox[{"{", RowBox[{ RowBox[{"Random", "[", RowBox[{"Integer", ",", RowBox[{ RowBox[{"Prime", "[", "11111", "]"}], "^", "2222"}]}], "]"}], ",", RowBox[{ RowBox[{"Prime", "[", "11111", "]"}], "^", "2222"}]}], "}"}]}], ";"}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"ByteCount", "[", "v2", "]"}]], "Input"], Cell[BoxData["4704"], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Timing", "[", RowBox[{ RowBox[{"rat", "=", RowBox[{"rationalRecover", "[", RowBox[{"v1", ",", "v2"}], "]"}]}], ";"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"0.023995999999995264`", " ", "Second"}], ",", "Null"}], "}"}]], "Output"] }, Open ]], Cell["Check the result:", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Mod", "[", RowBox[{ RowBox[{ RowBox[{"Numerator", "[", "rat", "]"}], "-", RowBox[{"v1", "*", RowBox[{"Denominator", "[", "rat", "]"}]}]}], ",", "v2"}], "]"}]], "Input"], Cell[BoxData["0"], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Timing", "[", RowBox[{ RowBox[{"rat2", "=", RowBox[{"rationalRecover2", "[", RowBox[{"v1", ",", "v2"}], "]"}]}], ";"}], "]"}]], "Input", FontColor->RGBColor[0, 0, 1]], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"17.353361999999994`", " ", "Second"}], ",", "Null"}], "}"}]], "Output", FontColor->RGBColor[0, 0, 1]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Timing", "[", RowBox[{ RowBox[{"rat3", "=", RowBox[{"rationalRecover3", "[", RowBox[{"v1", ",", "v2"}], "]"}]}], ";"}], "]"}]], "Input", FontColor->RGBColor[0.5, 0, 0.5]], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"210.43500799999998`", " ", "Second"}], ",", "Null"}], "}"}]], "Output", FontColor->RGBColor[0.5, 0, 0.5]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"rat", "==", "rat2", "==", "rat3"}]], "Input"], Cell[BoxData["True"], "Output"] }, Open ]], Cell["\<\ Where the fast version is particularly important is in doing linear algebra \ over the rationals. As dimension increases, so (typically) do sizes of \ resulting numbers. Hence asymptotically fast recovery is quite useful in \ order to keep that step from being a bottleneck in the process. Other tactics \ may be found in work by Chen and Storjohann from this conference.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Planar lattice reduction", "Section"], Cell[TextData[{ "Suppose we have a 2x2 integral matrix ", Cell[BoxData[ FormBox[ RowBox[{"M", "=", RowBox[{"(", "\[NegativeThinSpace]", GridBox[{ {"a", "b"}, {"c", "d"} }], "\[NegativeThinSpace]", ")"}]}], TraditionalForm]]], " where we regard the rows as generating a lattice in ", Cell[BoxData[ FormBox[ SuperscriptBox["\[DoubleStruckCapitalZ]", "2"], TraditionalForm]]], ". The goal is to find a reduced form, that is, a unimodular multiplier \ matrix ", Cell[BoxData[ FormBox["A", TraditionalForm]]], " such that ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{"A", " ", "M"}], "=", "L"}], TraditionalForm]]], " where ", Cell[BoxData[ FormBox["L", TraditionalForm]]], " is the lattice reduced form of ", Cell[BoxData[ FormBox["M", TraditionalForm]]], "." }], "Text"], Cell["\<\ We already saw an example where lattice reduction of a certain 2x2 matrix \ gave a result equivalent to HGCD (it can be proven that that will always work \ for rational recovery, given to certain size hypotheses). Here we want to go \ in the reverse direction, and apply HGCD\[Hyphen]like methods to reduce a \ lattice. The literature on this topic contains needed theorems; we simply \ show the idea of a method for the purpose at hand.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Planar lattice reduction", "Section"], Cell["\<\ What is illustrated below appears to be essentially the same as the method \ developed by Eisenbrand a few years ago.\ \>", "Text"], Cell[TextData[{ "Step 1. Put ", Cell[BoxData[ FormBox["M", TraditionalForm]]], " into Hermite normal form. As is well known, this uses the extended gcd \ algorithm, hence (for large inputs) amounts to a few HGCD invocations. We \ obtain ", Cell[BoxData[ FormBox[ RowBox[{ SubscriptBox["M", "1"], "=", RowBox[{"(", "\[NegativeThinSpace]", GridBox[{ {"g", "j"}, {"0", "k"} }], "\[NegativeThinSpace]", ")"}]}], TraditionalForm]]], " (where ", Cell[BoxData[ FormBox[ RowBox[{"g", "=", RowBox[{"gcd", "(", RowBox[{"a", ",", "c"}], ")"}]}], TraditionalForm]]], ") and a unimodular transformation matrix ", Cell[BoxData[ FormBox[ SubscriptBox["A", "1"], TraditionalForm]]], " with ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["A", "1"], "M"}], "=", SubscriptBox["M", "1"]}], TraditionalForm]]], "." }], "Text"], Cell["\<\ Step 2. See if this is lattice reduced. If so, we are finished. If not, we \ now have a \"small\" element in the upper left and a zero beneath it. Thus it \ makes sense to work on the second column.\ \>", "Text"], Cell[TextData[{ "Step 3. Find ", Cell[BoxData[ FormBox[ RowBox[{"HGCD", RowBox[{"(", RowBox[{"j", ",", "k"}], ")"}]}], TraditionalForm]]], ". Use the multiplier matrix ", Cell[BoxData[ FormBox[ SubscriptBox["A", "2"], TraditionalForm]]], " to form ", Cell[BoxData[ FormBox[ RowBox[{ RowBox[{ SubscriptBox["A", "2"], SubscriptBox["A", "1"], "M"}], "=", RowBox[{ RowBox[{ SubscriptBox["A", "2"], SubscriptBox["M", "1"]}], "=", RowBox[{"(", "\[NegativeThinSpace]", GridBox[{ {"s", "m"}, {"t", "n"} }], "\[NegativeThinSpace]", ")"}]}]}], TraditionalForm]]], "." }], "Text"], Cell["\<\ Step 4. We now have a short vector. If the second vector is not short we can \ reduce it using Euclidean steps (this method of reducing planar vectors is \ due to Gauss). Since we divide by an element in the short vector, the number \ of such steps is bounded.\ \>", "Text"], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Planar lattice reduction example", "Section"], Cell["\<\ We start with a matrix for which we know a small row exists. We will \ explicitly form the reduced lattice and observe sizes of its elements.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"SeedRandom", "[", "1111", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"row", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Random", "[", RowBox[{"Integer", ",", RowBox[{"{", RowBox[{ RowBox[{"-", RowBox[{"10", "^", "100"}]}], ",", RowBox[{"10", "^", "100"}]}], "}"}]}], "]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"lat", "=", RowBox[{"{", RowBox[{"row", ",", RowBox[{"row", "+", RowBox[{"{", RowBox[{ RowBox[{"10", "^", "10"}], ",", RowBox[{"10", "^", "20"}]}], "}"}]}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"redlat", "=", RowBox[{"LatticeReduce", "[", "lat", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Log", "[", RowBox[{"10.", ",", RowBox[{"Abs", "[", "lat", "]"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"Log", "[", RowBox[{"10.", ",", RowBox[{"Abs", "[", "redlat", "]"}]}], "]"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"99.99371042098296`", ",", "99.82549711976564`"}], "}"}], ",", RowBox[{"{", RowBox[{"99.99371042098296`", ",", "99.82549711976564`"}], "}"}]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"9.999999999999998`", ",", "19.999999999999996`"}], "}"}], ",", RowBox[{"{", RowBox[{"99.99371042095348`", ",", "89.99371042095348`"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"a0", ",", "hnf"}], "}"}], "=", RowBox[{"Developer`HermiteNormalForm", "[", "lat", "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Log", "[", RowBox[{"10.", ",", RowBox[{"Abs", "[", RowBox[{"{", RowBox[{"a0", ",", "hnf"}], "}"}], "]"}]}], "]"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"98.83044846321575`", ",", "98.83044846321575`"}], "}"}], ",", RowBox[{"{", RowBox[{"99.99371042098296`", ",", "99.99371042098296`"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0.`", ",", "118.83044846318626`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "\[Infinity]"}], ",", "119.99371042095349`"}], "}"}]}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"a1", ",", "col2"}], "}"}], "=", RowBox[{"Internal`HGCD", "[", RowBox[{"Apply", "[", RowBox[{"Sequence", ",", RowBox[{"hnf", "[", RowBox[{"[", RowBox[{"All", ",", "2"}], "]"}], "]"}]}], "]"}], "]"}]}], ";"}]], "Input"], Cell["We check that this is correct.", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"a1", ".", RowBox[{"hnf", "[", RowBox[{"[", RowBox[{"All", ",", "2"}], "]"}], "]"}]}], "==", "col2"}]], "Input"], Cell[BoxData["True"], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Planar lattice reduction example", "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"lattoo", "=", RowBox[{"a1", ".", "a0", ".", "lat"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1690297741"}], ",", "985622073004769440163238889835941088945000693189328112183319331568025056\ 39031591298243692275868793220380069225"}], "}"}], ",", RowBox[{"{", RowBox[{"10000000000", ",", "100000000000000000000"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ We see that we have recovered the short vector from the known reduced form.\ \>", "Text"], Cell["\<\ But now we can take a quotient, form a multiplier matrix similar to that used \ in HGCD, and obtain a reduction of the \"large\" vector.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"q", "=", RowBox[{"Quotient", "[", RowBox[{ RowBox[{"lattoo", "[", RowBox[{"[", RowBox[{"1", ",", "2"}], "]"}], "]"}], ",", RowBox[{"lattoo", "[", RowBox[{"[", RowBox[{"2", ",", "2"}], "]"}], "]"}]}], "]"}]}]], "Input"], Cell[BoxData[\ "98562207300476944016323888983594108894500069318932811218331933156802505639031\ 5912982436922"], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Planar lattice reduction example", "Section"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"a2", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "q"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"latthree", "=", RowBox[{"a2", ".", "lattoo"}]}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "-", "9856220730047694401632388898359410889450006931893281121833193315680\ 250563903159129824369221690297741"}], ",", "75868793220380069225"}], "}"}], ",", RowBox[{"{", RowBox[{"10000000000", ",", "100000000000000000000"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Now check that the transformations are unimodular, and get the sizes of the \ elements in the reduced lattice.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"mult", "=", RowBox[{"a2", ".", "a1", ".", "a2"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Det", "[", "mult", "]"}], "\[IndentingNewLine]", RowBox[{"Log", "[", RowBox[{"10.", ",", RowBox[{"Abs", "[", "latthree", "]"}]}], "]"}]}], "Input"], Cell[BoxData[ RowBox[{"-", "1"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"99.99371042095348`", ",", "19.880063176170324`"}], "}"}], ",", RowBox[{"{", RowBox[{"9.999999999999998`", ",", "19.999999999999996`"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Summary", "Section"], Cell["\<\ We have seen a rich history of the HGCD algorithm. The major actors in this \ play are largely of illustrious status in computational mathematics (I'm \ trying not to drastically damage this chain). Various applications make this \ all the more of interest to computational math.\ \>", "Text"], Cell["The method we presented has several virtues:", "Text"], Cell["Provably fast.", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[1, 0, 1]], Cell["Provably correct.", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[0, 0, 1]], Cell["Reasonably straightforward in regards to fixup steps.", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[0.6, 0.4, 0.2]], Cell["Can be applied immediately to rational recovery.", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[0.5, 0, 0.5]], Cell["\<\ Can be applied to reduction of planar lattices such as are given by binary \ quadratic forms.\ \>", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[1, 0.5, 0]], Cell["\<\ Faster extended gcd\[DoubleLongRightArrow]faster Hermite form\ \[DoubleLongRightArrow]faster linear diophantine solving. This carries over \ to nonlinear algebra (over rationals and integers), because it can enhance \ speed of Gr\[ODoubleDot]bner basis computations over both domains.\ \>", "Text", CellDingbat->"\[FilledSmallCircle]", FontColor->RGBColor[1, 0, 0]], Cell["", "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[Cell[BoxData[GridBox[{ { ButtonBox[ StyleBox["\[FirstPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageFirst"]}]& ), ButtonNote->"First Slide"], ButtonBox[ StyleBox["\[LeftPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPagePrevious"]}]& ), ButtonNote->"Previous Slide"], ButtonBox[ StyleBox["\[RightPointer]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageNext"]}]& ), ButtonNote->"Next Slide"], ButtonBox[ StyleBox["\[LastPage]", "SR"], DefaultStyle -> "SlideHyperlink", ButtonFunction:>(FrontEndExecute[{ FrontEndToken[ FrontEnd`SelectedNotebook[], "ScrollPageLast"]}]& )], " ", ButtonBox[ StyleBox[ RowBox[{ CounterBox["SlideShowNavigationBar"], " ", "of", " ", CounterBox["SlideShowNavigationBar", {None, "SlideShowHeader", -1}]}], "SR"], Appearance->{Automatic, None}]} }]]]], "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell["Selected references", "Section"], Cell[TextData[{ "A. V. Aho, J. E. Hopcroft, and J. D. Ullman. ", StyleBox["The Design and Analysis of Computer Algorithms", FontSlant->"Italic"], ". Addison\[Hyphen]Wesley Publishing Company, Reading Massachussetts, 1974." }], "SmallText", PageBreakAbove->Automatic], Cell["\<\ Z. Chen and A. Storjohann. A BLAS based C library for exact linear algebra on \ integer matrices. These proceedings, 2005.\ \>", "SmallText", CellTags->"Chen Storjohann"], Cell[TextData[{ "F. Eisenbrand. Short vectors of planar lattices via continued fractions. \ Information Processing Letters ", StyleBox["79", FontWeight->"Bold"], " 121\[Hyphen]126, 2001" }], "SmallText", PageBreakAbove->Automatic], Cell[TextData[{ "J. von zur Gathen and J. Gerhard. ", StyleBox["Modern Computer Algebra", FontSlant->"Italic"], ". Cambridge University Press, 1999." }], "SmallText", PageBreakAbove->Automatic], Cell["\<\ R. T. Moenck. Fast computation of GCDs. Proceedings of the 5th ACM Annual \ Symposium on Theory of Computing. 142\[Hyphen]151. ACM Press, New York City, \ 1973.\ \>", "SmallText", PageBreakAbove->Automatic], Cell["\<\ N. M\[ODoubleDot]ller. On Sch\[ODoubleDot]nhage's algorithm and subquadratic \ integer gcd computation.Submitted, 2005.\ \>", "SmallText"], Cell["\<\ V. Y. Pan and X. Wang. Acceleration of Euclidean algorithm and extensions. \ Proceedings of the 2002 International Symposium on Symbolic and Algebraic \ Computation (ISSAC 2002). 207\[Hyphen]213. ACM Press, New York City, 2002.\ \>", "SmallText", PageBreakAbove->Automatic], Cell["\<\ T. Sasaki, Y. Takahashi, and T. Sugimoto. A \ divide\[Hyphen]and\[Hyphen]conquer method for \ integer\[Hyphen]to\[Hyphen]rational conversion. Proceedings of the Symposium \ in Honor of Bruno Buchberger's 60th Birthday (Logic, Mathematics and Computer \ Science: Interactions). October 20-22, 2002, RISC-Linz, Castle of Hagenberg, \ Austria. 231\[Hyphen]243. 2002.\ \>", "SmallText", PageBreakAbove->Automatic], Cell[TextData[{ "A. Sch\[ODoubleDot]nhage. Schnelle Berechnung von Kettenbruchentwicklungen. \ Acta Informatica ", StyleBox["1", FontWeight->"Bold"], " 139\[Hyphen]144, 1971." }], "SmallText", PageBreakAbove->Automatic], Cell["\<\ D. Stehl\[EAcute] and P. Zimmermann. A binary recursive GCD algorithm. \ Rapport de recherche INRIA 5050, 2003. Published in: Proceedings of the 6th \ Algorithmic Number Theory Symposium (ANTS VI), 2004, D. Buell ed. \ 411\[Hyphen]425. LCNS 3076. 2004.\ \>", "SmallText", PageBreakAbove->Automatic], Cell["\<\ K. Thull and C. K. Yap. A unified approach to HGCD algorithms for polynomials \ and integers. Manuscript, 1990. Available at: http://cs.nyu.edu/cs/faculty/yap/allpapers.html\ \>", "SmallText", PageBreakAbove->Automatic] }, Open ]] }, Open ]] }, ScreenStyleEnvironment->"SlideShow", PrintingStyleEnvironment->"Working", Evaluator->"Local", WindowSize->{966, 722}, WindowMargins->{{Automatic, 0}, {Automatic, 0}}, ScrollingOptions->{"PagewiseDisplay"->True}, PrintingPageRange->{Automatic, Automatic}, PrintingOptions->{"Magnification"->1., "PaperOrientation"->"Portrait", "PaperSize"->{594.25, 840.5}, "PostScriptOutputFile"->"/home/usr2/danl/Notebooks/knapsack_talk.nb.ps", "PrintCellBrackets"->False, "PrintMultipleHorizontalPages"->False, "PrintRegistrationMarks"->False, "PrintingMargins"->{{43.1875, 43.1875}, {57.5625, 64.75}}}, ShowSelection->True, FrontEndVersion->"7.0 for Linux x86 (64-bit) (February 25, 2009)", StyleDefinitions->Notebook[{ Cell[ CellGroupData[{ Cell["Generic Conference StyleSheet", "Title"], Cell[ "Modify the definitions below to change the default appearance of all \ cells in a given style. Make modifications to any definition using commands \ in the Format menu.", "Text"]}, Open]], Cell[ CellGroupData[{ Cell["Style Environment Names", "Section"], Cell[ StyleData[All, "Working"], PageWidth -> WindowWidth, CellBracketOptions -> {"Color" -> RGBColor[0.269993, 0.308507, 0.6]}, CellLabelMargins -> {{12, Inherited}, {Inherited, Inherited}}, ScriptMinSize -> 9], Cell[ StyleData[All, "Presentation"], PageWidth -> WindowWidth, CellLabelMargins -> {{24, Inherited}, {Inherited, Inherited}}, ScriptMinSize -> 12], Cell[ StyleData[All, "SlideShow"], PageWidth -> WindowWidth, ScrollingOptions -> { "PagewiseDisplay" -> True, "VerticalScrollRange" -> Fit}, ShowCellBracket -> False, ScriptMinSize -> 9], Cell[ StyleData[All, "Printout"], PageWidth -> PaperWidth, CellLabelMargins -> {{2, Inherited}, {Inherited, Inherited}}, ScriptMinSize -> 5, PrivateFontOptions -> {"FontType" -> "Outline"}]}, Open]], Cell[ CellGroupData[{ Cell["Notebook Options", "Section"], Cell[ "The options defined for the style below will be used at the Notebook \ level.", "Text"], Cell[ StyleData["Notebook"], PageHeaders -> {{ Cell[ TextData[{ CounterBox["Page"]}], "PageNumber"], None, Cell[ TextData[{ ValueBox["FileName"]}], "Header"]}, { Cell[ TextData[{ ValueBox["FileName"]}], "Header"], None, Cell[ TextData[{ CounterBox["Page"]}], "PageNumber"]}}, CellFrameLabelMargins -> 6, StyleMenuListing -> None]}, Closed]], Cell["Styles for Headings", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Title"], CellMargins -> {{19, Inherited}, {10, 30}}, CellGroupingRules -> {"TitleGrouping", 0}, PageBreakBelow -> False, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing -> {1, 11}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Title", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, { "Figure", 0}, {"Subtitle", 0}, {"Subsubtitle", 0}}, FontFamily -> "Times", FontSize -> 36, FontWeight -> "Bold", FontSlant -> "Italic", FontColor -> RGBColor[0.286275, 0.294118, 0.627451]], Cell[ StyleData["Title", "Presentation"], CellMargins -> {{19, 50}, {10, 30}}, LineSpacing -> {1, 0}], Cell[ StyleData["Title", "SlideShow"], CellMargins -> {{19, 50}, {10, 80}}], Cell[ StyleData["Title", "Printout"], CellMargins -> {{19, 10}, {12, 30}}, FontSize -> 24, FontColor -> GrayLevel[0]]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["Subtitle"], CellMargins -> {{19, Inherited}, {20, 2}}, CellGroupingRules -> {"TitleGrouping", 10}, PageBreakBelow -> False, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Subtitle", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, { "Figure", 0}, {"Subsubtitle", 0}}, FontFamily -> "Verdana", FontSize -> 24], Cell[ StyleData["Subtitle", "Presentation"], CellMargins -> {{19, 50}, {20, 2}}, LineSpacing -> {1, 0}, FontSize -> 36], Cell[ StyleData["Subtitle", "SlideShow"], CellMargins -> {{19, 50}, {30, 2}}], Cell[ StyleData["Subtitle", "Printout"], CellMargins -> {{19, 10}, {12, 8}}, FontSize -> 18]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subsubtitle"], CellMargins -> {{19, Inherited}, {8, 2}}, CellGroupingRules -> {"TitleGrouping", 20}, PageBreakBelow -> False, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Subsubtitle", CounterAssignments -> {{"Section", 0}, {"Equation", 0}, {"Figure", 0}}, StyleMenuListing -> None, FontFamily -> "Verdana", FontSize -> 16], Cell[ StyleData["Subsubtitle", "Presentation"], CellMargins -> {{19, 10}, {20, 20}}, LineSpacing -> {1, 0}, FontSize -> 24], Cell[ StyleData["Subsubtitle", "SlideShow"], CellMargins -> {{19, 25}, {30, 10}}], Cell[ StyleData["Subsubtitle", "Printout"], CellMargins -> {{19, 10}, {12, 8}}, FontSize -> 14]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Section"], CellFrame -> {{0, 0}, {1, 0}}, CellMargins -> {{0, 0}, {15, 0}}, CellGroupingRules -> {"SectionGrouping", 30}, PageBreakBelow -> False, CellFrameMargins -> {{18, 0}, {15, 10}}, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing -> {1, 2}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Section", CounterAssignments -> {{"Subsection", 0}, {"Subsubsection", 0}}, FontFamily -> "Verdana", FontSize -> 20, FontWeight -> "Bold", FontColor -> RGBColor[0.286275, 0.294118, 0.627451], Background -> GrayLevel[0.833326]], Cell[ StyleData["Section", "Presentation"], LineSpacing -> {1, 0}, FontSize -> 20], Cell[ StyleData["Section", "SlideShow"], CellFrame -> {{0, 0}, {1, 0}}, CellMargins -> {{0, 0}, {5, 0}}, CellFrameMargins -> {{18, 0}, {5, 5}}, Background -> GrayLevel[0.833326]], Cell[ StyleData["Section", "Printout"], CellFrame -> False, CellMargins -> {{8, 0}, {0, 0}}, CellFrameMargins -> False, FontSize -> 20, FontWeight -> "Bold", Background -> GrayLevel[0.933326]]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["Subsection"], CellMargins -> {{20, Inherited}, {8, 12}}, CellGroupingRules -> {"SectionGrouping", 40}, PageBreakBelow -> False, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Subsection", CounterAssignments -> {{"Subsubsection", 0}}, FontFamily -> "\ Verdana", FontSize -> 16, FontWeight -> "Bold", FontColor -> RGBColor[0.286275, 0.294118, 0.627451]], Cell[ StyleData["Subsection", "Presentation"], CellMargins -> {{20, 50}, {8, 12}}, LineSpacing -> {1, 0}, FontSize -> 22], Cell[ StyleData["Subsection", "SlideShow"], CellMargins -> {{20, 50}, {8, 12}}, LineSpacing -> {1, 0}], Cell[ StyleData["Subsection", "Printout"], CellMargins -> {{20, 0}, {8, 22}}, FontSize -> 12, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Subsubsection"], CellMargins -> {{20, Inherited}, {2, 10}}, CellGroupingRules -> {"SectionGrouping", 50}, PageBreakBelow -> False, DefaultNewInlineCellStyle -> "None", InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "Subsubsection", FontFamily -> "Verdana", FontWeight -> "Bold", FontColor -> RGBColor[0.286275, 0.294118, 0.627451]], Cell[ StyleData["Subsubsection", "Presentation"], CellMargins -> {{20, 50}, {6, 12}}, LineSpacing -> {1, 0}, FontSize -> 18], Cell[ StyleData["Subsubsection", "SlideShow"], CellMargins -> {{20, 50}, {6, 12}}], Cell[ StyleData["Subsubsection", "Printout"], CellMargins -> {{20, 0}, {7, 14}}, FontSize -> 11, FontColor -> GrayLevel[0]]}, Closed]], Cell[ RawData["Cell[\"Styles for Body Text\", \"Section\"]"], "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Text"], CellMargins -> {{18, 10}, {7, 7}}, InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, LineSpacing -> {1, 3}, CounterIncrements -> "Text", FontFamily -> "Times", FontSize -> 26], Cell[ StyleData["Text", "Presentation"], CellMargins -> {{18, 50}, {10, 10}}, LineSpacing -> {1, 5}, FontSize -> 22], Cell[ StyleData["Text", "SlideShow"], CellMargins -> {{18, 50}, {10, 10}}, FontSize -> 22], Cell[ StyleData["Text", "Printout"], CellMargins -> {{18, 2}, {6, 6}}, TextJustification -> 0.5, Hyphenation -> True, FontSize -> 18]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["SmallText"], CellMargins -> {{18, 10}, {6, 6}}, DefaultNewInlineCellStyle -> "None", LineSpacing -> {1, 3}, LanguageCategory -> "NaturalLanguage", CounterIncrements -> "SmallText", FontFamily -> "Times", FontSize -> 16], Cell[ StyleData["SmallText", "Presentation"], CellMargins -> {{24, 50}, {8, 8}}, LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["SmallText", "SlideShow"], LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["SmallText", "Printout"], CellMargins -> {{2, 2}, {5, 5}}, TextJustification -> 0.5, Hyphenation -> True, FontSize -> 14]}, Open]], Cell[ CellGroupData[{ Cell["Styles for Input/Output", "Section"], Cell[ "The cells in this section define styles used for input and output to \ the kernel. Be careful when modifying, renaming, or removing these styles, \ because the front end associates special meanings with these style names. \ Some attributes for these styles are actually set in FormatType Styles (in \ the last section of this stylesheet). ", "Text"]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["Input"], CellMargins -> {{54, 10}, {5, 7}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, DefaultFormatType -> DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, AutoItalicWords -> {}, LanguageCategory -> "Mathematica", FormatType -> InputForm, ShowStringCharacters -> True, NumberMarks -> True, LinebreakAdjustments -> {0.85, 2, 10, 0, 1}, CounterIncrements -> "Input", FontSize -> 16, FontWeight -> "Bold"], Cell[ StyleData["Input", "Presentation"], CellMargins -> {{54, 50}, {8, 10}}, LineSpacing -> {1, 0}, FontSize -> 20], Cell[ StyleData["Input", "SlideShow"], CellMargins -> {{54, 50}, {8, 10}}, LineSpacing -> {1, 0}, FontSize -> 20], Cell[ StyleData["Input", "Printout"], CellMargins -> {{54, 0}, {4, 6}}, LinebreakAdjustments -> {0.85, 2, 10, 1, 1}, FontSize -> 18]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["InputOnly"], CellMargins -> {{54, 10}, {7, 7}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", CellHorizontalScrolling -> True, DefaultFormatType -> DefaultInputFormatType, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, AutoItalicWords -> {}, LanguageCategory -> "Mathematica", FormatType -> InputForm, ShowStringCharacters -> True, NumberMarks -> True, LinebreakAdjustments -> {0.85, 2, 10, 0, 1}, CounterIncrements -> "Input", StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["InputOnly", "Presentation"], CellMargins -> {{54, Inherited}, {8, 10}}, LineSpacing -> {1, 0}, FontSize -> 16], Cell[ StyleData["InputOnly", "SlideShow"], CellMargins -> {{54, Inherited}, {8, 10}}, LineSpacing -> {1, 0}, FontSize -> 16], Cell[ StyleData["InputOnly", "Printout"], CellMargins -> {{54, 0}, {4, 6}}, LinebreakAdjustments -> {0.85, 2, 10, 1, 1}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Output"], CellMargins -> {{53, 10}, {7, 5}}, CellEditDuplicate -> True, CellGroupingRules -> "OutputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, DefaultFormatType -> DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> { "HyphenationCharacter" -> "\[Continuation]"}, AutoItalicWords -> {}, LanguageCategory -> None, FormatType -> InputForm, CounterIncrements -> "Output", FontSize -> 16], Cell[ StyleData["Output", "Presentation"], CellMargins -> {{53, 50}, {10, 8}}, LineSpacing -> {1, 0}, FontSize -> 20], Cell[ StyleData["Output", "SlideShow"], CellMargins -> {{53, 50}, {10, 8}}, LineSpacing -> {1, 0}, FontSize -> 20], Cell[ StyleData["Output", "Printout"], CellMargins -> {{53, 0}, {6, 4}}, FontSize -> 18]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["Message"], CellMargins -> {{54, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "OutputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, DefaultFormatType -> DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> { "HyphenationCharacter" -> "\[Continuation]"}, AutoItalicWords -> {}, LanguageCategory -> None, FormatType -> InputForm, CounterIncrements -> "Message", StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 10, FontColor -> RGBColor[0.6, 0.100008, 0.100008]], Cell[ StyleData["Message", "Presentation"], CellMargins -> {{54, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}, FontSize -> 14], Cell[ StyleData["Message", "SlideShow"], CellMargins -> {{54, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}, FontSize -> 14], Cell[ StyleData["Message", "Printout"], CellMargins -> {{54, Inherited}, {Inherited, Inherited}}, FontSize -> 7, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Print"], CellMargins -> {{66, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "OutputGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GroupPageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, DefaultFormatType -> DefaultOutputFormatType, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, AutoItalicWords -> {}, LanguageCategory -> None, FormatType -> InputForm, CounterIncrements -> "Print", StyleMenuListing -> None], Cell[ StyleData["Print", "Presentation"], CellMargins -> {{72, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}, FontSize -> 14], Cell[ StyleData["Print", "SlideShow"], CellMargins -> {{100, Inherited}, {Inherited, Inherited}}, LineSpacing -> {1, 0}, FontSize -> 14], Cell[ StyleData["Print", "Printout"], CellMargins -> {{39, Inherited}, {Inherited, Inherited}}, FontSize -> 8]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Graphics"], CellMargins -> {{18, Inherited}, {Inherited, Inherited}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, PageBreakWithin -> False, GeneratedCell -> True, CellAutoOverwrite -> True, ShowCellLabel -> False, DefaultFormatType -> DefaultOutputFormatType, LanguageCategory -> None, FormatType -> InputForm, CounterIncrements -> "Graphics", ImageMargins -> {{43, Inherited}, {Inherited, 0}}, StyleMenuListing -> None, FontFamily -> "Courier", FontSize -> 10], Cell[ StyleData["Graphics", "Presentation"], CellMargins -> {{18, Inherited}, {Inherited, Inherited}}, ImageMargins -> {{62, Inherited}, {Inherited, 0}}], Cell[ StyleData["Graphics", "SlideShow"], CellMargins -> {{18, Inherited}, {Inherited, Inherited}}, ImageMargins -> {{100, Inherited}, {Inherited, 0}}], Cell[ StyleData["Graphics", "Printout"], CellMargins -> {{18, Inherited}, {Inherited, Inherited}}, ImageMargins -> {{30, Inherited}, {Inherited, 0}}, Magnification -> 0.8]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["CellLabel"], LanguageCategory -> None, StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 9, FontColor -> RGBColor[0.392157, 0.396078, 0.717647]], Cell[ StyleData["CellLabel", "Presentation"], FontSize -> 12], Cell[ StyleData["CellLabel", "SlideShow"], FontSize -> 12], Cell[ StyleData["CellLabel", "Printout"], FontFamily -> "Courier", FontSize -> 8, FontSlant -> "Italic", FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["FrameLabel"], LanguageCategory -> None, StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 9], Cell[ StyleData["FrameLabel", "Presentation"], FontSize -> 12], Cell[ StyleData["FrameLabel", "SlideShow"], FontSize -> 12], Cell[ StyleData["FrameLabel", "Printout"], FontFamily -> "Courier", FontSize -> 8, FontSlant -> "Italic", FontColor -> GrayLevel[0]]}, Closed]], Cell["Presentation Specific", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Author"], CellMargins -> {{100, 27}, {2, 20}}, FontFamily -> "Times", FontSize -> 24, FontSlant -> "Italic"], Cell[ StyleData["Author", "Presentation"], CellMargins -> {{200, 27}, {2, 50}}, FontSize -> 28], Cell[ StyleData["Author", "SlideShow"], CellMargins -> {{162, 27}, {2, 50}}, FontSize -> 28], Cell[ StyleData["Author", "Printout"], CellMargins -> {{100, 27}, {2, 20}}, FontSize -> 24]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["Affiliation"], CellMargins -> {{100, 27}, {30, 12}}, FontFamily -> "Times", FontSize -> 24, FontSlant -> "Italic"], Cell[ StyleData["Affiliation", "Presentation"], CellMargins -> {{200, 27}, {2, 10}}, FontSize -> 28], Cell[ StyleData["Affiliation", "SlideShow"], CellMargins -> {{162, 27}, {2, 10}}, FontSize -> 28], Cell[ StyleData["Affiliation", "Printout"], CellMargins -> {{100, 27}, {2, 12}}, FontSize -> 24]}, Open]], Cell["Header Graphic", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["ConferenceGraphicCell"], ShowCellBracket -> False, CellMargins -> {{0, 0}, {0, 0}}, Evaluatable -> False, PageBreakBelow -> False, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}, Magnification -> 1, Background -> GrayLevel[1]], Cell[ StyleData["ConferenceGraphicCell", "Presentation"]], Cell[ StyleData["ConferenceGraphicCell", "SlideShow"]], Cell[ StyleData["ConferenceGraphicCell", "Printout"], FontSize -> 8]}, Closed]], Cell[ CellGroupData[{ Cell["Inline Formatting", "Section"], Cell[ "These styles are for modifying individual words or letters in a cell \ exclusive of the cell tag.", "Text"], Cell[ StyleData["RM"], StyleMenuListing -> None, FontWeight -> "Plain", FontSlant -> "Plain"], Cell[ StyleData["BF"], StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["IT"], StyleMenuListing -> None, FontSlant -> "Italic"], Cell[ StyleData["TR"], StyleMenuListing -> None, FontFamily -> "Times", FontWeight -> "Plain", FontSlant -> "Plain"], Cell[ StyleData["TI"], StyleMenuListing -> None, FontFamily -> "Times", FontWeight -> "Plain", FontSlant -> "Italic"], Cell[ StyleData["TB"], StyleMenuListing -> None, FontFamily -> "Times", FontWeight -> "Bold", FontSlant -> "Plain"], Cell[ StyleData["TBI"], StyleMenuListing -> None, FontFamily -> "Times", FontWeight -> "Bold", FontSlant -> "Italic"], Cell[ StyleData["MR"], "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, StyleMenuListing -> None, FontFamily -> "Courier", FontWeight -> "Plain", FontSlant -> "Plain"], Cell[ StyleData["MO"], "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, StyleMenuListing -> None, FontFamily -> "Courier", FontWeight -> "Plain", FontSlant -> "Italic"], Cell[ StyleData["MB"], "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, StyleMenuListing -> None, FontFamily -> "Courier", FontWeight -> "Bold", FontSlant -> "Plain"], Cell[ StyleData["MBO"], "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, StyleMenuListing -> None, FontFamily -> "Courier", FontWeight -> "Bold", FontSlant -> "Italic"], Cell[ StyleData["SR"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontWeight -> "Plain", FontSlant -> "Plain"], Cell[ StyleData["SO"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontWeight -> "Plain", FontSlant -> "Italic"], Cell[ StyleData["SB"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontWeight -> "Bold", FontSlant -> "Plain"], Cell[ StyleData["SBO"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontWeight -> "Bold", FontSlant -> "Italic"]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["SO10"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 10, FontWeight -> "Plain", FontSlant -> "Italic"], Cell[ StyleData["SO10", "Printout"], StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 7, FontWeight -> "Plain", FontSlant -> "Italic"]}, Closed]], Cell["Formulas and Programming", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["InlineFormula"], CellMargins -> {{10, 4}, {0, 8}}, CellHorizontalScrolling -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Formula", ScriptLevel -> 1, SingleLetterItalics -> True, FontSize -> 16], Cell[ StyleData["InlineFormula", "Presentation"], LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["InlineFormula", "SlideShow"], LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["InlineFormula", "Printout"], CellMargins -> {{2, 0}, {6, 6}}, FontSize -> 16]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DisplayFormula"], CellMargins -> {{60, Inherited}, {Inherited, Inherited}}, CellHorizontalScrolling -> True, DefaultFormatType -> DefaultInputFormatType, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Formula", ScriptLevel -> 0, SingleLetterItalics -> True, FontSize -> 16, UnderoverscriptBoxOptions -> {LimitsPositioning -> True}], Cell[ StyleData["DisplayFormula", "Presentation"], LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["DisplayFormula", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}, LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["DisplayFormula", "Printout"], FontSize -> 16]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Program"], CellFrame -> {{0, 0}, {0.5, 0.5}}, CellMargins -> {{60, 4}, {0, 8}}, CellHorizontalScrolling -> True, Hyphenation -> False, LanguageCategory -> "Formula", ScriptLevel -> 1, FontFamily -> "Courier", FontSize -> 16], Cell[ StyleData["Program", "Presentation"], CellMargins -> {{24, 50}, {10, 10}}, LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["Program", "SlideShow"], CellMargins -> {{100, 50}, {10, 10}}, LineSpacing -> {1, 5}, FontSize -> 16], Cell[ StyleData["Program", "Printout"], CellMargins -> {{2, 0}, {6, 6}}, FontSize -> 16]}, Closed]], Cell["Outline Styles", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["Outline1"], CellDingbat -> "\[EmptyDiamond]", CellMargins -> {{60, 10}, {7, 7}}, CellGroupingRules -> {"SectionGrouping", 50}, ParagraphIndent -> -38, CounterIncrements -> "Outline1", CounterAssignments -> {{"Outline2", 0}, {"Outline3", 0}, { "Outline4", 0}}, FontSize -> 18, FontWeight -> "Plain", CounterBoxOptions -> {CounterFunction :> CapitalRomanNumeral}], Cell[ StyleData["Outline1", "SlideShow"]], Cell[ StyleData["Outline1", "Printout"], CounterBoxOptions -> {CounterFunction :> CapitalRomanNumeral}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Outline2"], CellDingbat -> "\[EmptyDiamond]", CellMargins -> {{90, 10}, {7, 7}}, CellGroupingRules -> {"SectionGrouping", 60}, ParagraphIndent -> -27, CounterIncrements -> "Outline2", CounterAssignments -> {{"Outline3", 0}, {"Outline4", 0}}, FontSize -> 15, FontWeight -> "Bold", CounterBoxOptions -> {CounterFunction :> (Part[ CharacterRange["A", "Z"], #]& )}], Cell[ StyleData["Outline2", "SlideShow"]], Cell[ StyleData["Outline2", "Printout"], CounterBoxOptions -> {CounterFunction :> (Part[ CharacterRange["A", "Z"], #]& )}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Outline3"], CellMargins -> {{120, 10}, {7, 7}}, CellGroupingRules -> {"SectionGrouping", 70}, ParagraphIndent -> -21, CounterIncrements -> "Outline3", CounterAssignments -> {{"Outline4", 0}}, FontSize -> 12, CounterBoxOptions -> {CounterFunction :> Identity}], Cell[ StyleData["Outline3", "SlideShow"]], Cell[ StyleData["Outline3", "Printout"], CounterBoxOptions -> {CounterFunction :> Identity}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Outline4"], CellMargins -> {{150, 10}, {7, 7}}, CellGroupingRules -> {"SectionGrouping", 80}, ParagraphIndent -> -18, CounterIncrements -> "Outline4", FontSize -> 10, CounterBoxOptions -> {CounterFunction :> (Part[ CharacterRange["a", "z"], #]& )}], Cell[ StyleData["Outline4", "SlideShow"]], Cell[ StyleData["Outline4", "Printout"]]}, Closed]], Cell[ CellGroupData[{ Cell["Hyperlink Styles", "Section"], Cell[ "The cells below define styles useful for making hypertext ButtonBoxes. \ The \"Hyperlink\" style is for links within the same Notebook, or between \ Notebooks.", "Text"]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Hyperlink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookLocate[#2]}]& ), ButtonNote -> ButtonData}], Cell[ StyleData["Hyperlink", "Presentation"], FontSize -> 16], Cell[ StyleData["Hyperlink", "SlideShow"]], Cell[ StyleData["Hyperlink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell["The following styles are for linking automatically to the on-line \ help system.", "Text"], Cell[ CellGroupData[{ Cell[ StyleData["MainBookLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["MainBook", #]}]& )}], Cell[ StyleData["MainBookLink", "Presentation"], FontSize -> 16], Cell[ StyleData["MainBookLink", "SlideShow"]], Cell[ StyleData["MainBookLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["AddOnsLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontFamily -> "Courier", FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["AddOns", #]}]& )}], Cell[ StyleData["AddOnsLink", "Presentation"], FontSize -> 16], Cell[ StyleData["AddOnsLink", "SlideShow"]], Cell[ StyleData["AddOnsLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["RefGuideLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontFamily -> "Courier", FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["RefGuide", #]}]& )}], Cell[ StyleData["RefGuideLink", "Presentation"], FontSize -> 16], Cell[ StyleData["RefGuideLink", "SlideShow"]], Cell[ StyleData["RefGuideLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["RefGuideLinkText"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["RefGuide", #]}]& )}], Cell[ StyleData["RefGuideLinkText", "Presentation"], FontSize -> 16], Cell[ StyleData["RefGuideLinkText", "SlideShow"]], Cell[ StyleData["RefGuideLinkText", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["GettingStartedLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["GettingStarted", #]}]& )}], Cell[ StyleData["GettingStartedLink", "Presentation"], FontSize -> 16], Cell[ StyleData["GettingStartedLink", "SlideShow"]], Cell[ StyleData["GettingStartedLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DemosLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["Demos", #]}]& )}], Cell[ StyleData["DemosLink", "SlideShow"]], Cell[ StyleData["DemosLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["TourLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["Tour", #]}]& )}], Cell[ StyleData["TourLink", "SlideShow"]], Cell[ StyleData["TourLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["OtherInformationLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["OtherInformation", #]}]& )}], Cell[ StyleData["OtherInformationLink", "Presentation"], FontSize -> 16], Cell[ StyleData["OtherInformationLink", "SlideShow"]], Cell[ StyleData["OtherInformationLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["MasterIndexLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontVariations -> {"Underline" -> True}, FontColor -> RGBColor[0.269993, 0.308507, 0.6], ButtonBoxOptions -> { Active -> True, Appearance -> {Automatic, None}, ButtonFunction :> (FrontEndExecute[{ FrontEnd`HelpBrowserLookup["MasterIndex", #]}]& )}], Cell[ StyleData["MasterIndexLink", "SlideShow"]], Cell[ StyleData["MasterIndexLink", "Printout"], FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell["Styles for Headers and Footers", "Section"], Cell[ StyleData["Header"], CellMargins -> {{0, 0}, {4, 1}}, DefaultNewInlineCellStyle -> "None", LanguageCategory -> "NaturalLanguage", StyleMenuListing -> None, FontSize -> 10, FontSlant -> "Italic"], Cell[ StyleData["Footer"], CellMargins -> {{0, 0}, {0, 4}}, DefaultNewInlineCellStyle -> "None", LanguageCategory -> "NaturalLanguage", StyleMenuListing -> None, FontSize -> 9, FontSlant -> "Italic"], Cell[ StyleData["PageNumber"], CellMargins -> {{0, 0}, {4, 1}}, StyleMenuListing -> None, FontFamily -> "Times", FontSize -> 10]}, Closed]], Cell[ CellGroupData[{ Cell["Palette Styles", "Section"], Cell[ "The cells below define styles that define standard ButtonFunctions, \ for use in palette buttons.", "Text"], Cell[ StyleData["Paste"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, Placeholder]}]& )}], Cell[ StyleData["Evaluate"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionEvaluate[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["EvaluateCell"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionMove[ FrontEnd`InputNotebook[], All, Cell, 1], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["CopyEvaluate"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionEvaluate[ FrontEnd`InputNotebook[], All]}]& )}], Cell[ StyleData["CopyEvaluateCell"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ FrontEnd`SelectionCreateCell[ FrontEnd`InputNotebook[], All], FrontEnd`NotebookApply[ FrontEnd`InputNotebook[], #, All], FrontEnd`SelectionEvaluateCreateCell[ FrontEnd`InputNotebook[], All]}]& )}]}, Closed]], Cell[ CellGroupData[{ Cell["Placeholder Styles", "Section"], Cell[ "The cells below define styles useful for making placeholder objects in \ palette templates.", "Text"]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Placeholder"], Placeholder -> True, StyleMenuListing -> None, FontSlant -> "Italic", FontColor -> RGBColor[0.890623, 0.864698, 0.384756], TagBoxOptions -> { Editable -> False, Selectable -> False, StripWrapperBoxes -> False}], Cell[ StyleData["Placeholder", "Presentation"]], Cell[ StyleData["Placeholder", "SlideShow"]], Cell[ StyleData["Placeholder", "Printout"]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["PrimaryPlaceholder"], StyleMenuListing -> None, DrawHighlighted -> True, FontSlant -> "Italic", Background -> RGBColor[0.912505, 0.891798, 0.507774], TagBoxOptions -> { Editable -> False, Selectable -> False, StripWrapperBoxes -> False}], Cell[ StyleData["PrimaryPlaceholder", "Presentation"]], Cell[ StyleData["PrimaryPlaceholder", "SlideShow"]], Cell[ StyleData["PrimaryPlaceholder", "Printout"]]}, Closed]], Cell[ CellGroupData[{ Cell["FormatType Styles", "Section"], Cell[ "The cells below define styles that are mixed in with the styles of \ most cells. If a cell's FormatType matches the name of one of the styles \ defined below, then that style is applied between the cell's style and its \ own options. This is particularly true of Input and Output.", "Text"], Cell[ StyleData["CellExpression"], PageWidth -> Infinity, CellMargins -> {{6, Inherited}, {Inherited, Inherited}}, ShowCellLabel -> False, ShowSpecialCharacters -> False, AllowInlineCells -> False, Hyphenation -> False, AutoItalicWords -> {}, StyleMenuListing -> None, FontFamily -> "Courier", FontSize -> 12, Background -> GrayLevel[1]], Cell[ StyleData["InputForm"], InputAutoReplacements -> {}, AllowInlineCells -> False, Hyphenation -> False, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["OutputForm"], PageWidth -> Infinity, TextAlignment -> Left, LineSpacing -> {0.6, 1}, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["StandardForm"], InputAutoReplacements -> { "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" -> "\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]", "==" -> "\[Equal]", Inherited}, "TwoByteSyntaxCharacterAutoReplacement" -> True, LineSpacing -> {1.25, 0}, StyleMenuListing -> None, FontFamily -> "Courier"], Cell[ StyleData["TraditionalForm"], InputAutoReplacements -> { "->" -> "\[Rule]", ":>" -> "\[RuleDelayed]", "<=" -> "\[LessEqual]", ">=" -> "\[GreaterEqual]", "!=" -> "\[NotEqual]", "==" -> "\[Equal]", Inherited}, "TwoByteSyntaxCharacterAutoReplacement" -> True, LineSpacing -> {1.25, 0}, SingleLetterItalics -> True, TraditionalFunctionNotation -> True, DelimiterMatching -> None, StyleMenuListing -> None], Cell[ "The style defined below is mixed in to any cell that is in an inline \ cell within another.", "Text"], Cell[ StyleData["InlineCell"], LanguageCategory -> "Formula", ScriptLevel -> 1, StyleMenuListing -> None], Cell[ StyleData["InlineCellEditing"], StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216]]}, Closed]], Cell[ CellGroupData[{ Cell["Automatic Styles", "Section"], Cell[ "The cells below define styles that are used to affect the display of \ certain types of objects in typeset expressions. For example, \ \"UnmatchedBracket\" style defines how unmatched bracket, curly bracket, and \ parenthesis characters are displayed (typically by coloring them to make them \ stand out).", "Text"], Cell[ StyleData["UnmatchedBracket"], StyleMenuListing -> None, FontColor -> RGBColor[0.760006, 0.330007, 0.8]], Cell[ StyleData["Completions"], StyleMenuListing -> None, FontFamily -> "Courier"]}, Closed]], Cell["Styles from HelpBrowser", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["MathCaption"], CellFrame -> {{0, 0}, {0, 0.5}}, CellMargins -> {{66, 12}, {2, 24}}, PageBreakBelow -> False, CellFrameMargins -> {{8, 8}, {8, 2}}, CellFrameColor -> GrayLevel[0.700008], CellFrameLabelMargins -> 4, LineSpacing -> {1, 1}, ParagraphSpacing -> {0, 8}, StyleMenuListing -> None, FontColor -> GrayLevel[0.2]], Cell[ StyleData["MathCaption", "Presentation"], FontSize -> 18], Cell[ StyleData["MathCaption", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["MathCaption", "Printout"], CellMargins -> {{39, 0}, {0, 14}}, Hyphenation -> True, FontSize -> 9, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["ObjectName"], ShowCellBracket -> True, CellMargins -> {{66, 4}, {8, 8}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, CellLabelAutoDelete -> False, CellLabelMargins -> {{14, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultInputFormatType, ShowSpecialCharacters -> Automatic, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Mathematica", FormatType -> StandardForm, ShowStringCharacters -> True, NumberMarks -> True, StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["ObjectName", "Presentation"], FontSize -> 18], Cell[ StyleData["ObjectName", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["ObjectName", "Printout"], ShowCellBracket -> False, CellMargins -> {{39, 0}, {6, 6}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Usage"], ShowCellBracket -> True, CellMargins -> {{66, 4}, {8, 8}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, CellLabelAutoDelete -> False, CellLabelMargins -> {{14, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultInputFormatType, ShowSpecialCharacters -> Automatic, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Mathematica", FormatType -> StandardForm, ShowStringCharacters -> True, NumberMarks -> True, StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["Usage", "Presentation"], FontSize -> 18], Cell[ StyleData["Usage", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["Usage", "Printout"], ShowCellBracket -> False, CellMargins -> {{39, 0}, {6, 6}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Notes"], ShowCellBracket -> True, CellMargins -> {{66, 4}, {8, 8}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, CellLabelAutoDelete -> False, CellLabelMargins -> {{14, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultInputFormatType, ShowSpecialCharacters -> Automatic, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Mathematica", FormatType -> StandardForm, ShowStringCharacters -> True, NumberMarks -> True, StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["Notes", "Presentation"], FontSize -> 18], Cell[ StyleData["Notes", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["Notes", "Printout"], ShowCellBracket -> False, CellMargins -> {{39, 0}, {6, 6}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["InlineOutput"], ShowCellBracket -> True, CellMargins -> {{66, 4}, {8, 8}}, Evaluatable -> True, CellGroupingRules -> "InputGrouping", PageBreakWithin -> False, GroupPageBreakWithin -> False, CellLabelAutoDelete -> False, CellLabelMargins -> {{14, Inherited}, {Inherited, Inherited}}, DefaultFormatType -> DefaultInputFormatType, ShowSpecialCharacters -> Automatic, "TwoByteSyntaxCharacterAutoReplacement" -> True, HyphenationOptions -> {"HyphenationCharacter" -> "\[Continuation]"}, LanguageCategory -> "Mathematica", FormatType -> StandardForm, ShowStringCharacters -> True, NumberMarks -> True, StyleMenuListing -> None, FontWeight -> "Bold"], Cell[ StyleData["InlineOutput", "Presentation"], FontSize -> 18], Cell[ StyleData["InlineOutput", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["InlineOutput", "Printout"], ShowCellBracket -> False, CellMargins -> {{39, 0}, {6, 6}}, FontSize -> 9]}, Closed]], Cell["Emphasis Boxes and Pictures", "Subsection"], Cell[ CellGroupData[{ Cell[ StyleData["Box"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["Box", "Presentation"], FontSize -> 18], Cell[ StyleData["Box", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["Box", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DoubleBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Top}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[1.4]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DoubleBox", "Presentation"], FontSize -> 18], Cell[ StyleData["DoubleBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DoubleBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["1ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["1ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["1ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["1ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["2ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], SingleLetterItalics -> False, LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> { Scaled[0.31], { Scaled[0.67]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["2ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["2ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["2ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 9, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["2ColumnEvenBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> {{ Scaled[0.46]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["2ColumnEvenBox", "Presentation"], FontSize -> 18], Cell[ StyleData["2ColumnEvenBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["2ColumnEvenBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["2ColumnSmallBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {Right, {Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> {{ Scaled[0.35]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[1.0499999999999998`]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["2ColumnSmallBox", "Presentation"], FontSize -> 18], Cell[ StyleData["2ColumnSmallBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["2ColumnSmallBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["3ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> {{ Scaled[0.32]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["3ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["3ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["3ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["3ColumnSmallBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {Right, Center, {Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> {{ Scaled[0.24]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[1.0499999999999998`]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["3ColumnSmallBox", "Presentation"], FontSize -> 18], Cell[ StyleData["3ColumnSmallBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["3ColumnSmallBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["4ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], SingleLetterItalics -> False, LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> { Scaled[0.13], Scaled[0.35], Scaled[0.13], { Scaled[0.35]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["4ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["4ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["4ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["5ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> {{ Scaled[0.202]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["5ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["5ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["5ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 9, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["6ColumnBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {BoxFrame -> 0.5, FrameMargins -> True}, GridBoxOptions -> {GridBoxItemSize -> {"Columns" -> { Scaled[0.12], Scaled[0.22], Scaled[0.12], Scaled[0.12], Scaled[0.22], { Scaled[0.12]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["6ColumnBox", "Presentation"], FontSize -> 18], Cell[ StyleData["6ColumnBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["6ColumnBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["FramedBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.5599999999999999]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["FramedBox", "Presentation"], FontSize -> 18], Cell[ StyleData["FramedBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["FramedBox", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DefinitionBox"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.4], { Scaled[0.6]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DefinitionBox", "Presentation"], FontSize -> 18], Cell[ StyleData["DefinitionBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DefinitionBox", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DefinitionBox3Col"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.35], Scaled[0.2], { Scaled[0.45]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DefinitionBox3Col", "Presentation"], FontSize -> 18], Cell[ StyleData["DefinitionBox3Col", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DefinitionBox3Col", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DefinitionBox4Col"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.15], Scaled[0.35], Scaled[0.15], { Scaled[0.35]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DefinitionBox4Col", "Presentation"], FontSize -> 18], Cell[ StyleData["DefinitionBox4Col", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DefinitionBox4Col", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DefinitionBox5Col"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> {{ Scaled[0.2]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DefinitionBox5Col", "Presentation"], FontSize -> 18], Cell[ StyleData["DefinitionBox5Col", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DefinitionBox5Col", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["DefinitionBox6Col"], CellFrame -> 0.5, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakWithin -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.13], Scaled[0.24], Scaled[0.13], Scaled[0.13], Scaled[0.24], { Scaled[0.13]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["DefinitionBox6Col", "Presentation"], FontSize -> 18], Cell[ StyleData["DefinitionBox6Col", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["DefinitionBox6Col", "Printout"], CellMargins -> {{2, 4}, {0, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["TopBox"], CellFrame -> {{0.5, 0.5}, {0, 0.5}}, CellMargins -> {{27, 12}, {0, 8}}, CellHorizontalScrolling -> True, PageBreakBelow -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.31], { Scaled[0.62]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["TopBox", "Presentation"], FontSize -> 18], Cell[ StyleData["TopBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["TopBox", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["MiddleBox"], CellFrame -> {{0.5, 0.5}, {0, 0}}, CellMargins -> {{27, 12}, {0, -7}}, CellHorizontalScrolling -> True, PageBreakAbove -> False, PageBreakBelow -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.31], { Scaled[0.62]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["MiddleBox", "Presentation"], FontSize -> 18], Cell[ StyleData["MiddleBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["MiddleBox", "Printout"], CellMargins -> {{2, 0}, {0, 2}}, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["BottomBox"], CellFrame -> {{0.5, 0.5}, {0.5, 0}}, CellMargins -> {{27, 12}, {0, -7}}, CellHorizontalScrolling -> True, PageBreakAbove -> False, PageBreakBelow -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.31], { Scaled[0.62]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["BottomBox", "Presentation"], FontSize -> 18], Cell[ StyleData["BottomBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["BottomBox", "Printout"], CellMargins -> {{2, 0}, {0, -5}}, FontSize -> 10, Background -> GrayLevel[1], GridBoxOptions -> { GridBoxItemSize -> { "Columns" -> {{All}}, "ColumnsIndexed" -> {}, "Rows" -> {{2.2}}, "RowsIndexed" -> {}}}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["TopSpanBox"], CellFrame -> {{0.5, 0.5}, {0, 0.5}}, CellMargins -> {{27, 12}, {-2, 8}}, CellHorizontalScrolling -> True, PageBreakBelow -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.9], { Scaled[0.03]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["TopSpanBox", "Presentation"], FontSize -> 18], Cell[ StyleData["TopSpanBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["TopSpanBox", "Printout"], CellMargins -> {{2, 0}, {-2, 8}}, FontSize -> 10, Background -> GrayLevel[1]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["MiddleSpanBox"], CellFrame -> {{0.5, 0.5}, {0, 0}}, CellMargins -> {{27, 12}, {0, 0}}, CellHorizontalScrolling -> True, PageBreakAbove -> False, PageBreakBelow -> False, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], AutoIndent -> False, AutoSpacing -> False, LineIndent -> 0, StyleMenuListing -> None, FontWeight -> "Plain", Background -> RGBColor[0.964706, 0.929412, 0.839216], GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.9], { Scaled[0.03]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.6]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["MiddleSpanBox", "Presentation"], FontSize -> 18], Cell[ StyleData["MiddleSpanBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["MiddleSpanBox", "Printout"], CellMargins -> {{2, 0}, {-5, 0}}, FontSize -> 10, Background -> GrayLevel[1], GridBoxOptions -> { GridBoxItemSize -> { "Columns" -> {{All}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.8}}, "RowsIndexed" -> {}}}]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Picture"], CellMargins -> {{27, Inherited}, {4, 4}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, StyleMenuListing -> None], Cell[ StyleData["Picture", "Presentation"], FontSize -> 18], Cell[ StyleData["Picture", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["Picture", "Printout"], CellMargins -> {{2, Inherited}, {4, 4}}, Magnification -> 0.65]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["OpenCloseItemizedPicture"], CellMargins -> {{88, 4}, {4, 4}}, PrivateCellOptions -> {"DefaultCellGroupOpen" -> False}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, StyleMenuListing -> None], Cell[ StyleData["OpenCloseItemizedPicture", "Presentation"], FontSize -> 18], Cell[ StyleData["OpenCloseItemizedPicture", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["OpenCloseItemizedPicture", "Printout"], CellMargins -> {{76, 2}, {0, 0}}, CellElementSpacings -> {"CellMinHeight" -> 1, "ClosedCellHeight" -> 0}, CellOpen -> False]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["ItemizedPicture"], CellMargins -> {{88, 4}, {4, 4}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, StyleMenuListing -> None], Cell[ StyleData["ItemizedPicture", "Presentation"], FontSize -> 18], Cell[ StyleData["ItemizedPicture", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["ItemizedPicture", "Printout"], CellMargins -> {{77, 2}, {4, -4}}, Magnification -> 0.5]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["ListGraphic"], CellMargins -> {{88, 4}, {4, 4}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, StyleMenuListing -> None], Cell[ StyleData["ListGraphic", "Presentation"], FontSize -> 18], Cell[ StyleData["ListGraphic", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["ListGraphic", "Printout"], CellMargins -> {{77, 2}, {4, -4}}, Magnification -> 0.5]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["ListNoteBox"], CellFrame -> 0.5, CellMargins -> {{88, 12}, {8, 8}}, CellHorizontalScrolling -> True, CellFrameColor -> RGBColor[0.74902, 0.694118, 0.552941], LineIndent -> 0, StyleMenuListing -> None, Background -> RGBColor[0.964706, 0.929412, 0.839216], FrameBoxOptions -> {FrameMargins -> {{1, 1}, {1.5, 1.5}}}, GridBoxOptions -> {GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["ListNoteBox", "Presentation"], FontSize -> 18], Cell[ StyleData["ListNoteBox", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["ListNoteBox", "Printout"], CellMargins -> {{77, 4}, {6, 2}}, FontSize -> 10, Background -> GrayLevel[0.900008]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["PictureGroup"], CellMargins -> {{41, 4}, {0, 4}}, CellGroupingRules -> "GraphicsGrouping", CellHorizontalScrolling -> True, StyleMenuListing -> None], Cell[ StyleData["PictureGroup", "Presentation"], FontSize -> 18], Cell[ StyleData["PictureGroup", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["PictureGroup", "Printout"], CellMargins -> {{76, 2}, {0, 0}}, CellElementSpacings -> {"CellMinHeight" -> 1, "ClosedCellHeight" -> 0}, CellOpen -> False]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["Sound"], ShowCellBracket -> True, CellMargins -> {{27, Inherited}, {0, 8}}, StyleMenuListing -> None], Cell[ StyleData["Sound", "Presentation"], FontSize -> 18], Cell[ StyleData["Sound", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["Sound", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 10]}, Closed]], Cell["Tables", "Subsection"], Cell[ CellGroupData[{ Cell[ StyleData["2ColumnTable"], CellMargins -> {{35, 4}, {0, 8}}, CellHorizontalScrolling -> True, LineIndent -> 0, StyleMenuListing -> None, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.34], { Scaled[0.64]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["2ColumnTable", "Presentation"], FontSize -> 18], Cell[ StyleData["2ColumnTable", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["2ColumnTable", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["2ColumnEvenTable"], CellMargins -> {{35, 4}, {0, 8}}, CellHorizontalScrolling -> True, LineIndent -> 0, StyleMenuListing -> None, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> {{ Scaled[0.49]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["2ColumnEvenTable", "Presentation"], FontSize -> 18], Cell[ StyleData["2ColumnEvenTable", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["2ColumnEvenTable", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 9]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["3ColumnTable"], CellMargins -> {{35, 4}, {0, 8}}, CellHorizontalScrolling -> True, LineIndent -> 0, StyleMenuListing -> None, GridBoxOptions -> { GridBoxAlignment -> { "Columns" -> {{Left}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> {"Columns" -> { Scaled[0.28], Scaled[0.28], { Scaled[0.43]}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}}], Cell[ StyleData["3ColumnTable", "Presentation"], FontSize -> 18], Cell[ StyleData["3ColumnTable", "SlideShow"], CellMargins -> {{100, 50}, {Inherited, Inherited}}], Cell[ StyleData["3ColumnTable", "Printout"], CellMargins -> {{2, 0}, {0, 8}}, FontSize -> 9]}, Closed]], Cell["Slide Show Styles", "Section"], Cell[ CellGroupData[{ Cell[ StyleData["SlideShowNavigationBar"], Editable -> False, CellFrame -> True, CellMargins -> {{0, 0}, {3, 50}}, CellElementSpacings -> {"CellMinHeight" -> 0.8125}, CellGroupingRules -> {"SectionGrouping", 0}, CellFrameMargins -> False, CellFrameColor -> GrayLevel[1], CellFrameLabelMargins -> False, CounterIncrements -> "SlideShowNavigationBar", StyleMenuListing -> None, FontSize -> 10, Magnification -> 1, Background -> GrayLevel[1], GridBoxOptions -> { BaselinePosition -> Center, GridBoxAlignment -> { "Columns" -> { Center, Center, Center, Center, Center, Center, Right, {Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxItemSize -> { "Columns" -> {3.5, 3.5, 3.5, 3.5, 40, 5, {4}}, "ColumnsIndexed" -> {}, "Rows" -> {{1.}}, "RowsIndexed" -> {}}, GridBoxSpacings -> {"Columns" -> { Offset[0.27999999999999997`], { Offset[0.]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.]}, Offset[0.2]}, "RowsIndexed" -> {}}}], Cell[ StyleData["SlideShowNavigationBar", "Presentation"], FontSize -> 10, Magnification -> 1], Cell[ StyleData["SlideShowNavigationBar", "SlideShow"], Deletable -> False, ShowCellBracket -> False, CellMargins -> {{-1, -1}, {-1, -1}}, PageBreakAbove -> True, CellFrameMargins -> {{1, 1}, {0, 0}}], Cell[ StyleData["SlideShowNavigationBar", "Printout"], CellMargins -> {{0, 0}, {6, 6}}, CellOpen -> False, PageBreakAbove -> True, FontSize -> 1]}, Open]], Cell[ CellGroupData[{ Cell[ StyleData["SlideShowSection"], CellFrame -> {{0, 0}, {0, 0.5}}, CellMargins -> {{0, 0}, {10, 0}}, CellGroupingRules -> {"SectionGrouping", 40}, PageBreakBelow -> False, CellFrameMargins -> {{12, 4}, {6, 12}}, InputAutoReplacements -> {"TeX" -> StyleBox[ RowBox[{"T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "LaTeX" -> StyleBox[ RowBox[{"L", StyleBox[ AdjustmentBox[ "A", BoxMargins -> {{-0.36, -0.1}, {0, 0}}, BoxBaselineShift -> -0.2], FontSize -> Smaller], "T", AdjustmentBox[ "E", BoxMargins -> {{-0.075, -0.085}, {0, 0}}, BoxBaselineShift -> 0.5], "X"}]], "mma" -> "Mathematica", "Mma" -> "Mathematica", "MMA" -> "Mathematica", "gridMathematica" -> FormBox[ RowBox[{"grid", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], "webMathematica" -> FormBox[ RowBox[{"web", AdjustmentBox[ StyleBox["Mathematica", FontSlant -> "Italic"], BoxMargins -> {{-0.175, 0}, {0, 0}}]}], TextForm], Inherited}, CounterIncrements -> "Section", CounterAssignments -> {{"Subsection", 0}, {"Subsubsection", 0}}, StyleMenuListing -> None, FontFamily -> "Helvetica", FontSize -> 18, FontWeight -> "Plain", FontColor -> GrayLevel[1], Background -> RGBColor[0.408011, 0.440726, 0.8]], Cell[ StyleData["SlideShowSection", "Presentation"], CellFrameMargins -> {{20, 10}, {10, 18}}, FontSize -> 27], Cell[ StyleData["SlideShowSection", "SlideShow"], ShowCellBracket -> False, PageBreakAbove -> True], Cell[ StyleData["SlideShowSection", "Printout"], CellFrame -> False, CellMargins -> {{0, 0}, {0, 0}}, CellFrameMargins -> False, FontSize -> 14]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["SlideHyperlink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontSize -> 26, FontColor -> GrayLevel[0.400015], ButtonBoxOptions -> { Active -> True, ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookLocate[#2]}]& ), ButtonMargins -> 0.5, ButtonMinHeight -> 0.85, ButtonNote -> None}], Cell[ StyleData["SlideHyperlink", "Presentation"], CellMargins -> {{14, 10}, {6, 12}}, FontSize -> 36], Cell[ StyleData["SlideHyperlink", "SlideShow"]], Cell[ StyleData["SlideHyperlink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["SlidePreviousNextLink"], StyleMenuListing -> None, ButtonStyleMenuListing -> Automatic, FontFamily -> "Verdana", FontSize -> 12, FontColor -> GrayLevel[0.500008], ButtonBoxOptions -> { Active -> True, ButtonFunction :> (FrontEndExecute[{ FrontEnd`NotebookLocate[#2]}]& ), ButtonMargins -> 0.5, ButtonMinHeight -> 0.85, ButtonNote -> None}], Cell[ StyleData["SlidePreviousNextLink", "Presentation"], FontSize -> 18], Cell[ StyleData["SlidePreviousNextLink", "SlideShow"]], Cell[ StyleData["SlidePreviousNextLink", "Printout"], FontSize -> 10, FontVariations -> {"Underline" -> False}, FontColor -> GrayLevel[0]]}, Closed]], Cell[ CellGroupData[{ Cell[ StyleData["PreviousNext"], CellMargins -> {{60, 10}, {7, 7}}, TextAlignment -> 0.75, LineSpacing -> {1, 3}, CounterIncrements -> "PreviousNext", FontFamily -> "Verdana", FontSize -> 12, FontColor -> GrayLevel[0.500008]], Cell[ StyleData["PreviousNext", "Presentation"], CellMargins -> {{24, 50}, {10, 10}}, LineSpacing -> {1, 5}, FontSize -> 14], Cell[ StyleData["PreviousNext", "SlideShow"], CellMargins -> {{50, 50}, {50, 15}}, FontSize -> 14], Cell[ StyleData["PreviousNext", "Printout"], CellMargins -> {{2, 2}, {6, 6}}, TextJustification -> 0.5, Hyphenation -> True, FontSize -> 10]}, Closed]]}, Visible -> False, FrontEndVersion -> "7.0 for Linux x86 (64-bit) (February 25, 2009)", StyleDefinitions -> "Default.nb"] ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{ "SlideShowHeader"->{ Cell[567, 22, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[2708, 97, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[4999, 165, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[7251, 228, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[9377, 295, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[11389, 360, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[13607, 431, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[15920, 506, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[18840, 583, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[21325, 654, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[24022, 726, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[26970, 837, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[30935, 974, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[37202, 1228, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[44013, 1495, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[50100, 1731, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[56321, 1968, 1326, 37, 19, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[59470, 2083, 1326, 37, 19, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[62215, 2183, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[67642, 2390, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[72350, 2548, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[76465, 2707, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[79250, 2797, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[82973, 2929, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[87771, 3102, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[90461, 3198, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[93446, 3306, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[96353, 3397, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"]}, "Chen Storjohann"->{ Cell[98020, 3448, 181, 4, 55, "SmallText", CellTags->"Chen Storjohann"]} } *) (*CellTagsIndex CellTagsIndex->{ {"SlideShowHeader", 199847, 5749}, {"Chen Storjohann", 202453, 5806} } *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[567, 22, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[2178, 69, 68, 2, 135, "Title"], Cell[2249, 73, 34, 0, 87, "Author"], Cell[2286, 75, 98, 4, 119, "Affiliation"], Cell[2387, 81, 174, 3, 70, "Author"], Cell[2564, 86, 60, 3, 83, "Affiliation"], Cell[2627, 91, 44, 1, 4, "PageBreak", PageBreakBelow->True] }, Open ]], Cell[CellGroupData[{ Cell[2708, 97, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[4341, 146, 27, 0, 42, "Section"], Cell[4371, 148, 532, 8, 234, "Text"], Cell[4906, 158, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[4999, 165, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[6350, 206, 47, 0, 42, "Section"], Cell[6400, 208, 755, 11, 296, "Text"], Cell[7158, 221, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[7251, 228, 1608, 45, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[8884, 277, 47, 0, 42, "Section"], Cell[8934, 279, 347, 7, 141, "Text"], Cell[9284, 288, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[9377, 295, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[10728, 336, 47, 0, 42, "Section"], Cell[10778, 338, 320, 6, 141, "Text"], Cell[11101, 346, 192, 5, 79, "Text"], Cell[11296, 353, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[11389, 360, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[12740, 401, 47, 0, 42, "Section"], Cell[12790, 403, 320, 6, 141, "Text"], Cell[13113, 411, 192, 5, 79, "Text"], Cell[13308, 418, 203, 4, 79, "Text"], Cell[13514, 424, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[13607, 431, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[14958, 472, 47, 0, 42, "Section"], Cell[15008, 474, 294, 5, 141, "Text"], Cell[15305, 481, 192, 5, 79, "Text"], Cell[15500, 488, 203, 4, 79, "Text"], Cell[15706, 494, 118, 3, 48, "Text"], Cell[15827, 499, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[15920, 506, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[17271, 547, 47, 0, 42, "Section"], Cell[17321, 549, 402, 6, 172, "Text"], Cell[17726, 557, 311, 5, 141, "Text"], Cell[18040, 564, 704, 10, 296, "Text"], Cell[18747, 576, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[18840, 583, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[20191, 624, 89, 2, 42, "Section"], Cell[20283, 628, 640, 10, 265, "Text"], Cell[20926, 640, 303, 5, 141, "Text"], Cell[21232, 647, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[21325, 654, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[22676, 695, 38, 0, 42, "Section"], Cell[22717, 697, 937, 13, 358, "Text"], Cell[23657, 712, 269, 5, 110, "Text"], Cell[23929, 719, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[24022, 726, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[25373, 767, 37, 0, 42, "Section"], Cell[25413, 769, 1461, 59, 307, "Text"], Cell[26877, 830, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[26970, 837, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[28321, 878, 49, 0, 42, "Section"], Cell[28373, 880, 799, 33, 136, "Text"], Cell[29175, 915, 352, 12, 81, "Text"], Cell[29530, 929, 386, 7, 141, "Text"], Cell[29919, 938, 739, 21, 172, "Text"], Cell[30661, 961, 178, 4, 79, "Text"], Cell[30842, 967, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[30935, 974, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[32286, 1015, 33, 0, 42, "Section"], Cell[32322, 1017, 1418, 58, 120, "Text"], Cell[33743, 1077, 1190, 53, 133, "Text"], Cell[34936, 1132, 1302, 49, 246, "Text"], Cell[36241, 1183, 865, 36, 106, "Text"], Cell[37109, 1221, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[37202, 1228, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[38553, 1269, 33, 0, 42, "Section"], Cell[38589, 1271, 1468, 60, 164, "Text"], Cell[40060, 1333, 2117, 79, 362, "Text"], Cell[42180, 1414, 1737, 72, 169, "Text"], Cell[43920, 1488, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[44013, 1495, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[45364, 1536, 33, 0, 42, "Section"], Cell[45400, 1538, 1176, 50, 223, "Text"], Cell[46579, 1590, 912, 36, 122, "Text"], Cell[47494, 1628, 949, 34, 196, "Text"], Cell[48446, 1664, 1558, 58, 147, "Text"], Cell[50007, 1724, 44, 1, 4, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[50100, 1731, 1326, 37, 29, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[51451, 1772, 33, 0, 42, "Section"], Cell[51487, 1774, 3076, 124, 394, "Text"], Cell[54566, 1900, 1414, 53, 239, "Text"], Cell[55983, 1955, 242, 4, 110, "Text"], Cell[56228, 1961, 44, 1, 4, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[56321, 1968, 1326, 37, 19, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[57672, 2009, 47, 0, 66, "Section"], Cell[57722, 2011, 281, 9, 31, "Input"], Cell[58006, 2022, 52, 0, 45, "Text"], Cell[CellGroupData[{ Cell[58083, 2026, 138, 4, 31, "Input"], Cell[58224, 2032, 49, 0, 31, "Output"] }, Open ]], Cell[58288, 2035, 249, 5, 113, "Text"], Cell[CellGroupData[{ Cell[58562, 2044, 532, 17, 79, "Input"], Cell[59097, 2063, 114, 3, 31, "Output"], Cell[59214, 2068, 114, 3, 31, "Output"], Cell[59331, 2073, 31, 0, 31, "Output"] }, Open ]], Cell[59377, 2076, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[59470, 2083, 1326, 37, 19, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[60821, 2124, 47, 0, 66, "Section"], Cell[60871, 2126, 89, 2, 45, "Text"], Cell[CellGroupData[{ Cell[60985, 2132, 174, 5, 31, "Input"], Cell[61162, 2139, 126, 4, 31, "Output"] }, Open ]], Cell[61303, 2146, 449, 13, 147, "Text"], Cell[CellGroupData[{ Cell[61777, 2163, 204, 6, 31, "Input"], Cell[61984, 2171, 46, 0, 31, "Output"] }, Open ]], Cell[62045, 2174, 74, 0, 45, "Text"], Cell[62122, 2176, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[62215, 2183, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[63566, 2224, 36, 0, 66, "Section"], Cell[63605, 2226, 1276, 44, 322, "Text"], Cell[64884, 2272, 1516, 64, 176, "Text"], Cell[66403, 2338, 276, 11, 83, "Text"], Cell[66682, 2351, 533, 17, 55, "Input"], Cell[CellGroupData[{ Cell[67240, 2372, 188, 4, 34, "Input"], Cell[67431, 2378, 103, 2, 44, "Output"] }, Open ]], Cell[67549, 2383, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[67642, 2390, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[68993, 2431, 36, 0, 66, "Section"], Cell[69032, 2433, 187, 4, 113, "Text"], Cell[69222, 2439, 1715, 50, 199, "Input"], Cell[CellGroupData[{ Cell[70962, 2493, 189, 4, 34, "Input"], Cell[71154, 2499, 103, 2, 44, "Output"] }, Open ]], Cell[71272, 2504, 62, 0, 45, "Text"], Cell[71337, 2506, 585, 20, 55, "Input"], Cell[CellGroupData[{ Cell[71947, 2530, 189, 4, 34, "Input"], Cell[72139, 2536, 103, 2, 44, "Output"] }, Open ]], Cell[72257, 2541, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[72350, 2548, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[73701, 2589, 65, 0, 66, "Section"], Cell[73769, 2591, 63, 0, 45, "Text"], Cell[73835, 2593, 381, 13, 31, "Input"], Cell[CellGroupData[{ Cell[74241, 2610, 63, 1, 31, "Input"], Cell[74307, 2613, 31, 0, 31, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[74375, 2618, 175, 5, 31, "Input"], Cell[74553, 2625, 128, 4, 31, "Output"] }, Open ]], Cell[74696, 2632, 33, 0, 45, "Text"], Cell[CellGroupData[{ Cell[74754, 2636, 216, 7, 31, "Input"], Cell[74973, 2645, 28, 0, 31, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[75038, 2650, 208, 6, 31, "Input"], Cell[75249, 2658, 157, 5, 31, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[75443, 2668, 212, 6, 31, "Input"], Cell[75658, 2676, 161, 5, 31, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[75856, 2686, 69, 1, 31, "Input"], Cell[75928, 2689, 31, 0, 31, "Output"] }, Open ]], Cell[75974, 2692, 395, 6, 215, "Text"], Cell[76372, 2700, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[76465, 2707, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[77816, 2748, 43, 0, 66, "Section"], Cell[77862, 2750, 828, 29, 180, "Text"], Cell[78693, 2781, 461, 7, 215, "Text"], Cell[79157, 2790, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[79250, 2797, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[80601, 2838, 43, 0, 66, "Section"], Cell[80647, 2840, 141, 3, 79, "Text"], Cell[80791, 2845, 902, 33, 180, "Text"], Cell[81696, 2880, 222, 4, 113, "Text"], Cell[81921, 2886, 669, 27, 112, "Text"], Cell[82593, 2915, 284, 5, 147, "Text"], Cell[82880, 2922, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[82973, 2929, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[84324, 2970, 51, 0, 66, "Section"], Cell[84378, 2972, 165, 3, 79, "Text"], Cell[CellGroupData[{ Cell[84568, 2979, 1076, 33, 151, "Input"], Cell[85647, 3014, 242, 7, 31, "Output"], Cell[85892, 3023, 243, 7, 31, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[86172, 3035, 348, 11, 55, "Input"], Cell[86523, 3048, 532, 17, 31, "Output"] }, Open ]], Cell[87070, 3068, 324, 11, 31, "Input"], Cell[87397, 3081, 46, 0, 45, "Text"], Cell[CellGroupData[{ Cell[87468, 3085, 161, 5, 31, "Input"], Cell[87632, 3092, 31, 0, 31, "Output"] }, Open ]], Cell[87678, 3095, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[87771, 3102, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[89122, 3143, 51, 0, 66, "Section"], Cell[CellGroupData[{ Cell[89198, 3147, 91, 2, 31, "Input"], Cell[89292, 3151, 351, 10, 103, "Output"] }, Open ]], Cell[89658, 3164, 99, 2, 79, "Text"], Cell[89760, 3168, 160, 3, 79, "Text"], Cell[CellGroupData[{ Cell[89945, 3175, 284, 9, 31, "Input"], Cell[90232, 3186, 121, 2, 55, "Output"] }, Open ]], Cell[90368, 3191, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[90461, 3198, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[91812, 3239, 51, 0, 66, "Section"], Cell[CellGroupData[{ Cell[91888, 3243, 334, 11, 55, "Input"], Cell[92225, 3256, 355, 11, 79, "Output"] }, Open ]], Cell[92595, 3270, 134, 3, 79, "Text"], Cell[CellGroupData[{ Cell[92754, 3277, 289, 7, 79, "Input"], Cell[93046, 3286, 45, 1, 31, "Output"], Cell[93094, 3289, 244, 7, 31, "Output"] }, Open ]], Cell[93353, 3299, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[93446, 3306, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[94797, 3347, 26, 0, 66, "Section"], Cell[94826, 3349, 303, 5, 147, "Text"], Cell[95132, 3356, 60, 0, 45, "Text"], Cell[95195, 3358, 99, 2, 45, "Text"], Cell[95297, 3362, 102, 2, 45, "Text"], Cell[95402, 3366, 144, 2, 45, "Text"], Cell[95549, 3370, 137, 2, 45, "Text"], Cell[95689, 3374, 188, 5, 79, "Text"], Cell[95880, 3381, 377, 7, 147, "Text"], Cell[96260, 3390, 44, 1, 1, "PageBreak", PageBreakBelow->True] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[96353, 3397, 1326, 37, 79, "SlideShowNavigationBar", CellTags->"SlideShowHeader"], Cell[CellGroupData[{ Cell[97704, 3438, 38, 0, 66, "Section"], Cell[97745, 3440, 272, 6, 55, "SmallText", PageBreakAbove->Automatic], Cell[98020, 3448, 181, 4, 55, "SmallText", CellTags->"Chen Storjohann"], Cell[98204, 3454, 236, 7, 55, "SmallText", PageBreakAbove->Automatic], Cell[98443, 3463, 199, 6, 32, "SmallText", PageBreakAbove->Automatic], Cell[98645, 3471, 217, 5, 55, "SmallText", PageBreakAbove->Automatic], Cell[98865, 3478, 148, 3, 32, "SmallText"], Cell[99016, 3483, 284, 5, 55, "SmallText", PageBreakAbove->Automatic], Cell[99303, 3490, 420, 8, 78, "SmallText", PageBreakAbove->Automatic], Cell[99726, 3500, 225, 7, 32, "SmallText", PageBreakAbove->Automatic], Cell[99954, 3509, 309, 6, 78, "SmallText", PageBreakAbove->Automatic], Cell[100266, 3517, 230, 5, 78, "SmallText", PageBreakAbove->Automatic] }, Open ]] }, Open ]] } ] *) (* End of internal cache information *)