(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 8.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 157, 7] NotebookDataLength[ 46850, 1077] NotebookOptionsPosition[ 44615, 1016] NotebookOutlinePosition[ 45086, 1034] CellTagsIndexPosition[ 45043, 1031] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"(*", " ", RowBox[{"invoking", " ", "comptational", " ", "geometry", " ", "package"}], " ", "*)"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10001.}, CellChangeTimes->{3.5549887383466797`*^9, 3.5549887845771484`*^9, 3.554988816001953*^9, 3.555205893017578*^9, 3.555209741248047*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{"<<", "ComputationalGeometry`"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10001.}, CellChangeTimes->{3.5549887383466797`*^9, 3.5549887845771484`*^9, 3.554988816001953*^9, 3.555205893017578*^9, 3.555209741248047*^9}, FontFamily->"Consolas", FontWeight->"Plain"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"(*", " ", RowBox[{"support", " ", "functions"}], " ", "*)"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.555208311583008*^9, 3.555208356185547*^9}}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "gives", " ", "the", " ", "closest", " ", "point", " ", "in", " ", "the", " ", "list", " ", "to", " ", RowBox[{"pt", ".", "note"}], " ", "that", " ", "we", " ", "are", " ", "sending", " ", "the", " ", "address", " ", "of", " ", "the", " ", "closet", " ", "point", " ", "and", " ", "not", " ", "the", " ", "closest", " ", "point", " ", "itself"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"closestpt", "[", RowBox[{"pt_", ",", "list_"}], "]"}], ":=", RowBox[{ RowBox[{"Ordering", "[", RowBox[{ RowBox[{ RowBox[{"EuclideanDistance", "[", RowBox[{"#", ",", "pt"}], "]"}], "&"}], "/@", "list"}], "]"}], "//", "First"}]}], "\[IndentingNewLine]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.554970415073242*^9, 3.5549704473828125`*^9}, { 3.5549705010966797`*^9, 3.554970502821289*^9}, {3.554970543958008*^9, 3.554970639017578*^9}, {3.5549707715185547`*^9, 3.5549708834072266`*^9}, 3.5549709295810547`*^9, {3.5549720235439453`*^9, 3.554972048883789*^9}, { 3.554972096111328*^9, 3.5549722271660156`*^9}, {3.5549723335791016`*^9, 3.554972337633789*^9}, {3.5549733405273438`*^9, 3.5549733488740234`*^9}, { 3.554985528493164*^9, 3.554985573705078*^9}, {3.5549868674433594`*^9, 3.5549869626640625`*^9}, {3.5552059030410156`*^9, 3.555205907765625*^9}, { 3.555205955569336*^9, 3.555206017951172*^9}, {3.5552060551416016`*^9, 3.5552060567714844`*^9}, {3.5552063596152344`*^9, 3.5552063643691406`*^9}, 3.555208356185547*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"setminus", "[", RowBox[{"a_List", ",", "b_List"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"new", "=", "a"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"MemberQ", "[", RowBox[{"a", ",", "#"}], "]"}], ",", RowBox[{"new", "=", RowBox[{"DeleteCases", "[", RowBox[{"new", ",", "#"}], "]"}]}]}], "]"}], "&"}], "/@", "b"}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", "new", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.554984771373047*^9, 3.5549847823291016`*^9}, { 3.5551646140458984`*^9, 3.555164674578125*^9}, {3.555164714305664*^9, 3.5551647286933594`*^9}, {3.5552061518808594`*^9, 3.555206153004883*^9}, 3.5552083561865234`*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"ranges", " ", "from", " ", "0", " ", "to", " ", "2", "\[Pi]"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"nanarctan", "[", "pt_", "]"}], ":=", RowBox[{"If", "[", RowBox[{ RowBox[{"pt", "==", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], ",", RowBox[{"Return", "[", "0", "]"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"ArcTan", "[", RowBox[{ RowBox[{"pt", "[", RowBox[{"[", "1", "]"}], "]"}], ",", RowBox[{"pt", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}], "\[GreaterEqual]", "0"}], ",", RowBox[{"Return", "[", RowBox[{"ArcTan", "[", RowBox[{ RowBox[{"pt", "[", RowBox[{"[", "1", "]"}], "]"}], ",", RowBox[{"pt", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}], "]"}], ",", RowBox[{"Return", "[", RowBox[{ RowBox[{"2", "\[Pi]"}], "+", RowBox[{"ArcTan", "[", RowBox[{ RowBox[{"pt", "[", RowBox[{"[", "1", "]"}], "]"}], ",", RowBox[{"pt", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}], "]"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.5551690010078125`*^9, 3.555169062006836*^9}, { 3.555169104928711*^9, 3.555169135408203*^9}, {3.555169246899414*^9, 3.5551692887314453`*^9}, {3.555194960138672*^9, 3.555194993864258*^9}, 3.555197055225586*^9, {3.555199301421875*^9, 3.5551993389726562`*^9}, { 3.5551994112373047`*^9, 3.5551994636064453`*^9}, {3.555206670501953*^9, 3.555206730473633*^9}, 3.5552083561875*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "pt1", " ", "moves", " ", "to", " ", "pt2", " ", "in", " ", "anticlockwise", " ", "direction"}], ",", " ", RowBox[{ "thinking", " ", "both", " ", "points", " ", "are", " ", "on", " ", "the", " ", "unit", " ", "circle"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"positiveangle", "[", RowBox[{"{", RowBox[{"pt1_", ",", "pt2_"}], "}"}], "]"}], ":=", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"nanarctan", "[", "pt1", "]"}], "\[LessEqual]", RowBox[{"nanarctan", "[", "pt2", "]"}]}], ",", RowBox[{ RowBox[{"nanarctan", "[", "pt2", "]"}], "-", RowBox[{"nanarctan", "[", "pt1", "]"}]}], ",", RowBox[{ RowBox[{"2", "\[Pi]"}], "-", RowBox[{"(", RowBox[{ RowBox[{"nanarctan", "[", "pt1", "]"}], "-", RowBox[{"nanarctan", "[", "pt2", "]"}]}], ")"}]}]}], "]"}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.555168940376953*^9, 3.5551689716289062`*^9}, { 3.5551691744404297`*^9, 3.555169197026367*^9}, {3.5551693335527344`*^9, 3.5551693399101562`*^9}, {3.5551698309101562`*^9, 3.555169963984375*^9}, { 3.5551699996621094`*^9, 3.5551700020566406`*^9}, {3.5551700335458984`*^9, 3.555170051098633*^9}, {3.5551958983671875`*^9, 3.555195901145508*^9}, { 3.5551967699335938`*^9, 3.5551967867666016`*^9}, 3.555197055227539*^9, 3.5552083561875*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "reflect", " ", "the", " ", "point", " ", "pt1", " ", "about", " ", "the", " ", "point", " ", "pt2", " ", "on", " ", "the", " ", "straight", " ", "line", " ", "connecting", " ", "them"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"reflect", "[", "pair_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"2", RowBox[{"pair", "[", RowBox[{"[", RowBox[{"2", ",", "#"}], "]"}], "]"}]}], "-", RowBox[{"pair", "[", RowBox[{"[", RowBox[{"1", ",", "#"}], "]"}], "]"}]}], "&"}], "/@", RowBox[{"Range", "[", "2", "]"}]}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.555195509194336*^9, 3.5551956610253906`*^9}, { 3.5551963871845703`*^9, 3.555196394600586*^9}, {3.5551964711953125`*^9, 3.555196525133789*^9}, {3.5551965563427734`*^9, 3.555196575446289*^9}, 3.5551967118427734`*^9, 3.5551970552285156`*^9, 3.555200084017578*^9, 3.5552083561875*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"pair", " ", "defines", " ", "a", " ", RowBox[{"line", ".", " ", "how"}], " ", "much", " ", "positive", " ", "angle", " ", "do", " ", "we", " ", "have", " ", "cover", " ", "so", " ", "that", " ", "a", " ", "imaginary", " ", "leading", " ", "point", " ", "with", " ", "the", " ", "same", " ", "slope", " ", "as", " ", "pair", " ", RowBox[{"(", RowBox[{"and", " ", RowBox[{"pair", "[", RowBox[{"[", "2", "]"}], "]"}], " ", "as", " ", "the", " ", "base", " ", "point"}], ")"}], " ", "to", " ", "reach", " ", "pt"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"positivelineangle", "[", RowBox[{"{", RowBox[{"pair_", ",", "pt_"}], "}"}], "]"}], ":=", RowBox[{"Module", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"rbasept", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"refpt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"rleadpt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"rpt", "=", RowBox[{"{", "}"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"rbasept", "=", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"refpt", "=", RowBox[{"reflect", "[", "pair", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"rleadpt", "=", RowBox[{"refpt", "-", RowBox[{"pair", "[", RowBox[{"[", "2", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"rpt", "=", RowBox[{"pt", "-", RowBox[{"pair", "[", RowBox[{"[", "2", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"Return", "[", RowBox[{"positiveangle", "[", RowBox[{"{", RowBox[{"rleadpt", ",", "rpt"}], "}"}], "]"}], "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}, CellChangeTimes->{{3.555195126986328*^9, 3.5551951848583984`*^9}, { 3.5551953004257812`*^9, 3.5551953122314453`*^9}, {3.5551957021533203`*^9, 3.555195711288086*^9}, {3.555195751288086*^9, 3.5551959408496094`*^9}, { 3.5551961271689453`*^9, 3.5551961753466797`*^9}, {3.555196207076172*^9, 3.555196254923828*^9}, {3.5551962976347656`*^9, 3.555196298498047*^9}, { 3.5551963528671875`*^9, 3.555196353013672*^9}, {3.555196457270508*^9, 3.5551964574472656`*^9}, {3.5551966442597656`*^9, 3.5551966617910156`*^9}, {3.555196719022461*^9, 3.5551967259365234`*^9}, { 3.5551968063535156`*^9, 3.555196824296875*^9}, {3.5551968760722656`*^9, 3.555197016694336*^9}, 3.555197055229492*^9, {3.5551972463466797`*^9, 3.5551972467998047`*^9}, 3.555197325763672*^9, 3.5552083561884766`*^9}, FontFamily->"Consolas", FontWeight->"Plain"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"(*", " ", RowBox[{"main", " ", RowBox[{"function", " ", "'"}], RowBox[{"srikconvexhull2", "'"}]}], "*)"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10003.}, CellChangeTimes->{{3.555208412147461*^9, 3.5552084428046875`*^9}, { 3.555209715892578*^9, 3.555209721171875*^9}, {3.555213704385742*^9, 3.5552137578554688`*^9}}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"srikconvexhull2", "[", RowBox[{"points_", ",", RowBox[{"precision_:", SuperscriptBox["10", RowBox[{"-", "10"}]]}]}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "set", " ", "precision", " ", "smaller", " ", "than", " ", "least", " ", "difference", " ", "between", " ", "any", " ", "numbers", " ", "in", " ", RowBox[{"Flatten", "[", "points", "]"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"orgpt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"pt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"anglelist", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"newcollinearpts", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"newpt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"hull", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"oldpt", "=", RowBox[{"{", "}"}]}], ",", RowBox[{"selpoints", "=", RowBox[{"{", "}"}]}]}], "}"}], ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Length", "[", "points", "]"}], "\[LessEqual]", "3"}], ",", RowBox[{"Return", "[", "points", "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"send", " ", "off"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"orgpt", "=", RowBox[{"Part", "[", RowBox[{"points", ",", RowBox[{"Last", "[", RowBox[{"Ordering", "[", "points", "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"getting", " ", "right"}], "-", RowBox[{"top", " ", "point", " ", "using", " ", "ordering"}]}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"pt", "=", "orgpt"}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"initialising", " ", "pt", " ", "to", " ", "use"}], ",", " ", RowBox[{"and", " ", "to", " ", "keep", " ", "orgpt", " ", "safe"}]}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"hull", "=", RowBox[{"{", "orgpt", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "we", " ", "start", " ", "our", " ", "hull", " ", "with", " ", "right"}], "-", RowBox[{"top", " ", "point"}]}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"oldpt", "=", RowBox[{"{", RowBox[{ RowBox[{"orgpt", "[", RowBox[{"[", "1", "]"}], "]"}], ",", RowBox[{ RowBox[{"orgpt", "[", RowBox[{"[", "2", "]"}], "]"}], "-", "precision"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "setting", " ", "up", " ", "initial", " ", "old", " ", "pair", " ", "where", " ", "the", " ", "base", RowBox[{"(", "old", ")"}], " ", "point", " ", "is", " ", "just", " ", "below", " ", "the", " ", "orgpt"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"While", "[", RowBox[{"True", ",", "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Sort", "[", "hull", "]"}], "\[Equal]", RowBox[{"Sort", "[", "points", "]"}]}], ",", RowBox[{"Return", "[", "hull", "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "this", " ", "is", " ", "for", " ", "the", " ", "case", " ", "when", " ", "all", " ", "points", " ", "are", " ", "on", " ", "a", " ", RowBox[{"vertical", " ", "/", " ", "horizontal"}], " ", "line", " ", "when", " ", "our", " ", "while", " ", "breaking", " ", "condition", " ", "fails"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"selpoints", "=", RowBox[{"setminus", "[", RowBox[{"points", ",", RowBox[{"{", RowBox[{"oldpt", ",", "pt"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"avoids", " ", "two", " ", "previous", " ", "points"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"anglelist", "=", RowBox[{ RowBox[{ RowBox[{"positivelineangle", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"oldpt", ",", "pt"}], "}"}], ",", "#"}], "}"}], "]"}], "&"}], "/@", "selpoints"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "getting", " ", "the", " ", "list", " ", "of", " ", "all", " ", "angles"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"newcollinearpts", "=", RowBox[{ RowBox[{ RowBox[{"selpoints", "[", RowBox[{"[", "#", "]"}], "]"}], "&"}], "/@", RowBox[{"Flatten", "[", RowBox[{"Position", "[", RowBox[{"anglelist", ",", RowBox[{"Min", "[", "anglelist", "]"}]}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "The", " ", "set", " ", "of", " ", "collinear", " ", "points", " ", "that", " ", "have", " ", "minimum", " ", "angular", " ", "deviation", " ", "from", " ", "the", " ", "guiding", " ", "line"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"newpt", "=", RowBox[{"newcollinearpts", "[", RowBox[{"[", RowBox[{"closestpt", "[", RowBox[{"pt", ",", "newcollinearpts"}], "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "getting", " ", "the", " ", "actual", " ", "closet", " ", "point"}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"hull", "[", RowBox[{"[", "1", "]"}], "]"}], "==", "newpt"}], " ", ",", RowBox[{"Return", "[", "hull", "]"}], ",", RowBox[{"AppendTo", "[", RowBox[{"hull", ",", "newpt"}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "unless", " ", "we", " ", "reach", " ", "the", " ", "first", " ", "element", " ", "of", " ", "the", " ", "hull"}], ",", " ", RowBox[{"we", " ", "keep", " ", "appending"}]}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", RowBox[{"oldpt", "=", "pt"}], ";", "\[IndentingNewLine]", RowBox[{"pt", "=", "newpt"}], ";"}]}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "setting", " ", "up", " ", "the", " ", "things", " ", "for", " ", "the", " ", "next", " ", "iteration"}], " ", "*)"}], "\[IndentingNewLine]", "]"}], ";"}]}], "\[IndentingNewLine]", "]"}]}], ";"}], "\[IndentingNewLine]"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10003.}, CellChangeTimes->{{3.554966581498047*^9, 3.5549666188623047`*^9}, 3.5549666852070312`*^9, {3.554966725848633*^9, 3.5549668969257812`*^9}, { 3.554966998803711*^9, 3.554967019395508*^9}, {3.5549672479521484`*^9, 3.5549673214492188`*^9}, {3.554967692196289*^9, 3.5549677153691406`*^9}, { 3.554967831629883*^9, 3.5549679163554688`*^9}, {3.5549679477070312`*^9, 3.5549680396748047`*^9}, {3.554968124864258*^9, 3.554968390310547*^9}, { 3.554968426010742*^9, 3.55496843275*^9}, {3.554968512948242*^9, 3.554968729564453*^9}, 3.554968771963867*^9, {3.5549688569072266`*^9, 3.55496887359375*^9}, {3.554969122524414*^9, 3.55496916334375*^9}, { 3.554969245654297*^9, 3.554969256048828*^9}, {3.5549693740947266`*^9, 3.5549694150302734`*^9}, {3.5549694847558594`*^9, 3.554969488376953*^9}, { 3.554970521541992*^9, 3.5549705243964844`*^9}, {3.5549706771572266`*^9, 3.5549707643466797`*^9}, {3.5549709607246094`*^9, 3.554971026189453*^9}, { 3.554971149209961*^9, 3.554971159783203*^9}, {3.5549713074277344`*^9, 3.5549713134384766`*^9}, {3.55497153228125*^9, 3.5549715324853516`*^9}, { 3.5549716342939453`*^9, 3.5549716392597656`*^9}, {3.5549717119785156`*^9, 3.5549718151552734`*^9}, {3.554971923551758*^9, 3.554971957529297*^9}, { 3.554972241352539*^9, 3.5549722466279297`*^9}, {3.554972313080078*^9, 3.5549723259960938`*^9}, {3.554972394651367*^9, 3.5549724338671875`*^9}, { 3.5549725311904297`*^9, 3.5549725366054688`*^9}, {3.5549725726865234`*^9, 3.554972580323242*^9}, {3.554972625176758*^9, 3.5549726256757812`*^9}, { 3.554972665388672*^9, 3.5549727279492188`*^9}, {3.5549729175117188`*^9, 3.5549729475185547`*^9}, {3.5549733307626953`*^9, 3.5549733589472656`*^9}, 3.554973511442383*^9, {3.5549740359882812`*^9, 3.554974099661133*^9}, { 3.554974157484375*^9, 3.5549741728603516`*^9}, {3.554974399897461*^9, 3.5549745072490234`*^9}, {3.5549745417246094`*^9, 3.5549745427529297`*^9}, {3.5549747346152344`*^9, 3.554974735807617*^9}, { 3.5549747742841797`*^9, 3.5549747812041016`*^9}, {3.554974952538086*^9, 3.5549749902753906`*^9}, {3.554975072303711*^9, 3.5549750854941406`*^9}, { 3.5549752126328125`*^9, 3.5549752280058594`*^9}, {3.554984608591797*^9, 3.5549846091445312`*^9}, 3.554984680359375*^9, 3.5549847213164062`*^9, { 3.5549848363691406`*^9, 3.554984839294922*^9}, {3.554984876826172*^9, 3.554984901430664*^9}, {3.554984952493164*^9, 3.5549850408115234`*^9}, { 3.554985247263672*^9, 3.5549854362470703`*^9}, {3.554985632064453*^9, 3.554985710044922*^9}, {3.5549858828398438`*^9, 3.5549859837890625`*^9}, { 3.554986046104492*^9, 3.554986081546875*^9}, {3.5549861296347656`*^9, 3.554986201796875*^9}, {3.5549863044414062`*^9, 3.554986415852539*^9}, { 3.5549866610439453`*^9, 3.5549866648867188`*^9}, 3.554987039866211*^9, { 3.5549871447666016`*^9, 3.5549871660664062`*^9}, {3.55498763325*^9, 3.554987711692383*^9}, {3.5549877590322266`*^9, 3.5549877954316406`*^9}, { 3.5549878562910156`*^9, 3.5549879410439453`*^9}, {3.5549879732333984`*^9, 3.5549880184853516`*^9}, {3.5549880653710938`*^9, 3.554988159578125*^9}, { 3.554988341899414*^9, 3.5549883454472656`*^9}, {3.5549884323867188`*^9, 3.5549884353632812`*^9}, {3.5549886080097656`*^9, 3.5549886091103516`*^9}, {3.5549891633125*^9, 3.554989188692383*^9}, { 3.5549892456464844`*^9, 3.554989252133789*^9}, {3.554989446060547*^9, 3.554989518609375*^9}, {3.5549896897402344`*^9, 3.554989781640625*^9}, { 3.5549902153291016`*^9, 3.554990220915039*^9}, {3.555161907232422*^9, 3.5551619095410156`*^9}, {3.555161941859375*^9, 3.555161944895508*^9}, { 3.555162856716797*^9, 3.5551629515683594`*^9}, {3.55516317940625*^9, 3.5551632347460938`*^9}, {3.555163359830078*^9, 3.5551633671103516`*^9}, { 3.5551634041708984`*^9, 3.5551634124853516`*^9}, {3.5551636303125*^9, 3.5551636785273438`*^9}, {3.555163783879883*^9, 3.5551637861572266`*^9}, { 3.5551639670371094`*^9, 3.5551639745478516`*^9}, {3.5551640841992188`*^9, 3.555164085305664*^9}, {3.5551642206816406`*^9, 3.555164249536133*^9}, { 3.5551647633398438`*^9, 3.555164766001953*^9}, {3.5551648641904297`*^9, 3.5551648689658203`*^9}, 3.555164922307617*^9, {3.555165403166992*^9, 3.5551654472460938`*^9}, {3.5551659124023438`*^9, 3.555165912850586*^9}, { 3.555165957104492*^9, 3.555165967383789*^9}, {3.5551659976904297`*^9, 3.555166082020508*^9}, {3.555166180116211*^9, 3.555166180682617*^9}, { 3.555166222536133*^9, 3.555166231270508*^9}, {3.555166319401367*^9, 3.5551663790097656`*^9}, {3.555166457951172*^9, 3.5551665120546875`*^9}, { 3.555166644161133*^9, 3.5551666471289062`*^9}, {3.5551666840283203`*^9, 3.55516671375*^9}, {3.5551667706367188`*^9, 3.5551667845527344`*^9}, { 3.555166841169922*^9, 3.55516689109375*^9}, {3.5551669594316406`*^9, 3.5551669686933594`*^9}, {3.5551672026533203`*^9, 3.555167210998047*^9}, { 3.5551974442314453`*^9, 3.5551974998095703`*^9}, {3.5551975784248047`*^9, 3.5551975881035156`*^9}, {3.555197669508789*^9, 3.55519769409375*^9}, { 3.555197724913086*^9, 3.5551977364023438`*^9}, {3.555197923620117*^9, 3.5551979251054688`*^9}, {3.555197962959961*^9, 3.5551979936279297`*^9}, { 3.5551982912226562`*^9, 3.5551983461708984`*^9}, {3.555198383341797*^9, 3.5551983914882812`*^9}, {3.5551984666416016`*^9, 3.5551985252226562`*^9}, {3.5551985719716797`*^9, 3.5551985793945312`*^9}, {3.555198626658203*^9, 3.5551986627333984`*^9}, { 3.5551987967753906`*^9, 3.555198801760742*^9}, {3.555198863111328*^9, 3.555198883022461*^9}, 3.555198929140625*^9, {3.555199000779297*^9, 3.5551990149697266`*^9}, {3.5551991446259766`*^9, 3.555199144786133*^9}, 3.555199203786133*^9, {3.555199644463867*^9, 3.5551996835878906`*^9}, { 3.5551997139853516`*^9, 3.555199717830078*^9}, {3.5552084060078125`*^9, 3.5552084079023438`*^9}, 3.555208442805664*^9, {3.5552085488007812`*^9, 3.5552086141640625`*^9}, {3.5552086614746094`*^9, 3.5552086972910156`*^9}, {3.5552092093828125`*^9, 3.5552092772060547`*^9}, {3.555209481580078*^9, 3.555209493107422*^9}, { 3.555209554817383*^9, 3.5552095560615234`*^9}, {3.5552096074404297`*^9, 3.555209610051758*^9}, {3.5552096504853516`*^9, 3.555209702708008*^9}, { 3.5552133752802734`*^9, 3.5552133879921875`*^9}, {3.555213418158203*^9, 3.5552134188867188`*^9}, {3.555213654491211*^9, 3.5552136679697266`*^9}, { 3.5552137667617188`*^9, 3.555213805573242*^9}, {3.555213906368164*^9, 3.555213945291992*^9}, {3.5552140675371094`*^9, 3.555214186248047*^9}}, FontFamily->"Consolas", FontWeight->"Plain"] }, Closed]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"(*", " ", "testing", " ", "*)"}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{{3.5552097660390625`*^9, 3.5552098014033203`*^9}, 3.5552105025439453`*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"data", " ", "sets"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"testdata1", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{".6", ",", ".5"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"testdata2", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{".5", ",", ".5"}], "}"}], ",", RowBox[{"{", RowBox[{".8", ",", RowBox[{"-", ".9"}]}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"bigdata", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0.3215348547", ",", "0.0362958308"}], "}"}], ",", RowBox[{"{", RowBox[{"0.0240235813", ",", RowBox[{"-", "0.2356728797"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0459085121", ",", RowBox[{"-", "0.4156409925"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.3218384002", ",", "0.1379850699"}], "}"}], ",", RowBox[{"{", RowBox[{"0.1150647976", ",", RowBox[{"-", "0.1059521475"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.262254", ",", RowBox[{"-", "0.2970287332"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1619209574"}], ",", RowBox[{"-", "0.4055339716"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.1905378631", ",", "0.3698601009"}], "}"}], ",", RowBox[{"{", RowBox[{"0.2387090919", ",", RowBox[{"-", "0.0162982708"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0749588875", ",", RowBox[{"-", "0.165982511"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.3319341837", ",", RowBox[{"-", "0.1821814102"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0770363576", ",", RowBox[{"-", "0.2499430638"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.2069242999", ",", RowBox[{"-", "0.223297076"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0460407953", ",", RowBox[{"-", "0.1923573187"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0505429581", ",", "0.4754929463"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.3900589169"}], ",", "0.2797829521"}], "}"}], ",", RowBox[{"{", RowBox[{"0.3120693386", ",", RowBox[{"-", "0.0506329868"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0113881272", ",", "0.4002504702"}], "}"}], ",", RowBox[{"{", RowBox[{"0.0096451496", ",", "0.1060251101"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.035979332"}], ",", "0.2953639457"}], "}"}], ",", RowBox[{"{", RowBox[{"0.1818290867", ",", "0.0014543976"}], "}"}], ",", RowBox[{"{", RowBox[{"0.4440560634", ",", "0.2502497167"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.0530175246"}], ",", RowBox[{"-", "0.0655392162"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.4823896228", ",", RowBox[{"-", "0.4776170002"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.3089226846"}], ",", RowBox[{"-", "0.063561122"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.2717807412"}], ",", "0.1810810596"}], "}"}], ",", RowBox[{"{", RowBox[{"0.4293626523", ",", "0.2980897965"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.0047966521"}], ",", "0.3826638128"}], "}"}], ",", RowBox[{"{", RowBox[{"0.4306955733", ",", RowBox[{"-", "0.29950735"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.1799668387", ",", RowBox[{"-", "0.2973467473"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.4932166845", ",", "0.4928094163"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.3521487912"}], ",", "0.4352656197"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.4907368012"}], ",", "0.1865826866"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1047924716"}], ",", RowBox[{"-", "0.2470733921"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.4374961862", ",", RowBox[{"-", "0.0016062795"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.0032562078", ",", RowBox[{"-", "0.272919432"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.043103782", ",", "0.445260405"}], "}"}], ",", RowBox[{"{", RowBox[{"0.4916198379", ",", RowBox[{"-", "0.3453917013"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0.001675087", ",", "0.1531837672"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.4404289573"}], ",", RowBox[{"-", "0.2894855992"}]}], "}"}]}], "}"}]}], ";"}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{{3.5552097660390625`*^9, 3.5552098108603516`*^9}, { 3.5552098491132812`*^9, 3.5552098697128906`*^9}, {3.555210027970703*^9, 3.5552100448408203`*^9}, 3.5552105025439453`*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"verifying", " ", "functions"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"verify", "[", "data_", "]"}], ":=", RowBox[{ RowBox[{"Sort", "[", RowBox[{"srikconvexhull2", "[", "data", "]"}], "]"}], "\[Equal]", RowBox[{"Sort", "[", RowBox[{ RowBox[{ RowBox[{"data", "[", RowBox[{"[", "#", "]"}], "]"}], "&"}], "/@", RowBox[{"ConvexHull", "[", "data", "]"}]}], "]"}]}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{{3.555210065020508*^9, 3.555210145283203*^9}, 3.555210319970703*^9, 3.5552105025439453`*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"chitratorsu", "[", "data_", "]"}], ":=", RowBox[{"Show", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Graphics", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"EdgeForm", "[", RowBox[{"{", RowBox[{"Thick", ",", "Green"}], "}"}], "]"}], ",", RowBox[{"FaceForm", "[", "White", "]"}], ",", RowBox[{"Polygon", "[", RowBox[{ RowBox[{ RowBox[{"data", "[", RowBox[{"[", "#", "]"}], "]"}], "&"}], "/@", RowBox[{"ConvexHull", "[", "data", "]"}]}], "]"}]}], "}"}], ",", RowBox[{"Frame", "\[Rule]", "True"}]}], "]"}], ",", RowBox[{"Graphics", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"EdgeForm", "[", RowBox[{"{", RowBox[{"Thin", ",", "Red"}], "}"}], "]"}], ",", RowBox[{"FaceForm", "[", "White", "]"}], ",", RowBox[{"Polygon", "[", RowBox[{"srikconvexhull2", "[", "data", "]"}], "]"}]}], "}"}], ",", RowBox[{"Frame", "\[Rule]", "True"}]}], "]"}], ",", RowBox[{"ListPlot", "[", "data", "]"}]}], "]"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{{3.5552102323496094`*^9, 3.555210288951172*^9}, 3.555210319970703*^9, 3.555210502544922*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"actual", " ", "verifications"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"verify", "[", "#", "]"}], "&"}], "/@", RowBox[{"{", RowBox[{"testdata1", ",", "testdata2", ",", "bigdata"}], "}"}]}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{{3.5552103327734375`*^9, 3.555210389029297*^9}, 3.555210502544922*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{"{", RowBox[{"True", ",", "True", ",", "True"}], "}"}]], "Output", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{3.5552104179072266`*^9, 3.5552105025458984`*^9, 3.5552132183779297`*^9, 3.555214216864258*^9}], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"chitratorsu", "[", "#", "]"}], "&"}], "/@", RowBox[{"{", RowBox[{"testdata1", ",", "testdata2", ",", "bigdata"}], "}"}]}]], "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{3.5552104658095703`*^9, 3.5552105025458984`*^9}, FontFamily->"Consolas", FontWeight->"Plain"], Cell[BoxData[ RowBox[{"{", RowBox[{ GraphicsBox[{ {EdgeForm[{RGBColor[0, 1, 0], Thickness[Large]}], FaceForm[GrayLevel[1]], PolygonBox[{{1, 0}, {1, 1}, {0, 0}}]}, {EdgeForm[{RGBColor[1, 0, 0], Thickness[Tiny]}], FaceForm[GrayLevel[1]], PolygonBox[{{1, 1}, {0, 0}, {1, 0}}]}, {Hue[0.67, 0.6, 0.6], PointBox[{{0., 0.}, {1., 0.}, {1., 1.}, {0.6, 0.5}}]}}, Frame->True, ImageCache->GraphicsData["CompressedBitmap", "\<\ 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 cc0oOubngfKftWp/ARYZ7Dg=\ \>"]], ",", GraphicsBox[{ {EdgeForm[{RGBColor[0, 1, 0], Thickness[Large]}], FaceForm[GrayLevel[1]], PolygonBox[{{1, -1}, {1, 1}, {-1, 1}, {-1, 0}, {-1, -1}}]}, {EdgeForm[{RGBColor[1, 0, 0], Thickness[Tiny]}], FaceForm[GrayLevel[1]], PolygonBox[{{1, 1}, {-1, 1}, {-1, 0}, {-1, -1}, {1, -1}}]}, {Hue[0.67, 0.6, 0.6], PointBox[{{0., 0.}, {1., 1.}, {-1., -1.}, {-1., 1.}, {1., -1.}, {-1., 0.}, {0.5, 0.5}, {0.8, -0.9}}]}}, Frame->True], ",", GraphicsBox[{ {EdgeForm[{RGBColor[0, 1, 0], Thickness[Large]}], FaceForm[GrayLevel[1]], PolygonBox[{{0.4932166845, 0.4928094163}, {0.0505429581, 0.4754929463}, {-0.3521487912, 0.4352656197}, {-0.4907368012, 0.1865826866}, {-0.4404289573, -0.2894855992}, {-0.1619209574, \ -0.4055339716}, {0.4823896228, -0.4776170002}, { 0.4916198379, -0.3453917013}}]}, {EdgeForm[{RGBColor[1, 0, 0], Thickness[Tiny]}], FaceForm[GrayLevel[1]], PolygonBox[{{0.4932166845, 0.4928094163}, {0.0505429581, 0.4754929463}, {-0.3521487912, 0.4352656197}, {-0.4907368012, 0.1865826866}, {-0.4404289573, -0.2894855992}, {-0.1619209574, \ -0.4055339716}, {0.4823896228, -0.4776170002}, { 0.4916198379, -0.3453917013}}]}, {Hue[0.67, 0.6, 0.6], PointBox[CompressedData[" 1:eJwBkQJu/SFib1JlAgAAACgAAAACAAAAqnpd7QaU1D/Sx4j8XZWiPzSwEECj mZg/Xs1uZ4cqzr+9sCcMUoGnP9yGaq3cmdq/ci7dFgCZ1D9fREepfqnBP1nk nPbidL0/fRZ0EK4fu78YsU8AxcjQP2o+xM2EAtO/EPZIcNO5xL91GFzCRPTZ v1UFVXGLY8g/GH1ds8mr1z8s83v/BI7OP9z3RHB+sJC/L2dbcoEwsz+a+jk4 6j7Fvwef2t9oPtU/vMNfb7hRx7/EtX6cp7izP4EHcWIi/s+/prpo1n58yj/L MFuj/5TMvynPMLyokqc/Xjt7JCqfyL9TSipAxOCpP22Udfd5bt4/zVDmrLn2 2L+F3E/B9ufRPzXE16zx+NM/6EHPHJHsqb/o7xePqFKHP4ft7SW0ndk/WLbG ENbAgz89Lm8sdiS7P+w5iwzia6K/vrzMLT7n0j8tRWvuLEbHPy0CJ4gv1Fc/ JS95H2pr3D8x00NjFwTQP0Mzi+wcJau/pjkvli3HsL8IxXa5eN/ePxjZ9+RG kd6/lV7WpmPF078qfUmsikWwv7W+yAzbZNG/dRl0Bqotxz//JXB9rXrbP2xI zznnE9M/6Illfqelc7+1rFVckH3YPwnAdiqEkNs/E1hK4CAr079xXkpDJwnH PzRuzqa6B9O/HjhxttyQ3z+f1oqBMIrfP2rqYRWbida/sNFrVGTb2z/1PwZU O2jfv1AxeQTx4cc/FZZj7q3Tur8kAWTVGaDPv3Wj9gDw/9s/d1PtejlRWr/O wVFAw6xqP16BuBCDd9G/Yz4M7LIRpj8RcGt/JX/cP78Zdg2zdt8/1ytZy+Ua 1r+mVIL40nFbP0Z3M5OGm8M/ACf07/wv3L+Thk6b7obSv77fTtM= "]]}}, Frame->True]}], "}"}]], "Output", CellGroupingRules->{GroupTogetherGrouping, 10004.}, CellChangeTimes->{3.5552104702382812`*^9, 3.555210502546875*^9, 3.555213219048828*^9, 3.555214217263672*^9}] }, Closed]] }, WindowSize->{1592, 764}, WindowMargins->{{0, Automatic}, {Automatic, 0}}, CellLabelAutoDelete->True, Magnification:>FEPrivate`If[ FEPrivate`Equal[FEPrivate`$VersionNumber, 6.], 1.25, 1.25 Inherited], FrontEndVersion->"8.0 for Microsoft Windows (32-bit) (November 7, 2010)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[579, 22, 375, 8, 55, "Input", CellGroupingRules->{GroupTogetherGrouping, 10001.}], Cell[957, 32, 303, 6, 68, "Input", CellGroupingRules->{GroupTogetherGrouping, 10001.}] }, Closed]], Cell[CellGroupData[{ Cell[1297, 43, 264, 6, 40, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[1564, 51, 1710, 35, 197, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[3277, 88, 1057, 28, 197, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[4337, 118, 1970, 50, 282, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[6310, 170, 1565, 38, 155, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[7878, 210, 1109, 28, 112, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}], Cell[8990, 240, 2923, 64, 452, "Input", CellGroupingRules->{GroupTogetherGrouping, 10002.}] }, Closed]], Cell[CellGroupData[{ Cell[11950, 309, 419, 10, 40, "Input", CellGroupingRules->{GroupTogetherGrouping, 10003.}], Cell[12372, 321, 14512, 274, 1624, "Input", CellGroupingRules->{GroupTogetherGrouping, 10003.}] }, Closed]], Cell[CellGroupData[{ Cell[26921, 600, 265, 6, 40, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[27189, 608, 6098, 168, 600, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[33290, 778, 726, 20, 90, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[34019, 800, 1389, 36, 158, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[35411, 838, 504, 15, 90, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[35918, 855, 262, 5, 53, "Output", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[36183, 862, 354, 9, 55, "Input", CellGroupingRules->{GroupTogetherGrouping, 10004.}], Cell[36540, 873, 8059, 140, 364, "Output", CellGroupingRules->{GroupTogetherGrouping, 10004.}] }, Closed]] } ] *) (* End of internal cache information *)