(* 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[ 258377, 7438] NotebookOptionsPosition[ 246424, 7049] NotebookOutlinePosition[ 247762, 7091] CellTagsIndexPosition[ 247503, 7082] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[BoxData[{ RowBox[{ RowBox[{"SetDirectory", "[", RowBox[{"NotebookDirectory", "[", "]"}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Get", "[", "\"\\"", "]"}], ";"}]}], "Input", CellChangeTimes->{{3.632669167274749*^9, 3.632669169688089*^9}}], Cell[TextData[{ "PlanarLinkages \[LongDash] Copyright \[Copyright] 2015 Christoph \ Koutschan\n", StyleBox["This program comes with absolutely no warranty; it is free \ software,\nand you are welcome to redistribute it and/or modify it under the\n\ terms of the GNU General Public License (http://www.gnu.org/licenses/).", FontSize->Small] }], "Text", CellFrame->0.5, GeneratedCell->True, CellAutoOverwrite->True, CellChangeTimes->{3.6532210497226143`*^9}, FontColor->GrayLevel[0], Background->RGBColor[0.796887, 0.789075, 0.871107]], Cell[CellGroupData[{ Cell["Demo", "Section"], Cell[CellGroupData[{ Cell["Arithmetic of motion polynomials", "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Motion", " ", "polynomials", " ", "are", " ", "input", " ", "using", " ", "the", " ", "symbol", " ", RowBox[{"\"\\"", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"t", "+", "I", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"2", "-", "I"}], ")"}]}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", "-", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[2, -1]]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866754730955*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"When", " ", "Times", " ", "is", " ", "used"}], ",", " ", RowBox[{ "eta", " ", "is", " ", "always", " ", "interpreted", " ", "to", " ", "be", " ", "on", " ", "the", " ", RowBox[{"left", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"I", "*", "eta"}], ",", RowBox[{"eta", "*", "I"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ InterpretationBox[ RowBox[{"0", "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False], ",", InterpretationBox[ RowBox[{"0", "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False]}], "}"}]], "Output", CellChangeTimes->{3.6338667557244043`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "To", " ", "specify", " ", "the", " ", "order", " ", "of", " ", "factors"}], ",", " ", RowBox[{"use", " ", RowBox[{"NonCommutativeMultiply", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"I", "**", "eta"}], ",", RowBox[{"eta", "**", "I"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ InterpretationBox[ RowBox[{"0", "-", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "-"], Editable->False], ",", InterpretationBox[ RowBox[{"0", "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False]}], "}"}]], "Output", CellChangeTimes->{3.6338667565470448`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"In", " ", "the", " ", "same", " ", "fashion"}], ",", " ", RowBox[{"motion", " ", "polynomials", " ", "can", " ", "be", " ", RowBox[{"multiplied", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{"t", "+", "1", "-", "eta"}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1", "+", RowBox[{"2", "I"}], "+", RowBox[{"eta", "*", "I", "*", "t"}]}], ")"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"1", "+", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"1", "+", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}], " ", "t"}], "+", SuperscriptBox["t", "2"], "+", SuperscriptBox["t", "3"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "-", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{"\[ImaginaryI]", " ", "t"}], "-", RowBox[{ RowBox[{"(", RowBox[{"1", "-", "\[ImaginaryI]"}], ")"}], " ", SuperscriptBox["t", "2"]}]}], ")"}]}]}], Infix[{Complex[1, 2] + Complex[1, 2] $CellContext`t + $CellContext`t^2 + $CellContext`t^3, CenterDot[$CellContext`\[Eta], Complex[-1, -2] + Complex[0, 1] $CellContext`t + Complex[-1, 1] $CellContext`t^2]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866757450053*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "See", " ", "how", " ", "motion", " ", "polynomials", " ", "are", " ", "represented", " ", RowBox[{"internally", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"z", "+", RowBox[{"eta", "*", "w"}]}], "\[IndentingNewLine]", RowBox[{"FullForm", "[", "%", "]"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"z", "+", RowBox[{"\[Eta]", "\[CenterDot]", "w"}]}], Infix[{$CellContext`z, CenterDot[$CellContext`\[Eta], $CellContext`w]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866758830521*^9}], Cell[BoxData[ TagBox[ StyleBox[ RowBox[{"MP", "[", RowBox[{"z", ",", "w"}], "]"}], ShowSpecialCharacters->False, ShowStringCharacters->True, NumberMarks->True], FullForm]], "Output", CellChangeTimes->{3.633866758832005*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Check", " ", "the", " ", "multiplication", " ", "of", " ", "motion", " ", "polynomials", " ", RowBox[{"(", RowBox[{"a", "+", RowBox[{"eta", "*", "b"}]}], ")"}], "*", RowBox[{ RowBox[{"(", RowBox[{"c", "+", RowBox[{"eta", "*", "d"}]}], ")"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"MP", "[", RowBox[{ SubscriptBox["z", "1"], ",", SubscriptBox["w", "1"]}], "]"}], "**", RowBox[{"MP", "[", RowBox[{ SubscriptBox["z", "2"], ",", SubscriptBox["w", "2"]}], "]"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{ SubscriptBox["z", "1"], " ", SubscriptBox["z", "2"]}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Conjugate", "[", SubscriptBox["z", "1"], "]"}], " ", SubscriptBox["w", "2"]}], "+", RowBox[{ SubscriptBox["w", "1"], " ", SubscriptBox["z", "2"]}]}], ")"}]}]}], Infix[{Subscript[$CellContext`z, 1] Subscript[$CellContext`z, 2], CenterDot[$CellContext`\[Eta], Conjugate[ Subscript[$CellContext`z, 1]] Subscript[$CellContext`w, 2] + Subscript[$CellContext`w, 1] Subscript[$CellContext`z, 2]]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866762561199*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Invert", " ", "an", " ", "element", " ", "in", " ", RowBox[{"SE2", ".", " ", "Note"}], " ", "that", " ", "real", " ", "numbers", " ", "in", " ", "K", " ", "correspond", " ", "to", " ", "1", " ", "in", " ", RowBox[{"SE2", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FullSimplify", "[", RowBox[{ RowBox[{"(", RowBox[{"z", "+", RowBox[{"eta", "*", "w"}]}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"Conjugate", "[", "z", "]"}], "-", RowBox[{"eta", "*", "w"}]}], ")"}]}], "]"}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ SuperscriptBox[ RowBox[{"Abs", "[", "z", "]"}], "2"], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Abs[$CellContext`z]^2, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866764056197*^9}] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "Action of ", Cell[BoxData[ FormBox[ SubscriptBox["SE", "2"], TraditionalForm]]] }], "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "ActR2"}]], "Input"], Cell[BoxData[ StyleBox["\<\"ActR2[p, {x, y}] computes the result of applying the direct \ isometry given by p to the point {x, y}, where p is a (possibly constant) \ motion polynomial.\"\>", "MSG"]], "Print", "PrintUsage", CellChangeTimes->{3.6338667694787407`*^9}, CellTags->"Info3633870369-3753390"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Action", " ", "of", " ", RowBox[{"SE2", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"vec", "=", RowBox[{"ActR2", "[", RowBox[{ RowBox[{"MP", "[", RowBox[{ RowBox[{ SubscriptBox["x", "1"], "+", RowBox[{"I", "*", SubscriptBox["x", "2"]}]}], ",", RowBox[{ SubscriptBox["y", "1"], "+", RowBox[{"I", "*", SubscriptBox["y", "2"]}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"x", ",", "y"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Together", "[", RowBox[{"Simplify", "[", RowBox[{"vec", ",", RowBox[{"Element", "[", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["x", "1"], ",", SubscriptBox["x", "2"], ",", SubscriptBox["y", "1"], ",", SubscriptBox["y", "2"]}], "}"}], ",", "Reals"}], "]"}]}], "]"}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ FractionBox[ RowBox[{ RowBox[{"x", " ", SubsuperscriptBox["x", "1", "2"]}], "-", RowBox[{"2", " ", "y", " ", SubscriptBox["x", "1"], " ", SubscriptBox["x", "2"]}], "-", RowBox[{"x", " ", SubsuperscriptBox["x", "2", "2"]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SubscriptBox["y", "1"]}], "-", RowBox[{ SubscriptBox["x", "2"], " ", SubscriptBox["y", "2"]}]}], RowBox[{ SubsuperscriptBox["x", "1", "2"], "+", SubsuperscriptBox["x", "2", "2"]}]], ",", FractionBox[ RowBox[{ RowBox[{"y", " ", SubsuperscriptBox["x", "1", "2"]}], "+", RowBox[{"2", " ", "x", " ", SubscriptBox["x", "1"], " ", SubscriptBox["x", "2"]}], "-", RowBox[{"y", " ", SubsuperscriptBox["x", "2", "2"]}], "+", RowBox[{ SubscriptBox["x", "2"], " ", SubscriptBox["y", "1"]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SubscriptBox["y", "2"]}]}], RowBox[{ SubsuperscriptBox["x", "1", "2"], "+", SubsuperscriptBox["x", "2", "2"]}]]}], "}"}]], "Output", CellChangeTimes->{3.633866770649982*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Product", " ", "in", " ", "SE2", " ", "is", " ", RowBox[{"bilinear", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"prod", "=", RowBox[{"ComplexExpand", "/@", RowBox[{"(", RowBox[{ RowBox[{"MP", "[", RowBox[{ RowBox[{ SubscriptBox["x", "1"], "+", RowBox[{"I", "*", SubscriptBox["x", "2"]}]}], ",", RowBox[{ SubscriptBox["y", "1"], "+", RowBox[{"I", "*", SubscriptBox["y", "2"]}]}]}], "]"}], "**", RowBox[{"MP", "[", RowBox[{ RowBox[{ RowBox[{ SubscriptBox["x", "1"], "'"}], "+", RowBox[{"I", "*", RowBox[{ SubscriptBox["x", "2"], "'"}]}]}], ",", RowBox[{ RowBox[{ SubscriptBox["y", "1"], "'"}], "+", RowBox[{"I", "*", RowBox[{ SubscriptBox["y", "2"], "'"}]}]}]}], "]"}]}], ")"}]}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{ RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}]}], ")"}]}]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{ SubscriptBox["y", "1"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["y", "2"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["y", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["y", "2"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{"\[ImaginaryI]", " ", RowBox[{"(", RowBox[{ RowBox[{ SubscriptBox["y", "2"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["y", "1"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["y", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["y", "2"], "\[Prime]", MultilineFunction->None]}]}], ")"}]}]}], ")"}]}]}], Infix[{Subscript[$CellContext`x, 1] Derivative[1][ Subscript[$CellContext`x, 1]] - Subscript[$CellContext`x, 2] Derivative[1][ Subscript[$CellContext`x, 2]] + Complex[0, 1] (Subscript[$CellContext`x, 2] Derivative[1][ Subscript[$CellContext`x, 1]] + Subscript[$CellContext`x, 1] Derivative[1][ Subscript[$CellContext`x, 2]]), CenterDot[$CellContext`\[Eta], Subscript[$CellContext`y, 1] Derivative[1][ Subscript[$CellContext`x, 1]] - Subscript[$CellContext`y, 2] Derivative[1][ Subscript[$CellContext`x, 2]] + Subscript[$CellContext`x, 1] Derivative[1][ Subscript[$CellContext`y, 1]] + Subscript[$CellContext`x, 2] Derivative[1][ Subscript[$CellContext`y, 2]] + Complex[0, 1] (Subscript[$CellContext`y, 2] Derivative[1][ Subscript[$CellContext`x, 1]] + Subscript[$CellContext`y, 1] Derivative[1][ Subscript[$CellContext`x, 2]] - Subscript[$CellContext`x, 2] Derivative[1][ Subscript[$CellContext`y, 1]] + Subscript[$CellContext`x, 1] Derivative[1][ Subscript[$CellContext`y, 2]])]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866771904901*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"TableForm", "[", RowBox[{"Flatten", "[", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{ RowBox[{"List", "@@", "prod"}], "/.", RowBox[{"I", "\[Rule]", "i"}]}], ",", "i"}], "]"}], "]"}], "]"}]], "Input"], Cell[BoxData[ TagBox[ TagBox[GridBox[{ { RowBox[{ RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}]}]}, { RowBox[{ RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}]}]}, { RowBox[{ RowBox[{ SubscriptBox["y", "1"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["y", "2"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["y", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["y", "2"], "\[Prime]", MultilineFunction->None]}]}]}, { RowBox[{ RowBox[{ SubscriptBox["y", "2"], " ", SuperscriptBox[ SubscriptBox["x", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["y", "1"], " ", SuperscriptBox[ SubscriptBox["x", "2"], "\[Prime]", MultilineFunction->None]}], "-", RowBox[{ SubscriptBox["x", "2"], " ", SuperscriptBox[ SubscriptBox["y", "1"], "\[Prime]", MultilineFunction->None]}], "+", RowBox[{ SubscriptBox["x", "1"], " ", SuperscriptBox[ SubscriptBox["y", "2"], "\[Prime]", MultilineFunction->None]}]}]} }, 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.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], Column], Function[BoxForm`e$, TableForm[BoxForm`e$]]]], "Output", CellChangeTimes->{3.6338667733579607`*^9}] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Fixpoint of a motion", "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "FixPoint"}]], "Input"], Cell[BoxData[ StyleBox["\<\"FixPoint[p] computes the fixpoint of a simple revolution given \ by the linear normed motion polynomial p, i.e., p is of the form t - z + \ \[Eta]*w where z and w are complex numbers with z being non-real.\"\>", "MSG"]], "Print", "PrintUsage", CellChangeTimes->{3.6338667784275084`*^9}, CellTags->"Info3633870378-3753390"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Compute", " ", "the", " ", "fixpoint", " ", "of", " ", "a", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FixPoint", "[", RowBox[{"t", "+", "I", "-", RowBox[{"eta", "*", "0"}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]], "Output", CellChangeTimes->{3.633866779164268*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"FixPoint", "[", RowBox[{"t", "+", "eta"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"Throw", "::", "nocatch"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Uncaught \[NoBreak]\\!\\(Throw[\\\"FixPoint: Input is not \ a normed bounded motion polynomial of degree 1.\\\"]\\)\[NoBreak] returned to \ top level. \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\ \\\", ButtonFrame->None, \ ButtonData:>\\\"paclet:ref/message/Throw/nocatch\\\", ButtonNote -> \ \\\"Throw::nocatch\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.63386678028351*^9}], Cell[BoxData[ RowBox[{"Hold", "[", RowBox[{ "Throw", "[", "\<\"FixPoint: Input is not a normed bounded motion \ polynomial of degree 1.\"\>", "]"}], "]"}]], "Output", CellChangeTimes->{3.633866780286859*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Test", " ", "fixpoint", " ", RowBox[{"formula", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"FixPoint", "[", RowBox[{"t", "-", "\[Alpha]", "-", RowBox[{"eta", "*", "\[Beta]"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"FullSimplify", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"First", "[", "%", "]"}], "+", RowBox[{"I", "*", RowBox[{"Last", "[", "%", "]"}]}]}], ")"}], "-", RowBox[{"\[Beta]", "/", RowBox[{"(", RowBox[{ RowBox[{"Conjugate", "[", "\[Alpha]", "]"}], "-", "\[Alpha]"}], ")"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox[ RowBox[{"Im", "[", "\[Beta]", "]"}], RowBox[{"2", " ", RowBox[{"Im", "[", "\[Alpha]", "]"}]}]]}], ",", FractionBox[ RowBox[{"Re", "[", "\[Beta]", "]"}], RowBox[{"2", " ", RowBox[{"Im", "[", "\[Alpha]", "]"}]}]]}], "}"}]], "Output", CellChangeTimes->{3.633866781615655*^9}], Cell[BoxData["0"], "Output", CellChangeTimes->{3.633866781678905*^9}] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Factorization of motion polynomials", "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Factor", " ", "a", " ", "motion", " ", "polynomial", " ", "into", " ", "linear", " ", RowBox[{"factors", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"t", "+", "I"}], ")"}], "^", "6"}], "+", RowBox[{"eta", "*", "t"}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "32"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 32]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["3", "32"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[3, 32]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "16"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 16]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "16"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 16]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["3", "32"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[3, 32]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "32"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 32]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.6338667864143476`*^9, 3.633867490623658*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Expand", " ", RowBox[{"again", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Expand", "[", "%", "]"}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", RowBox[{"6", " ", "\[ImaginaryI]", " ", "t"}], "+", RowBox[{"15", " ", SuperscriptBox["t", "2"]}], "-", RowBox[{"20", " ", "\[ImaginaryI]", " ", SuperscriptBox["t", "3"]}], "-", RowBox[{"15", " ", SuperscriptBox["t", "4"]}], "+", RowBox[{"6", " ", "\[ImaginaryI]", " ", SuperscriptBox["t", "5"]}], "+", SuperscriptBox["t", "6"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "t"}]}], Infix[{-1 + Complex[0, 6] $CellContext`t + 15 $CellContext`t^2 + Complex[0, -20] $CellContext`t^3 - 15 $CellContext`t^4 + Complex[0, 6] $CellContext`t^5 + $CellContext`t^6, CenterDot[$CellContext`\[Eta], $CellContext`t]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866787308082*^9, 3.633867491831676*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Now", " ", "with", " ", "factored", " ", RowBox[{"coefficients", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Factor", "/@", "%"}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "6"], "+", RowBox[{"\[Eta]", "\[CenterDot]", "t"}]}], Infix[{(Complex[0, 1] + $CellContext`t)^6, CenterDot[$CellContext`\[Eta], $CellContext`t]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866788308054*^9, 3.6338674928705397`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Data", " ", "structure", " ", "used", " ", "for", " ", "representing", " ", "factored", " ", "motion", " ", RowBox[{"polynomials", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"FactoredMP", "[", RowBox[{"eta", ",", "eta", ",", "eta"}], "]"}], "\[IndentingNewLine]", RowBox[{"Expand", "[", "%", "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{"0", "+", "\[Eta]"}], Infix[{0, $CellContext`\[Eta]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{"0", "+", "\[Eta]"}], Infix[{0, $CellContext`\[Eta]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{"0", "+", "\[Eta]"}], Infix[{0, $CellContext`\[Eta]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633866789228451*^9, 3.633867493958519*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"0", "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866789228451*^9, 3.6338674939601507`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "This", " ", "polynomial", " ", "admits", " ", "several", " ", "factorizations", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"actually", " ", RowBox[{"5", "!"}]}], " ", "=", " ", "120"}], ")"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", RowBox[{"poly", "=", RowBox[{ RowBox[{"Product", "[", RowBox[{ RowBox[{"t", "-", RowBox[{"k", " ", "I"}]}], ",", RowBox[{"{", RowBox[{"k", ",", "5"}], "}"}]}], "]"}], "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"t", "+", "I"}], ")"}]}]}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "2"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "210"]}]}], Infix[{Complex[0, -2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 210]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "3"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "280"]}]}], Infix[{Complex[0, -3] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[3, 280]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "4"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "126"]}]}], Infix[{Complex[0, -4] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 126]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "5"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "504"]}]}], Infix[{Complex[0, -5] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 504]]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.6338667903758793`*^9, 3.633867495424522*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "This", " ", "is", " ", "an", " ", "other", " ", "factorization", " ", "using", " ", "a", " ", "different", " ", "order", " ", "of", " ", "the", " ", RowBox[{"roots", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", RowBox[{"poly", ",", RowBox[{"Order", "\[Rule]", RowBox[{"Table", "[", RowBox[{ RowBox[{"k", " ", "I"}], ",", RowBox[{"{", RowBox[{"k", ",", "5", ",", "1", ",", RowBox[{"-", "1"}]}], "}"}]}], "]"}]}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "5"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "756"]}]}], Infix[{Complex[0, -5] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 756]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "4"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "270"]}]}], Infix[{Complex[0, -4] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 270]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "3"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, -3] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "2"}], " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "126"]}]}], Infix[{Complex[0, -2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 126]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "180"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 180]]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633866791347053*^9, 3.633867497079039*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Here", " ", "not", " ", "any", " ", "permutation", " ", "of", " ", "the", " ", "roots", " ", "yields", " ", "a", " ", RowBox[{"factorization", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"poly", "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1"}], ")"}], "^", "2"}], "*", RowBox[{"(", RowBox[{"t", "+", RowBox[{"2", "I"}]}], ")"}]}], "+", RowBox[{"eta", "*", RowBox[{ RowBox[{"(", RowBox[{"t", "+", "I"}], ")"}], "^", "2"}]}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", "poly", "]"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", RowBox[{"poly", ",", RowBox[{"Order", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "I"}], ",", RowBox[{"-", "I"}], ",", "I", ",", "I", ",", RowBox[{ RowBox[{"-", "2"}], "I"}]}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["5", "18"], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[5, 18] + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["1", "6"]}], "+", RowBox[{"C", "[", "2", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-1, 6] + C[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "2", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[2]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "9"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 9]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633866792620696*^9, 3.633867501170876*^9}], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"Throw", "::", "nocatch"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Uncaught \[NoBreak]\\!\\(Throw[\\\"No solution found.\\\"]\ \\)\[NoBreak] returned to top level. \ \\!\\(\\*ButtonBox[\\\"\[RightSkeleton]\\\", ButtonStyle->\\\"Link\\\", \ ButtonFrame->None, ButtonData:>\\\"paclet:ref/message/Throw/nocatch\\\", \ ButtonNote -> \\\"Throw::nocatch\\\"]\\)\"\>"}]], "Message", "MSG", CellChangeTimes->{3.633866792674931*^9, 3.633867501202029*^9}], Cell[BoxData[ RowBox[{"Hold", "[", RowBox[{"Throw", "[", "\<\"No solution found.\"\>", "]"}], "]"}]], "Output",\ CellChangeTimes->{3.633866792620696*^9, 3.633867501203335*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Elliptic", " ", "translational", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "The", " ", "polynomial", " ", "cannot", " ", "be", " ", "factored"}], ",", " ", RowBox[{ RowBox[{ "unless", " ", "we", " ", "multiply", " ", "it", " ", "by", " ", RowBox[{"t", "^", "2"}]}], "+", "1."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"poly", "=", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{ RowBox[{"a", "*", "t"}], "-", RowBox[{"b", "*", "I"}]}], ")"}]}]}]}], "\[IndentingNewLine]", RowBox[{"fact", "=", RowBox[{"FactorMP", "[", "poly", "]"}]}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"1", "+", SuperscriptBox["t", "2"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], " ", "b"}], "+", RowBox[{"a", " ", "t"}]}], ")"}]}]}], Infix[{1 + $CellContext`t^2, CenterDot[$CellContext`\[Eta], Complex[0, -1] $CellContext`b + $CellContext`a $CellContext`t]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633866802695545*^9, 3.633867503590743*^9, 3.6338680811606083`*^9}], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"FactorMP", "::", "R"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Multiply the input with R = \[NoBreak]\\!\\(1 + t\\^2\\)\ \[NoBreak]\"\>"}]], "Message", "MSG", CellChangeTimes->{3.6338668028267813`*^9, 3.6338675037187557`*^9, 3.633868081289816*^9}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["a", "2"], "+", FractionBox["b", "2"], "+", RowBox[{"C", "[", "2", "]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 2] $CellContext`a + Rational[1, 2] $CellContext`b + C[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "2", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[2]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["a", "2"], "-", FractionBox["b", "2"], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 2] $CellContext`a + Rational[-1, 2] $CellContext`b + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633866802695545*^9, 3.633867503590743*^9, 3.6338680813214617`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Do", " ", "this", " ", "factorization", " ", RowBox[{"\"\\"", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"ansatz", "=", RowBox[{"FactoredMP", "@@", RowBox[{"Table", "[", RowBox[{ RowBox[{"t", "+", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], "^", RowBox[{"Ceiling", "[", RowBox[{ RowBox[{"(", RowBox[{"k", "-", "1"}], ")"}], "/", "2"}], "]"}]}], "*", "I"}], "+", RowBox[{"eta", "*", RowBox[{"w", "[", "k", "]"}]}]}], ",", RowBox[{"{", RowBox[{"k", ",", "4"}], "}"}]}], "]"}]}]}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Derive", " ", "a", " ", "system", " ", "of", " ", RowBox[{"equations", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Union", "[", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{"Last", "[", RowBox[{ RowBox[{"Expand", "[", "ansatz", "]"}], "-", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1"}], ")"}], "*", "poly"}]}], "]"}], ",", "t"}], "]"}], "]"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "Test", " ", "whether", " ", "the", " ", "coefficients", " ", "of", " ", RowBox[{"fact", "[", RowBox[{"[", "2", "]"}], "]"}], " ", "satisfy", " ", "the", " ", RowBox[{"system", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Expand", "[", RowBox[{"%", "/.", RowBox[{ RowBox[{"w", "[", "k_", "]"}], "\[RuleDelayed]", RowBox[{"fact", "[", RowBox[{"[", RowBox[{"k", ",", "2"}], "]"}], "]"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"w", "[", "1", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], $CellContext`w[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"w", "[", "2", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], $CellContext`w[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"w", "[", "3", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], $CellContext`w[3]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"w", "[", "4", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], $CellContext`w[4]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633866805778777*^9, 3.633867508520891*^9}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"\[ImaginaryI]", " ", "b"}], "-", RowBox[{"\[ImaginaryI]", " ", RowBox[{"w", "[", "1", "]"}]}], "-", RowBox[{"\[ImaginaryI]", " ", RowBox[{"w", "[", "2", "]"}]}], "+", RowBox[{"\[ImaginaryI]", " ", RowBox[{"w", "[", "3", "]"}]}], "+", RowBox[{"\[ImaginaryI]", " ", RowBox[{"w", "[", "4", "]"}]}]}], ",", RowBox[{ RowBox[{"-", "a"}], "+", RowBox[{"w", "[", "1", "]"}], "+", RowBox[{"w", "[", "2", "]"}], "+", RowBox[{"w", "[", "3", "]"}], "+", RowBox[{"w", "[", "4", "]"}]}]}], "}"}]], "Output", CellChangeTimes->{3.633866805778777*^9, 3.633867508522663*^9}], Cell[BoxData[ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]], "Output", CellChangeTimes->{3.633866805778777*^9, 3.6338675085237923`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "All", " ", "6", " ", "factorizations", " ", "of", " ", "a", " ", "\"\\"", " ", "degree", " ", "3", " ", "motion", " ", RowBox[{"polynomial", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"roots", "=", RowBox[{"t", "/.", RowBox[{"Solve", "[", RowBox[{ RowBox[{ RowBox[{"t", "^", "3"}], "+", "I"}], "\[Equal]", "0"}], "]"}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{"facts", "=", RowBox[{ RowBox[{ RowBox[{"FactorMP", "[", RowBox[{ RowBox[{ RowBox[{"t", "^", "3"}], "+", "I", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "-", "2"}], ")"}]}]}], ",", RowBox[{"Order", "\[Rule]", "#"}]}], "]"}], "&"}], "/@", RowBox[{"Permutations", "[", "roots", "]"}]}]}]}]}]], "Input", CellChangeTimes->{{3.633866916625813*^9, 3.633866916829118*^9}, { 3.633867421634205*^9, 3.633867422521249*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["5", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-5, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["5", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-5, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["5", "2"], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "2"]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[5, 2] + Complex[0, Rational[1, 2]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["5", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-5, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["5", "2"], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "2"]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[5, 2] + Complex[0, Rational[-1, 2]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "-", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], "+", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[-1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-3, 4] + Complex[0, Rational[1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["\[ImaginaryI]", "2"], "+", FractionBox[ SqrtBox["3"], "2"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["5", "4"]}], "-", FractionBox[ RowBox[{"\[ImaginaryI]", " ", SqrtBox["3"]}], "4"]}], ")"}]}]}], Infix[{Complex[0, Rational[1, 2]] + Rational[1, 2] 3^Rational[1, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[-5, 4] + Complex[0, Rational[-1, 4]] 3^Rational[1, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "+"], Editable->False], ")"}]}]}], "}"}]], "Output", CellChangeTimes->{ 3.633866810563798*^9, 3.633866917580415*^9, {3.633866954705367*^9, 3.6338669688121862`*^9}, 3.63386701214669*^9, 3.633867236548409*^9, { 3.6338674145940447`*^9, 3.6338674286635313`*^9}}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Show", " ", "their", " ", RowBox[{"linkages", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "@@", RowBox[{"Append", "[", RowBox[{"facts", ",", RowBox[{"Polygon", "\[Rule]", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0"}], "}"}]}], "}"}], "/", "2"}]}]}], "]"}]}]}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Animation of a motion", "Subsection", CellChangeTimes->{{3.6338675577583447`*^9, 3.6338675600301447`*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "AnimateMP"}]], "Input"], Cell[BoxData[ StyleBox["\<\"AnimateMP[p] animates the motion described by the motion \ polynomial p. If p is given in factored form, then the decomposition of the \ motion into revolutions is shown. AnimateMP[p1, p2, ...] shows several \ motions at the same time. The following options can be given:\\nTrace -> {x, \ y}: show the trace of the point {x, y} under the given motion.\\nStyle -> \ \\\"links\\\", Style -> \\\"wheels\\\": different visualizations of a \ decomposed motion.\\nPolygon -> {{0, 0}, {1, 0}, {0, 1}}: specify the shape \ of a planar object that is displaced according to p.\\nMoreover, all options \ of the Graphics command can be used.\"\>", "MSG"]], "Print", "PrintUsage", CellChangeTimes->{3.633867526592841*^9}, CellTags->"Info3633871126-6936449"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Animation", " ", "of", " ", "a", " ", "simple", " ", RowBox[{"revolution", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{ RowBox[{"t", "+", "I", "+", RowBox[{"0", " ", "eta"}]}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"{", RowBox[{"200", ",", "200"}], "}"}]}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"A", " ", "horizontal", " ", "translational", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{ RowBox[{"1", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"t", "+", "1"}], ")"}]}]}], ",", RowBox[{"ImageSize", "\[Rule]", RowBox[{"{", RowBox[{"400", ",", "100"}], "}"}]}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "10"}], ",", "10"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "2"}], "}"}]}], "}"}]}], ",", RowBox[{"Trace", "\[Rule]", "None"}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"A", " ", "vertical", " ", "translational", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{"t", "+", RowBox[{"eta", "*", "I"}]}], "]"}]}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["Construction of linkages", "Subsection"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Circular", " ", RowBox[{"translation", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact", "=", RowBox[{"FactorMP", "[", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"t", "-", "I"}], ")"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"1", "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 1 + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633867565237399*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Show", " ", "different", " ", "decompositions", " ", "of", " ", "this", " ", "motion", " ", "depending", " ", "on", " ", "the", " ", "choice", " ", "of", " ", RowBox[{ RowBox[{"C", "[", "1", "]"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "@@", RowBox[{"Table", "[", RowBox[{ RowBox[{"fact", "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", "k"}]}], ",", RowBox[{"{", RowBox[{"k", ",", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ",", "1", ",", RowBox[{"1", "/", "2"}]}], "}"}]}], "]"}]}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Define", " ", "a", " ", "linkage", " ", "by", " ", "constructing", " ", "its", " ", "link", " ", RowBox[{"graph", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"linkage", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", RowBox[{ RowBox[{"fact", "[", RowBox[{"[", "2", "]"}], "]"}], "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", RowBox[{ RowBox[{"-", "1"}], "/", "2"}]}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", RowBox[{ RowBox[{"fact", "[", RowBox[{"[", "2", "]"}], "]"}], "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", "0"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "4", ",", RowBox[{ RowBox[{"fact", "[", RowBox[{"[", "1", "]"}], "]"}], "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", RowBox[{ RowBox[{"-", "1"}], "/", "2"}]}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", RowBox[{ RowBox[{"fact", "[", RowBox[{"[", "1", "]"}], "]"}], "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", "0"}]}]}], "}"}]}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 2]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["1", "2"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Rational[1, 2]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", "\[Eta]"}], Infix[{Complex[0, 1] + $CellContext`t, $CellContext`\[Eta]}, "+"], Editable->False]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.633867574878045*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "ShowLinkage"}]], "Input"], Cell[BoxData[ StyleBox["\<\"ShowLinkage[graph, base] creates an animation of a linkage. \ The link graph must be given in the form {{i, j, mij}, ...} where i and j are \ the labels of two links and mij is a linear bounded motion polynomial \ describing the relative position between these two links. The second \ argument, base, is the label of the base link (the one that doesn't move). \ The following options can be given:\\nColorOutput -> {1 -> Yellow, 2 -> \ Green, ...}: to draw link 1 in yellow etc.\\nThickness -> 0.01: thickness of \ links. Thickness -> {0.01, 0.001}: thickness of links and lines.\\nTrace -> \ {i, {x, y}}: trace the point {x, y} under the motion of link i.\\nDirection \ -> {x, y}: draw the curve with a pen whose shape is a line from {0, 0} to {x, \ y}.\\nRange -> {a, b}: range for the time ArcTan[t], i.e., [a, b] \ \[SubsetEqual] [-\[Pi]/2, \[Pi]/2].\\nLinks -> {i, j, ...}: specify an order \ in which the links should be drawn.\\nStyle -> \\\"CompleteGraph\\\", Style \ -> \\\"Star\\\": how to draw links that are connected with more than 2 \ joints.\\nReturn -> \\\"animation\\\": produces an animation of the \ linkage.\\nReturn -> {\\\"picture\\\", x}: produces an image showing the \ linkage at time x = ArcTan[t].\\nReturn -> {\\\"movie\\\", n}: creates a \ sequence of n image files that can be used to make a movie.\\nReturn -> \ {\\\"movie\\\", {t1, t2, ..., tn}}: as before, using time ti for frame \ i.\\nReturn -> \\\"graph\\\": draws the link graph.\\nReturn -> \ \\\"collisions\\\": returns a list of the form {{{i, k, j}, s, t}, ...} which \ means that the joint connecting i and j collides with link k at time t at \ position 0 <= s <= 1.\\nReturn works similarly with \\\"animation3D\\\", \ \\\"picture3D\\\", and \\\"movie3D\\\".\\nMoreover, all options of the \ Graphics / Graphics3D commands can be used.\"\>", "MSG"]], "Print", \ "PrintUsage", CellChangeTimes->{3.6338675773717337`*^9}, CellTags->"Info3633871177-6936449"] }, Open ]], Cell[BoxData[ RowBox[{"ShowLinkage", "[", RowBox[{"linkage", ",", "1", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"4", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.007", ",", "0.003"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "200"}]}], "]"}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "A", " ", "degree", " ", "6", " ", "motion", " ", "polynomial", " ", "that", " ", "allows", " ", "only", " ", "a", " ", "single", " ", RowBox[{"factorization", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mp1", "=", RowBox[{"FactoredMP", "@@", RowBox[{"Table", "[", RowBox[{ RowBox[{"t", "+", "I", "+", RowBox[{"eta", "*", "k", "*", "I"}]}], ",", RowBox[{"{", RowBox[{"k", ",", "6"}], "}"}]}], "]"}]}]}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{"mp1", ",", RowBox[{"Polygon", "\[Rule]", RowBox[{"{", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"3", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 3]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"4", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 4]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"5", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 5]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"6", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 6]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633867588535913*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "A", " ", "different", " ", "polynomial", " ", "that", " ", "produces", " ", "basically", " ", "the", " ", "same", " ", RowBox[{"curve", "."}]}], " ", "*)"}], RowBox[{ RowBox[{"mp2", "=", RowBox[{"FactoredMP", "@@", RowBox[{"Table", "[", RowBox[{ RowBox[{"t", "+", "I", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"1", "+", RowBox[{ RowBox[{"(", RowBox[{"-", "1"}], ")"}], "^", "k"}]}], ")"}], "*", "I"}]}], ",", RowBox[{"{", RowBox[{"k", ",", "0", ",", "5"}], "}"}]}], "]"}]}]}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{"mp2", ",", RowBox[{"Polygon", "\[Rule]", RowBox[{"{", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633867597105769*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"?", "ConstructLinkage"}]], "Input"], Cell[BoxData[ StyleBox["\<\"ConstructLinkage[mp, l1] constructs a linkage of mobility one \ that realizes the motion given by mp. The motion polynomial mp must be given \ in factored form, and l1 is a linear bounded motion polynomial. If l1 is \ omitted, a suitable such polynomial is taken instead. The output is given in \ the form as needed for ShowLinkage.\"\>", "MSG"]], "Print", "PrintUsage", CellChangeTimes->{3.633867605915082*^9}, CellTags->"Info3633871205-6936449"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"linkage", "=", RowBox[{"ConstructLinkage", "[", RowBox[{"mp2", ",", RowBox[{"t", "+", RowBox[{"2", "I"}], "+", RowBox[{"0", "*", "eta"}]}]}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "3", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", "5", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"6", ",", "7", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", " ", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 2]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"8", ",", "9", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"1456", " ", "\[ImaginaryI]"}], "729"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1456, 729]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"9", ",", "10", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"2", " ", "\[ImaginaryI]"}], "243"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[2, 243]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"10", ",", "11", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"160", " ", "\[ImaginaryI]"}], "81"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[160, 81]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"11", ",", "12", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"2", " ", "\[ImaginaryI]"}], "27"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[2, 27]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "13", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"16", " ", "\[ImaginaryI]"}], "9"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[16, 9]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"13", ",", "14", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"2", " ", "\[ImaginaryI]"}], "3"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[2, 3]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "8", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"728", " ", "\[ImaginaryI]"}], "729"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[728, 729]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "9", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"728", " ", "\[ImaginaryI]"}], "243"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[728, 243]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "10", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"80", " ", "\[ImaginaryI]"}], "81"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[80, 81]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", "11", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"80", " ", "\[ImaginaryI]"}], "27"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[80, 27]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "12", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"8", " ", "\[ImaginaryI]"}], "9"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[8, 9]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"6", ",", "13", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"8", " ", "\[ImaginaryI]"}], "3"]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[8, 3]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"7", ",", "14", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.633867607058943*^9}] }, Open ]], Cell[BoxData[ RowBox[{"ShowLinkage", "[", RowBox[{"linkage", ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2.5"}], "}"}]}], "}"}]}], ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"7", ",", RowBox[{"{", RowBox[{"0.1", ",", "0"}], "}"}]}], "}"}]}]}], "]"}]], "Input"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Example 4.4 from the paper", "Section", CellChangeTimes->{{3.639213150071137*^9, 3.639213150158382*^9}}], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"P1", "=", RowBox[{"t", "+", "I", "-", RowBox[{"3", "eta"}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"P3", "=", RowBox[{"t", "+", RowBox[{"2", "I"}], "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"18", "+", RowBox[{"3", "I"}]}], ")"}]}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"P2", ",", "P4"}], "}"}], "=", RowBox[{"Flip", "[", RowBox[{"P1", ",", "P3"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"TableForm", "[", RowBox[{"{", RowBox[{"P1", ",", "P3", ",", "P4", ",", "P2"}], "}"}], "]"}]}], "Input"], Cell[BoxData[ TagBox[ TagBox[GridBox[{ { InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "-"], Editable->False]}, { InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"18", "+", RowBox[{"3", " ", "\[ImaginaryI]"}]}], ")"}]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[18, 3]]}, "+"], Editable->False]}, { InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"13", "+", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[13, 2]]}, "+"], Editable->False]}, { InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", "+", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[2, 1]]}, "+"], Editable->False]} }, 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.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], Column], Function[BoxForm`e$, TableForm[BoxForm`e$]]]], "Output", CellChangeTimes->{3.633867629496901*^9, 3.634094244251288*^9, 3.63410240176668*^9, 3.63921324064699*^9, 3.639243240343944*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"FixPoint", "/@", RowBox[{"{", RowBox[{"P1", ",", "P3", ",", "P4", ",", "P2"}], "}"}]}]], "Input", CellChangeTimes->{3.639243236382505*^9}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", FractionBox["3", "2"]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], ",", FractionBox["9", "2"]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", FractionBox["13", "2"]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["1", "4"]}], ",", FractionBox["1", "2"]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.6338676318250217`*^9, 3.6392432422993517`*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Check", " ", "cycle", " ", "condition", " ", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"with", " ", "quick"}], "-", "and", "-", RowBox[{ "dirty", " ", "way", " ", "of", " ", "inverting", " ", "P1", " ", "and", " ", "P3"}]}], ")"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"P2", "**", "P4", "**", RowBox[{"(", RowBox[{ RowBox[{"2", "t"}], "-", "P3"}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"2", "t"}], "-", "P1"}], ")"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"4", "+", RowBox[{"5", " ", SuperscriptBox["t", "2"]}], "+", SuperscriptBox["t", "4"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{4 + 5 $CellContext`t^2 + $CellContext`t^4, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.63386763316332*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"linkage", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", "P2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", "P3"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", "P1"}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "4", ",", "P4"}], "}"}]}], "}"}]}]], "Input", CellChangeTimes->{{3.639243325383855*^9, 3.6392433483140287`*^9}, { 3.639243409870346*^9, 3.639243424923518*^9}, {3.6392436399560213`*^9, 3.6392436657820187`*^9}, {3.639243790896524*^9, 3.639243793855987*^9}, { 3.6392438295350647`*^9, 3.6392438307085667`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"2", "+", "\[ImaginaryI]"}], ")"}]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[2, 1]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"18", "+", RowBox[{"3", " ", "\[ImaginaryI]"}]}], ")"}]}]}], Infix[{Complex[0, 2] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[18, 3]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", "3"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], 3]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{"13", "+", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[13, 2]]}, "+"], Editable->False]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{ 3.639243349645808*^9, {3.639243413715252*^9, 3.639243425222547*^9}, { 3.639243644985839*^9, 3.639243655751666*^9}, {3.639243782239566*^9, 3.6392438311248426`*^9}}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"ConstructLinkage", "[", RowBox[{ RowBox[{"FactoredMP", "[", "P2", "]"}], ",", "P4"}], "]"}], "===", "linkage"}]], "Input", CellChangeTimes->{{3.639243562200761*^9, 3.639243568968248*^9}, { 3.639243817296831*^9, 3.639243819317875*^9}}], Cell[BoxData["True"], "Output", CellChangeTimes->{ 3.633867635744935*^9, {3.639243820242655*^9, 3.639243831782585*^9}}] }, Open ]], Cell[BoxData[ RowBox[{"ShowLinkage", "[", RowBox[{"linkage", ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "Yellow"}], ",", RowBox[{"2", "\[Rule]", "Red"}], ",", RowBox[{"3", "\[Rule]", "Green"}], ",", RowBox[{"4", "\[Rule]", "Blue"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", "0.1"}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{"2", ",", "1", ",", "4", ",", "3"}], "}"}]}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"ShowLinkage", "[", RowBox[{"linkage", ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "Yellow"}], ",", RowBox[{"2", "\[Rule]", "Red"}], ",", RowBox[{"3", "\[Rule]", "Green"}], ",", RowBox[{"4", "\[Rule]", "Blue"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", "0.1"}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{"2", ",", "1", ",", "4", ",", "3"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}]}], "]"}]], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{"opts", "=", RowBox[{"Sequence", "@@", RowBox[{"{", RowBox[{ RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "6"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "4"}], "}"}]}], "}"}]}], ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"ImageSize", "\[Rule]", "1000"}], ",", RowBox[{"LabelStyle", "\[Rule]", "40"}], ",", RowBox[{"Ticks", "\[Rule]", RowBox[{"{", RowBox[{"Automatic", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "0", ",", "1", ",", "2", ",", "3", ",", "4"}], "}"}]}], "}"}]}]}], "}"}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"pic", "[", "l3_", "]"}], ":=", RowBox[{"ShowLinkage", "[", RowBox[{ RowBox[{"ReplacePart", "[", RowBox[{"linkage", ",", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "1"}], "}"}], "\[Rule]", "l3"}]}], "]"}], ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"-", "1.10715"}]}], "}"}]}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"1", "\[Rule]", "Black"}], ",", RowBox[{"4", "\[Rule]", "White"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", "0.04"}], ",", "opts"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"TableForm", "[", RowBox[{"{", RowBox[{"{", RowBox[{ RowBox[{"Show", "[", RowBox[{ RowBox[{"pic", "[", "5", "]"}], ",", RowBox[{"ImageSize", "\[Rule]", "200"}], ",", RowBox[{"LabelStyle", "\[Rule]", "10"}]}], "]"}], ",", RowBox[{"Show", "[", RowBox[{ RowBox[{"pic", "[", "3", "]"}], ",", RowBox[{"ImageSize", "\[Rule]", "200"}], ",", RowBox[{"LabelStyle", "\[Rule]", "10"}]}], "]"}]}], "}"}], "}"}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"(*", "\[IndentingNewLine]", RowBox[{ RowBox[{"Export", "[", RowBox[{"\"\<../images/weak.jpg\>\"", ",", RowBox[{"pic", "[", "5", "]"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.1"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Export", "[", RowBox[{"\"\<../images/strong.jpg\>\"", ",", RowBox[{"pic", "[", "3", "]"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.1"}]}], "]"}], ";"}], "\[IndentingNewLine]", "*)"}]}]}], "Input", CellChangeTimes->{{3.634094988061287*^9, 3.63409515021054*^9}, { 3.634095285742216*^9, 3.634095290426985*^9}, {3.634102410252101*^9, 3.634102432751028*^9}, {3.634102486334751*^9, 3.634102537911786*^9}, { 3.639213664695745*^9, 3.639213671474313*^9}, {3.653220532330439*^9, 3.65322053808239*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Example: a simple quadratic motion polynomial", "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"A", " ", "quadratic", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"poly", "=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"t", "+", "I"}], ")"}], "*", RowBox[{"(", RowBox[{"t", "-", "1", "+", "I"}], ")"}]}], "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{"t", "+", RowBox[{"2", "I"}]}], ")"}]}]}]}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", "poly", "]"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "-", "\[ImaginaryI]"}], ")"}], "-", RowBox[{ RowBox[{"(", RowBox[{"1", "-", RowBox[{"2", " ", "\[ImaginaryI]"}]}], ")"}], " ", "t"}], "+", SuperscriptBox["t", "2"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"2", " ", "\[ImaginaryI]"}], "+", "t"}], ")"}]}]}], Infix[{Complex[-1, -1] + Complex[-1, 2] $CellContext`t + $CellContext`t^2, CenterDot[$CellContext`\[Eta], Complex[0, 2] + $CellContext`t]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633867733281643*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Now", " ", "factor", " ", "this", " ", "quadratic", " ", "polynomial", " ", "into", " ", "linear", " ", RowBox[{"factors", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact", "=", RowBox[{"FactorMP", "[", "poly", "]"}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["6", "5"], "-", FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "5"]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[6, 5], Rational[-3, 5]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", "\[ImaginaryI]"}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["1", "5"]}], "+", FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "5"]}], ")"}]}]}], Infix[{Complex[-1, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-1, 5], Rational[3, 5]]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.633867740925776*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Test", " ", "whether", " ", "the", " ", "factorization", " ", "is", " ", RowBox[{"correct", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Expand", "[", "fact", "]"}], "-", "poly"}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"0", "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{0, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633867741985929*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Animation", " ", "of", " ", "the", " ", "factored", " ", RowBox[{"motion", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", "fact", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Different", " ", "style", " ", "of", " ", RowBox[{"animation", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", RowBox[{"fact", ",", RowBox[{"Style", "\[Rule]", "\"\\""}]}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Compute", " ", "the", " ", "second", " ", RowBox[{"factorization", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"facts", "=", RowBox[{"{", RowBox[{"fact", ",", RowBox[{"FactorMP", "[", RowBox[{"poly", ",", RowBox[{"Order", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"1", "-", "I"}], ",", RowBox[{"-", "I"}]}], "}"}]}]}], "]"}]}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["6", "5"], "-", FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "5"]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[6, 5], Rational[-3, 5]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", "\[ImaginaryI]"}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["1", "5"]}], "+", FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "5"]}], ")"}]}]}], Infix[{Complex[-1, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-1, 5], Rational[3, 5]]]}, "+"], Editable->False], ")"}]}], ",", RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", "\[ImaginaryI]"}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["7", "5"], "+", FractionBox["\[ImaginaryI]", "5"]}], ")"}]}]}], Infix[{Complex[-1, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[7, 5], Rational[1, 5]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["2", "5"]}], "-", FractionBox["\[ImaginaryI]", "5"]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-2, 5], Rational[-1, 5]]]}, "+"], Editable->False], ")"}]}]}], "}"}]], "Output", CellChangeTimes->{3.633867760463476*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Show", " ", "the", " ", "corresponding", " ", RowBox[{"linkage", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"P1", ",", "P2"}], "}"}], ",", RowBox[{"{", RowBox[{"P3", ",", "P4"}], "}"}]}], "}"}], "=", RowBox[{"List", "@@@", "facts"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"link", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "1", ",", "P1"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "2", ",", "P2"}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", "P4"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", "1", ",", "P3"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"link", ",", "3", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.015", ",", "0.003"}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{"4", ",", "1", ",", "3", ",", "2"}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Create", " ", "movie", " ", RowBox[{"ToyExample", ".", "mp4"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"link", ",", "3", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.015", ",", "0.003"}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{"4", ",", "1", ",", "3", ",", "2"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "1000"}], ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", "150"}], "}"}]}]}], "]"}]}]], "Input"], Cell[BoxData["\<\"In the directory \ /win/d/Forschung/Publikationen/15_PlanarLinkages/software execute the \ following command:\\nffmpeg -i temp%05d.jpg -r 25 -qscale 4 movie.mp4\"\>"], \ "Output", CellChangeTimes->{3.633867794413402*^9, 3.633867828319253*^9}] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["Example: elliptic translation", "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ RowBox[{ "We", " ", "consider", " ", "the", " ", "ellipse", " ", "given", " ", "by", " ", "the", " ", "equation", " ", RowBox[{ RowBox[{"(", RowBox[{"x", "+", "1"}], ")"}], "^", "2"}]}], " ", "+", " ", RowBox[{"4", "*", RowBox[{"y", "^", "2"}]}]}], " ", "\[Equal]", " ", "1."}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ContourPlot", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"x", "+", "1"}], ")"}], "^", "2"}], "+", RowBox[{"4", RowBox[{"y", "^", "2"}]}]}], "\[Equal]", "1"}], ",", RowBox[{"{", RowBox[{"x", ",", RowBox[{"-", "2"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"y", ",", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ",", RowBox[{"1", "/", "2"}]}], "}"}], ",", RowBox[{"AspectRatio", "\[Rule]", RowBox[{"1", "/", "2"}]}]}], "]"}]}]], "Input"], Cell[BoxData[ GraphicsBox[GraphicsComplexBox[CompressedData[" 1:eJxdmAlYTmkbx8uWrazTjCypxOjDWFJZn/ksYQZhytpHdiVRllS2GFlGQwlJ pkTRYilbKfMvjEaRRBLVi7KkRXtpO9/7nuc+73V13uu5rtfpPc55lvv+/3/3 bbBi47zVrTQ0NFw0NTRU39qlRrFH35biyu7bzbn1Cqj+pqFRBvFL4y0GzvAd MMO3DP3nepldUf5uayXc6XSiDCcqjZ+7K6+73l1ie1GvHIdtnAaaFCvwq+r2 AeW42pxfXPhFAY9Ow906DS9HsHZhkHahAjoP/mNsea4c458VOmW+UGDTm1sb 3twqR4cmDZs/0xXosDwmK+5ZOdKq2g+ZnKLAHzd8LjcZVaBE38cs5qYCfqrH z6hAVbfV6/IjFGitxczL3StgOK7nrTWBCpianB9pcr4CtduPKocCsRtUL6iA dnHf31p7KBDtOlP5z0qEe95d6WCnQK7q9RsqkVY5/mnleAWa0xfq6xVVIjF1 8PYxbRWw6DOi5FDnKhiFTfDxrMrDpX1jlaMKt8Xn5tH+VKGkabgRwvPQ4YfQ gPGlVRjtlrPonlMe3m70y93oVw3vmAblyMVGcb3VMMw7sn3U+1w45nRqjHxY jbW5dod3vMzF6GuqCVbDSbwvl+Zfg22a0eGmBTkI2rpvcMWiWkQ9vJsIhxxk JeaNGH2tFj+J/zEHmuK51SHLWs+l9Pob2HvqrvPUrUNkXIByvKH51yFHXPcb hB9JuXQkpQ4B4g2v8Yt4ft8wut8Tfcfxr+Hyvavz967fEBD46HTgo2y8Ez/f 6L5s3DPooxz19JxXOC6eTz366RVNXrnzFc6Iz61HskeCcmRB87rW437DG2hd L9Fww0o1UGMfpBwvaV4NaLWmi/8Eu5comJCXPyGvAWYLNo9esDkTXbyrz0VP bKR9fwFry9XK0Yj9ky1+n2zxAsbi3xtxX/w8x6y0gplpBY3IH1b6flhpBnof /djFrF8TxVEGnmTaKkcT5vU6MbfXiWe0702w0to6R2trOsSfnzThWauh6coB RxPtMbXZTZQn6Til92pcWLtmLG3tkfwiMQ02+UvfLhvdjN0vtcP+XfsE8Xte KU+iGQpxXamYUmhrNtmvGT1CN2d3nptCcdSMTPEck3HDafjUiUXNuOz8U9lV vWSsDprssLe8GXfE+x5iWnaTZXZTM3Zg7jbMfQhlsA1Zbi7AyM7PoSL2Pmp2 +fsorAWcFNd3j/ZTea3zJVjnSyIs7hbO2uguwKVX2aN3IxOx8/5r86idAtqI 60nEvsoRFvr7BDzXy+t11xr4ttD+/shTAlKTf+l9Mi4BncYe2n8rWEC++Nx4 FLnqD1p8RcCaK4qdgevi0HNcdI9x0QJ2qtKvNhbtav5UppqAv8X538IOVRgk CwiYq9rwm/Dp23HJqDQBXS3q4g5lXUf9wZE3nDOVv4vzj0Ht0em9s18LmHXB 27FEPxpr3ducNPggwLPrQI+zvS+j8wbb6i6fBRSJ84nEX5+33Hb4IuDxzwnz VvSMQF2/7kleXwU8FN8fhl4VzjPyywTMO1o/K6QwFA8WDrQ+XyVghX++1dfm ECwQnGu2VAsIEd8fgpgEPXuTGgHJX6uMUiPP4YPz2g7x35T3u+++YmMWiOp1 e07/UC+gQXz/GYQtqw9dpryO4wmH7G+92kxpEnCksEOXC8G+MO0+Zoqd8jpG fL4vSkd8urlFeb1uxU9W8bU+qF7WztxaEOA6KDpdd8teeE/R6bZQeZ0h3r8X tivjf12svL7XYOB5W38v6bRGIv8KTqjRX2u1QPn7PH4/k55XM1B8HpPe9yN/ H5Pm48Lnw6T5zuTzZdJ63Ph6mLTeeL5eJu2HId8PJu3XRb5fTNrPvXw/mbTf /+X7zaTzGMXPg0nnFcbPi0nneZmfJ9Om807l582keFjK44FJ8cJ4vDApng7z eGK+FG+CuRhvTIrHIzwemRbF6xUer0yK5w08npkU7zY83llnyofnPB+YlC9/ 83xhUj79zfOJ7aJ8qxNUHzApHx15PjIpX/15vrJayuc/eT6zkC3Dzhj8ImDr UMvjbln32Nu+A3WNLQSM+LC5S6uE+2zVd0v8Ko0F9BeP8wGT9MKZ6wVbQ3oS w/WESXpzkesNk/ToOdcjNpX0SofrFUsgPcviesbmk965c71jAaSHM7kesg2k l43iep+yl6SnaVxPmUxvWRrp8Ryux6wP6fUxrtdsNun5O67nTKb3zIb8YB/3 A9aN/MKQ+wWT/MSU+wmT+Q1rJD+q4n7EWpNf3eB+xQLJz/7hfsZkfsfukx9e 5H7ICsgvLblfss3kp/7cT5nMb1kk+bE/92MWSX79ivs1cyA/D+d+zmR+z54T D5hyHmDniBciOS8wGU8wS/F8a3AgI87R68dcZk784cj5g0l8sobzCZPxC8tr yTesI/GPKecfJuMjFk78xJeTxyS+MuR8xZpa8heT8RmT8RuT8R1rO3GMbbsd FRC3M0DBZLzIZDzJZLzJJB7t9Tr2i366gsl4lcl4lsl4l8l4mMl4mUk8HSVY eNxRXje1VwF4mcTfTMbfLF5cX6nE32zOcs3DnzNL1c/7tH/6tOiUEvX7XMT5 l6jn0101zaAS9XyLXS/d3Hy3GBNoPYPF+RRL/M3qJpyZc8S2GE9pPypO5lxo E1uEUtqvt+J5FKGa9lPjd+9plVpF0Kf9Pt917YdBDwoRQeczW9yfQqTT+XVf OjspdfBn3KfzbSuu8zOavG5uXNiQx04lnzUu/vgJAygeLtcdvlp3+JM6XhLE 74/4SvFU+fRmipfRR5hRvFn1z5rSP6sAvhSPJuL6CmBM8Tp02metSy4FsKd4 9g1STbhAHe/uoq6+xyHKB38xft7DjfLlQc9vUb1nvsNlyieHXZMCTwS9xQTK t3ZUN+VQPq5U2WeoApcpX23Kv1tW/p1Cnc92IoDmIJDy/RNx+TjSg/EhRmND jF7jDOnFxu2qzyu1ntSLdU4WIkhv7hFXDyA98hd9LROPSK8qR717+jt7rtYz 3SFJ3YckZaCO9O4v4uKOpIeb2x/Y1P5AOsxJL91O/Vbm0jFNracrxfk/hhfp bSVx7mPS47+8s/29s//FB9Lr/gdS91jpJKv1/Iw4v39gTXofQdy6mPxgofj3 JGSQXwRGnTS3HJ6k9pMh81UHAJiS34SldKvXjEiAJ/nR9CrXmMV5sWq/Slo/ IuBx/C10Jz+LIM58T37HzzcakeSH73ROj1tVek3tlx7rDY+tN7yGteSnVxwt VrzuEQ4Dzt9Mz6DssfaqULVfRxBHRpGfay36d5JuTDA2kd//1sY+9NHUYDUP dNdXEUMQookXkpLCja1GBeAB8UTfndFnl2acUvOGQVtDi232frAiHjESeeU4 nIlXLMX4PKbmGT2xYDuCo8Q7E5XV87yPB9FIPFS3N/6j8bT9al6KaBO7xOX4 XvyXeKrr6f0N9nnuWEy8FeXhuTsz1lXNYznLv/9j+omtuEq8dkTrXclEt01q nvsxrXefDWOcYEa8F+Y6+/qCuDWYSDxoMVezTw/d1Wpe/PmMV8rQyJUIJ54M FPd7EfSJN4NNbJtPn12g5tGu61QGOR8exKt2ZiOGKxRT8Svx7Kb/OZnnNU1R 8+4c300P5yyegsHEwxrzNE313YzVvLxnker+AWqeTjzgd/zgrQGYxPmbabT4 BCfsmamav7Ga13+m520jnt9E77Mn3j9G85HqAWm+f1C9IK0nnuoJab1SvSHt xzKqR6T9ekT1ykzaT6meyaD9tqN6ZyGdhw3VQ4F0XlK9VEznmUb11I5K3/Md y1zV9dZ0ioddVI8lU7xYUb2msY/Hk1TPLaB406Z6bzzF41mqBy+L7z+mrhcj aF86pzw4UaodiwEU355UXxpT/C+j+nMi5YdUn76h/HlG9etEyq+HVN+uovyT 6l9dys9tVB/L8hdFNoc73Im8AKdmu/xnjUkwoXyX6u07pAeDqB73Jr3YQvV6 CemJVM8/Jr2Jpnpfpkd4RHr1A/ULrEnPpH5CDOmdF/UbbEgPLakfEUp6KfUr lpKeZlI/Q6a3CCE9nk/9kGGk11K/JJT0/BP1UyS9T6V+y3ryg4PUjzlEfiH1 a7aTn4yhfo7kNx2o36NHflRP/aBG8iupX3SW/CyV+kkyv0Mz+WEU9aPcyS+l ftUk8tNA6mdJfjuW+l2ryY/PUj9sBfm11C9bR35+hfppMr/HSuKBMdSP+4d4 4Sr162Q8gR3EG4c5b+Ak8YjU/xtGvOJA/UGJZwZS/3AW8Y4P9RerWvIQZLyE aOIpqX8p8ZYx9Te7teQzyPgNF1ryHU6J6/kCHeqvBov79gV11H9tU+Hp07dj kTJveX9Wxo+Q8SVqW/InZHwKGb9CxreQ8S8+t+RjyPgZEl8Tj0PeD/8/yZfa sA== "], {{}, {}, TagBox[ TooltipBox[ {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], LineBox[CompressedData[" 1:eJwl1GV7EAQUBeANGN05mtHdbHR3M7phwGg2WgSku0FBSSWUTiUMusMglO4u RUWlhHcPH95zfsB97gmJiArvFxgQEDBAxHQsYhOHIOISj/gkICGJSEwSkpKM 5KQgJalITRrSko5g0pOBjGQiM1nISjZCyE4OcpKL3OQhL/nITwEKUojCFKEo xShOCUpSilDCKE0ZylKO8lSgIpWoTBWqUo3q1KAmtahNHepSj/o0oCGNaEwT wmlKM5rTgpa0ojVtaEs72tOBjnSiMxF0oSvdiKQ7PehJL3rTh770I4po+sfc kYEMYjBDGMoHDONDhjOCkXzEKEYzhrGMYzwTmMgkJjOFqUxjOjOYySxmM4e5 zONjPmE+C/iUz1jIIhazhKUs43O+YDkrWMkqvuQrVrOGtaxjPRvYyCY2s4Wt bONrvmE7O9jJLr7lO77nB3azh73sYz8HOMghDnOEoxzjOCc4ySl+5Cd+5hdO c4aznONXfuM8F7jIJS5zhatc4zo3uMktbnOHu9zjPg94yCMe84Sn/M4fPONP /uJvnvMP//IfL3jJK17zhv95S8zzBxKL2MQhiLjEIz4JSEgiEpOEpCQjOSlI SSpSk4a0pCOY9GQgI5nITBayko0QspODnOQiN3nISz7yU4CCFKIwRShKMYpT gpKUIpQwSlOGspSjPBWoSCUqU4WqVKM6NahJLWpTh7rUoz4NaEgjGtOEcJrS jOa0oCWtaE0b2tKO9nSgI53oTARd6Eo3IulOD3rSi970oS8x4x1FNP0D3+/4 O0Kdm7U= "]]}, RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"1", "+", "x"}], ")"}], "2"], "+", RowBox[{"4", " ", SuperscriptBox["y", "2"]}]}], "\[Equal]", "1"}]], Annotation[#, (1 + $CellContext`x)^2 + 4 $CellContext`y^2 == 1, "Tooltip"]& ]}], AspectRatio->NCache[ Rational[1, 2], 0.5], DisplayFunction->Identity, Frame->True, FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], Method->{"DefaultBoundaryStyle" -> Automatic}, PlotRange->NCache[{{-2, 0}, { Rational[-1, 2], Rational[1, 2]}}, {{-2, 0}, {-0.5, 0.5}}], PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, { Scaled[0.02], Scaled[0.02]}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{3.633866562336485*^9, 3.633867896384048*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"We", " ", "use", " ", "the", " ", "following", " ", RowBox[{"parametrization", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ParametricPlot", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "t"}], "}"}], "/", RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1"}], ")"}]}], ",", RowBox[{"{", RowBox[{"t", ",", RowBox[{"-", "100"}], ",", "100"}], "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ",", RowBox[{"1", "/", "2"}]}], "}"}]}], "}"}]}]}], "]"}]}]], "Input"], Cell[BoxData[ GraphicsBox[{{}, {}, {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ 1.], FaceForm[Opacity[0.3]], LineBox[CompressedData[" 1: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 lTSykFhzQsG1T0EF04+o5P/1TeR/p+X4Yw== "]]}}, Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, DisplayFunction->Identity, FrameLabel->{{None, None}, {None, None}}, FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], Method->{"ScalingFunctions" -> None}, PlotRange->NCache[{{-2, 0}, { Rational[-1, 2], Rational[1, 2]}}, {{-2, 0}, {-0.5, 0.5}}], PlotRangeClipping->True, PlotRangePadding->{{0, 0}, {0, 0}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{3.633866573010632*^9, 3.6338679006380997`*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "This", " ", "translates", " ", "into", " ", "the", " ", "following", " ", "motion", " ", "polynomial"}], ","}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "realizing", " ", "a", " ", "translational", " ", "motion", " ", "along", " ", "the", " ", RowBox[{"ellipse", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"poly", "=", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "2"}], "+", RowBox[{"I", "*", "t"}]}], ")"}]}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{"AnimateMP", "[", "poly", "]"}]}]}]], "Input", CellChangeTimes->{{3.640445732604957*^9, 3.6404457654470263`*^9}, { 3.6404458119139547`*^9, 3.640445816970385*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "To", " ", "factor", " ", "this", " ", "motion", " ", "polynomial"}], ",", " ", RowBox[{ RowBox[{"it", " ", "is", " ", "multiplied", " ", "by", " ", RowBox[{"t", "^", "2"}]}], "+", "1."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"We", " ", "obtain", " ", "a", " ", "2"}], "-", RowBox[{"parameter", " ", "family", " ", "of", " ", RowBox[{"factorizations", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact1", "=", RowBox[{"FactorMP", "[", "poly", "]"}]}]}]], "Input", CellChangeTimes->{ 3.6345809834934587`*^9, {3.640445774389695*^9, 3.6404457846733828`*^9}, { 3.640445830125176*^9, 3.640445880408765*^9}, {3.640446594196435*^9, 3.6404466169413767`*^9}}], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"FactorMP", "::", "R"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Multiply the input with R = \[NoBreak]\\!\\(1 + t\\^2\\)\ \[NoBreak]\"\>"}]], "Message", "MSG", CellChangeTimes->{3.633867935674411*^9, 3.633868099328671*^9, 3.6345808135654163`*^9, 3.634580984104248*^9, 3.634581197074873*^9, 3.640445883995064*^9, 3.6404466177345037`*^9, 3.6404469673216543`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["\[ImaginaryI]", "2"]}], "+", RowBox[{"C", "[", "2", "]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[-1, 2]] + C[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "2", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[2]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "2"], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[3, 2]] + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.63386793569626*^9, 3.633868099350027*^9, 3.6345808135669003`*^9, 3.6345809841240463`*^9, 3.634581197099688*^9, 3.640445884012349*^9, 3.640446617749757*^9, 3.640446967353546*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "This", " ", "is", " ", "a", " ", "factorization", " ", "with", " ", "different", " ", "order", " ", "of", " ", "the", " ", RowBox[{"roots", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"FactorMP", "[", RowBox[{"poly", ",", RowBox[{"Order", "\[Rule]", RowBox[{"{", RowBox[{"I", ",", RowBox[{"-", "I"}], ",", RowBox[{"-", "I"}], ",", "I"}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.6345809872065077`*^9, 3.63458099224657*^9}, { 3.634581080244429*^9, 3.63458110578424*^9}, {3.640445893146456*^9, 3.640445893529574*^9}}], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"FactorMP", "::", "R"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Multiply the input with R = \[NoBreak]\\!\\(1 + t\\^2\\)\ \[NoBreak]\"\>"}]], "Message", "MSG", CellChangeTimes->{3.633867937509034*^9, 3.633868101192707*^9, 3.634580815852455*^9, 3.63458099303649*^9, 3.634581117349971*^9, 3.6345812009881907`*^9, 3.640445897080304*^9}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "2"], "+", RowBox[{"C", "[", "2", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[3, 2]] + C[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "2", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[2]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["\[ImaginaryI]", "2"]}], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[-1, 2]] + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.6338679375289993`*^9, 3.6338681012110357`*^9, 3.6345808158648643`*^9, 3.634580993058981*^9, 3.6345811173538733`*^9, 3.6345812010016727`*^9, 3.640445897101338*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Using", " ", "the", " ", "first", " ", "factorization"}], ",", " ", RowBox[{ "we", " ", "can", " ", "construct", " ", "a", " ", "linkage", " ", "which"}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "strongly", " ", "realizes", " ", "the", " ", "translational", " ", "motion", " ", "along", " ", "the", " ", RowBox[{"ellipse", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{ RowBox[{"ConstructLinkage", "[", RowBox[{ RowBox[{"fact1", "/.", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", "0"}], ",", RowBox[{ RowBox[{"C", "[", "2", "]"}], "\[Rule]", RowBox[{ RowBox[{"-", "I"}], "/", "2"}]}]}], "}"}]}], ",", RowBox[{"t", "+", RowBox[{ RowBox[{"9", "/", "5"}], "I"}], "+", RowBox[{"eta", "*", "0"}]}]}], "]"}], ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"5", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Direction", "\[Rule]", RowBox[{"{", RowBox[{"0.03", ",", "0"}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.640446624059059*^9, 3.640446773221293*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Multiplying", " ", "with", " ", "t"}], "-", RowBox[{ "I", " ", "from", " ", "the", " ", "left", " ", "also", " ", "enables", " ", "us", " ", "to", " ", "find", " ", "a", " ", RowBox[{"factorization", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "By", " ", "doing", " ", "so", " ", "we", " ", "change", " ", "the", " ", "motion", " ", RowBox[{ RowBox[{"(", RowBox[{ "it", " ", "is", " ", "not", " ", "any", " ", "more", " ", "a", " ", "translational", " ", "one"}], ")"}], "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"However", ",", " ", RowBox[{ "the", " ", "orbit", " ", "of", " ", "the", " ", "origin", " ", "under", " ", "this", " ", "new", " ", "motion", " ", "is", " ", "still", " ", "the", " ", RowBox[{"ellipse", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact2", "=", RowBox[{"FactorMP", "[", RowBox[{ RowBox[{"(", RowBox[{"t", "-", "I"}], ")"}], "**", RowBox[{"(", RowBox[{ RowBox[{"t", "^", "2"}], "+", "1", "+", RowBox[{"eta", "*", RowBox[{"(", RowBox[{ RowBox[{"-", "2"}], "+", RowBox[{"I", "*", "t"}]}], ")"}]}]}], ")"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.640445939277668*^9, 3.6404459464297543`*^9}, { 3.6404460731427383`*^9, 3.6404461665225687`*^9}, 3.640446984207478*^9}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 2]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"3", " ", "\[ImaginaryI]"}], "2"], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[3, 2]] + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.64044616848886*^9, 3.640446984676627*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "Choose", " ", "some", " ", "value", " ", "for", " ", "the", " ", "parameter", " ", "of", " ", "this", " ", "one"}], "-", RowBox[{"dimensional", " ", "family", " ", "of", " ", RowBox[{"factorizations", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact2", "=", RowBox[{"fact2", "/.", RowBox[{ RowBox[{"C", "[", "1", "]"}], "\[Rule]", RowBox[{"-", "I"}]}]}]}]}]], "Input", CellChangeTimes->{{3.6404461812046843`*^9, 3.6404462257661943`*^9}, { 3.640446991481432*^9, 3.640446992897648*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 2]]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 2]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.640446226711739*^9, 3.640446993681262*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Use", " ", "this", " ", "factorization", " ", "to", " ", "construct", " ", "a", " ", RowBox[{"linkage", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "The", " ", "second", " ", "argument", " ", "is", " ", "a", " ", "linear", " ", "motion", " ", "polynomial", " ", "that", " ", "can", " ", "be", " ", "chosen", " ", "almost", " ", RowBox[{"randomly", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"With", " ", "some", " ", "experiments"}], ",", " ", RowBox[{ RowBox[{ "we", " ", "found", " ", "this", " ", "one", " ", "which", " ", "gives", " ", "a", " ", "nice"}], "-", RowBox[{"looking", " ", RowBox[{"linkage", "."}]}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"linkEll", "=", RowBox[{"ConstructLinkage", "[", RowBox[{"fact2", ",", RowBox[{"t", "+", RowBox[{ RowBox[{"9", "/", "5"}], "*", "I"}], "+", RowBox[{"eta", "*", RowBox[{"18", "/", "35"}], "*", "I"}]}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.640446261296294*^9, 3.6404462750311813`*^9}, { 3.640446355921337*^9, 3.640446419362949*^9}, {3.640446816515305*^9, 3.640446816673066*^9}, 3.640446995622027*^9}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "2", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "\[ImaginaryI]"}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, 1]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "3", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 2]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "4", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox["\[ImaginaryI]", "2"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[1, 2]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "6", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{"\[ImaginaryI]", "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"11", " ", "\[ImaginaryI]"}], "56"]}]}], Infix[{Complex[0, 1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[11, 56]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"6", ",", "7", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"5", " ", "\[ImaginaryI]"}], "8"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[5, 8]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"7", ",", "8", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "\[ImaginaryI]"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"13", " ", "\[ImaginaryI]"}], "28"]}]}], Infix[{Complex[0, -1] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[13, 28]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "5", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"9", " ", "\[ImaginaryI]"}], "5"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"207", " ", "\[ImaginaryI]"}], "140"]}]}], Infix[{Complex[0, Rational[9, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[207, 140]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "6", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"9", " ", "\[ImaginaryI]"}], "5"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"27", " ", "\[ImaginaryI]"}], "40"]}]}], Infix[{Complex[0, Rational[9, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[27, 40]]]}, "+"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", "7", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"9", " ", "\[ImaginaryI]"}], "5"], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"9", " ", "\[ImaginaryI]"}], "20"]}]}], Infix[{Complex[0, Rational[9, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[9, 20]]]}, "-"], Editable->False]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", "8", ",", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox[ RowBox[{"9", " ", "\[ImaginaryI]"}], "5"], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", FractionBox[ RowBox[{"18", " ", "\[ImaginaryI]"}], "35"]}]}], Infix[{Complex[0, Rational[9, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[0, Rational[18, 35]]]}, "+"], Editable->False]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.640446421144534*^9, 3.6404468169315033`*^9, 3.640446996180917*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Rename", " ", "the", " ", "labels", " ", "such", " ", "that", " ", "they", " ", "agree", " ", "with", " ", "those", " ", "in", " ", "the", " ", RowBox[{"paper", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"linkEll", "=", RowBox[{"Map", "[", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"IntegerQ", "[", "#", "]"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"#", "\[LessEqual]", "4"}], ",", RowBox[{"5", "-", "#"}], ",", RowBox[{"13", "-", "#"}]}], "]"}], ",", "#"}], "]"}], "&"}], ",", "linkEll", ",", RowBox[{"{", "2", "}"}]}], "]"}]}], ";"}]}]], "Input", CellChangeTimes->{{3.640446886280403*^9, 3.640446889012577*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Define", " ", "some", " ", "coloring", " ", "of", " ", "the", " ", RowBox[{"links", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"colEll", "=", RowBox[{"{", RowBox[{ RowBox[{"4", "\[Rule]", "White"}], ",", RowBox[{"3", "\[Rule]", "Yellow"}], ",", RowBox[{"2", "\[Rule]", "Orange"}], ",", RowBox[{"1", "\[Rule]", "Red"}], ",", RowBox[{"8", "\[Rule]", "Green"}], ",", RowBox[{"7", "\[Rule]", "Cyan"}], ",", RowBox[{"6", "\[Rule]", "Blue"}], ",", RowBox[{"5", "\[Rule]", "Magenta"}]}], "}"}]}], ";"}]}]], "Input", CellChangeTimes->{{3.64044700412943*^9, 3.640447022072633*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Now", " ", "the", " ", "motion", " ", "produced", " ", "by", " ", "the", " ", "end", " ", "effector", " ", "is", " ", "not", " ", "any", " ", "more", " ", RowBox[{"translational", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}], ",", RowBox[{"Direction", "\[Rule]", RowBox[{"{", RowBox[{"0.03", ",", "0"}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.640447062264921*^9, 3.640447068184187*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Define", " ", "an", " ", "order", " ", "of", " ", "the", " ", RowBox[{"links", ".", " ", "This"}], " ", "produces", " ", "5", " ", "collisions", " ", "at", " ", "t"}], "=", RowBox[{"\[Infinity]", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "This", " ", "is", " ", "the", " ", "ordering", " ", "produced", " ", "by", " ", "our", " ", "code", " ", "in", " ", RowBox[{"ConstructLinkage", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Also", " ", "the", " ", "pen", " ", "collides", " ", "only", " ", "at", " ", "t"}], "=", RowBox[{"\[Infinity]", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"ordEll", "=", RowBox[{"{", RowBox[{ "8", ",", "4", ",", "5", ",", "1", ",", "6", ",", "2", ",", "7", ",", "3"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}]}], "]"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.640447172170156*^9, 3.640447233478744*^9}, { 3.640447270302451*^9, 3.6404472867616787`*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "5", ",", "7"}], "}"}], ",", FractionBox["5", "42"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "1", ",", "7"}], "}"}], ",", FractionBox["11", "28"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "1", ",", "7"}], "}"}], ",", FractionBox["11", "16"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "6", ",", "7"}], "}"}], ",", FractionBox["37", "61"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "6", ",", "7"}], "}"}], ",", FractionBox["25", "49"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "2", ",", "7"}], "}"}], ",", FractionBox["17", "56"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "2", ",", "7"}], "}"}], ",", FractionBox["25", "42"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "6", ",", "2"}], "}"}], ",", FractionBox["54", "61"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "6", ",", "2"}], "}"}], ",", FractionBox["6", "7"], ",", "\[Infinity]"}], "}"}]}], "}"}]], "Output", CellChangeTimes->{{3.6404472234235277`*^9, 3.6404472368399343`*^9}, { 3.6404472722357187`*^9, 3.640447289253498*^9}}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Here", " ", "is", " ", "a", " ", "different", " ", "ordering"}], ",", " ", RowBox[{"figured", " ", "out", " ", "by", " ", RowBox[{"hand", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"It", " ", "produces", " ", "only", " ", "2", " ", "collisions"}], ",", " ", RowBox[{ RowBox[{"both", " ", "at", " ", "t"}], "=", RowBox[{"\[Infinity]", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "Also", " ", "the", " ", "pen", " ", "collides", " ", "only", " ", "at", " ", "t"}], "=", RowBox[{"\[Infinity]", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"ordEll", "=", RowBox[{"{", RowBox[{ "5", ",", "1", ",", "6", ",", "2", ",", "7", ",", "8", ",", "4", ",", "3"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}]}], "]"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.6404473117556353`*^9, 3.64044733676448*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "6", ",", "2"}], "}"}], ",", FractionBox["54", "61"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", "6", ",", "2"}], "}"}], ",", FractionBox["6", "7"], ",", "\[Infinity]"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"7", ",", "8", ",", "3"}], "}"}], ",", FractionBox["2", "7"], ",", "\[Infinity]"}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.633868284741747*^9, 3.64044734239286*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"ellgraph", "[", "s_", "]"}], ":=", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", "0.004"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", RowBox[{"ImageSize", "\[Rule]", "s"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"ellgraph", "[", "400", "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"(*", RowBox[{ RowBox[{"Export", "[", RowBox[{"\"\<../www/EllipseLG.jpg\>\"", ",", RowBox[{"ellgraph", "[", "600", "]"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.01"}]}], "]"}], ";"}], "*)"}]}]}], "Input", CellChangeTimes->{ 3.640447412597639*^9, {3.6404475325585747`*^9, 3.640447537969997*^9}, { 3.640449298603795*^9, 3.6404493209848213`*^9}}], Cell[BoxData[ GraphicsBox[ {Thickness[0.004], LineBox[{{-4, 1}, {-3, 1}}], LineBox[{{-3, 1}, {-2, 1}}], LineBox[{{-2, 1}, {-1, 1}}], LineBox[{{-4, 1}, {-4, 0}}], LineBox[{{-4, 0}, {-3, 0}}], LineBox[{{-3, 0}, {-2, 0}}], LineBox[{{-2, 0}, {-1, 0}}], LineBox[{{-3, 1}, {-3, 0}}], LineBox[{{-2, 1}, {-2, 0}}], LineBox[{{-1, 1}, {-1, 0}}], {RGBColor[1, 0, 0], DiskBox[{-1, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-1, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["1", StripOnInput->False, FontSize->Rational[50, 3]], {-1, 1}]}, {RGBColor[1, 0.5, 0], DiskBox[{-2, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-2, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["2", StripOnInput->False, FontSize->Rational[50, 3]], {-2, 1}]}, {RGBColor[1, 1, 0], DiskBox[{-3, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-3, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["3", StripOnInput->False, FontSize->Rational[50, 3]], {-3, 1}]}, {GrayLevel[1], DiskBox[{-4, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-4, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["4", StripOnInput->False, FontSize->Rational[50, 3]], {-4, 1}]}, {RGBColor[1, 0, 1], DiskBox[{-1, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-1, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["5", StripOnInput->False, FontSize->Rational[50, 3]], {-1, 0}]}, {RGBColor[0, 0, 1], DiskBox[{-2, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-2, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["6", StripOnInput->False, FontSize->Rational[50, 3]], {-2, 0}]}, {RGBColor[0, 1, 1], DiskBox[{-3, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-3, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["7", StripOnInput->False, FontSize->Rational[50, 3]], {-3, 0}]}, {RGBColor[0, 1, 0], DiskBox[{-4, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-4, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["8", StripOnInput->False, FontSize->Rational[50, 3]], {-4, 0}]}}, ImageSize->400]], "Output", CellChangeTimes->{ 3.6404474318958406`*^9, {3.640447534448915*^9, 3.64044753833654*^9}, { 3.640449304602724*^9, 3.64044932131647*^9}}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "In", " ", "order", " ", "to", " ", "build", " ", "the", " ", "linkage"}], ",", " ", RowBox[{ "compute", " ", "integral", " ", "lengths", " ", "of", " ", "the", " ", RowBox[{"links", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{ "For", " ", "each", " ", "link", " ", "the", " ", "positions", " ", "of", " ", "the", " ", "joints", " ", "connected", " ", "to", " ", "it", " ", "are", " ", "given"}], ","}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ RowBox[{"namely", " ", "their", " ", "x"}], "-", RowBox[{ "coordinates", " ", "in", " ", "the", " ", "initial", " ", "configuration", " ", "of", " ", "the", " ", RowBox[{"linkage", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"pos", "=", RowBox[{"First", "/@", RowBox[{"(", RowBox[{"112", "*", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"FixPoint", "[", RowBox[{"Last", "[", "#", "]"}], "]"}], "&"}], "/@", "linkEll"}], ")"}]}], ")"}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{"pos", "[", RowBox[{"[", RowBox[{"First", "/@", RowBox[{"Position", "[", RowBox[{ RowBox[{"Most", "/@", "linkEll"}], ",", "i"}], "]"}]}], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "8"}], "}"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.633868346247725*^9, 3.6338683463417187`*^9}, { 3.64044756335145*^9, 3.6404475637883463`*^9}, {3.6404476084406357`*^9, 3.640447610605242*^9}, {3.640447658255487*^9, 3.640447758302794*^9}}], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "28"}], ",", RowBox[{"-", "16"}]}], "}"}], ",", RowBox[{"{", RowBox[{"28", ",", RowBox[{"-", "28"}], ",", "14"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "56"}], ",", "28", ",", RowBox[{"-", "21"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "56"}], ",", RowBox[{"-", "46"}]}], "}"}], ",", RowBox[{"{", RowBox[{"26", ",", RowBox[{"-", "16"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "35"}], ",", "26", ",", "14"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "11"}], ",", RowBox[{"-", "35"}], ",", RowBox[{"-", "21"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "11"}], ",", RowBox[{"-", "46"}]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.640447564098583*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Create", " ", "movie", " ", RowBox[{"Ellipse", ".", "mp4", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}], ",", RowBox[{"Range", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "Pi"}], "/", "2"}], "+", RowBox[{"10", "^", RowBox[{"(", RowBox[{"-", "6"}], ")"}]}]}], ",", RowBox[{ RowBox[{"Pi", "/", "2"}], "+", RowBox[{"1", "/", "2"}]}]}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "2000"}], ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", "300"}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.640447772271606*^9, 3.640447778753811*^9}}], Cell[BoxData["\<\"In the directory \ /win/d/Forschung/Projekte/motion-poly/software execute the following command:\ \\nffmpeg -i temp%05d.jpg -r 25 -qscale 4 movie.mp4\"\>"], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Create", " ", "movie", " ", RowBox[{"Ellipse3D", ".", "mp4", "."}]}], " ", "*)"}], RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"ColorOutput", "\[Rule]", "colEll"}], ",", RowBox[{"Boxed", "\[Rule]", "False"}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.007", ",", "0.004"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "2000"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "0.65"}], ",", "0.3"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.43"}], ",", "0.5"}], "}"}]}], "}"}]}], ",", RowBox[{"Range", "\[Rule]", RowBox[{"{", RowBox[{"1.3", ",", "1.8"}], "}"}]}], ",", RowBox[{"ViewPoint", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1"}], ",", RowBox[{"-", "3"}], ",", "1.5"}], "}"}]}], ",", RowBox[{"ViewVertical", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", "200"}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.640447818946261*^9, 3.6404478228588552`*^9}, { 3.640448944348372*^9, 3.640448946471835*^9}, {3.640448978233872*^9, 3.640448979843194*^9}}], Cell[BoxData["\<\"In the directory \ /win/d/Forschung/Projekte/motion-poly/software execute the following command:\ \\nffmpeg -i temp%05d.jpg -r 25 -qscale 4 movie.mp4\"\>"], "Output"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Create", " ", "the", " ", "picture", " ", "shown", " ", "in", " ", "the", " ", RowBox[{"paper", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"grpr", "=", RowBox[{"MapThread", "[", RowBox[{ RowBox[{ RowBox[{"First", "[", RowBox[{"ShowLinkage", "[", RowBox[{"linkEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", RowBox[{"_", "\[Rule]", "#2"}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", "ordEll"}], ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", "#1"}], "}"}]}]}], "]"}], "]"}], "&"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"ArcTan", "[", RowBox[{"{", RowBox[{"2", ",", RowBox[{"1", "/", "2"}], ",", "0", ",", RowBox[{"-", "1"}]}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"White", ",", "LightGray", ",", "Gray", ",", "Black"}], "}"}]}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"cnt", "=", "1"}], ";", RowBox[{"grpr", "=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"grpr", "/.", RowBox[{"{", RowBox[{ RowBox[{"Red", "\[Rule]", "Black"}], ",", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.99", ",", "0", ",", "0"}], "]"}], "\[Rule]", "White"}]}], "}"}]}], "/.", RowBox[{ RowBox[{"Line", "[", RowBox[{"a_List", "/;", RowBox[{ RowBox[{"Length", "[", "a", "]"}], ">", "10"}]}], "]"}], "\[RuleDelayed]", RowBox[{"If", "[", RowBox[{ RowBox[{"cnt", "\[Equal]", "1"}], ",", RowBox[{ RowBox[{"cnt", "++"}], ";", RowBox[{"{", RowBox[{ RowBox[{"Thickness", "[", "0.006", "]"}], ",", RowBox[{"Line", "[", "a", "]"}], ",", RowBox[{"Thickness", "[", "0.002", "]"}]}], "}"}]}], ",", RowBox[{"{", "}"}]}], "]"}]}]}], "]"}]}], ";", RowBox[{"Clear", "[", "cnt", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"Graphics", "[", RowBox[{"grpr", ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "2.05"}], ",", "0.05"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.9"}], ",", "0.75"}], "}"}]}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"(*", "\[IndentingNewLine]", RowBox[{ RowBox[{"Export", "[", RowBox[{"\"\<../images/elliptic.jpg\>\"", ",", RowBox[{"Graphics", "[", RowBox[{"grpr", ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "2.05"}], ",", "0.05"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.9"}], ",", "0.75"}], "}"}]}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "2000"}]}], "]"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.1"}]}], "]"}], ";"}], "\[IndentingNewLine]", "*)"}]}]}]], "Input", CellChangeTimes->{{3.632669185471114*^9, 3.6326691870897017`*^9}, { 3.640447841990568*^9, 3.640447845654704*^9}, {3.6404480235782967`*^9, 3.640448056978986*^9}, {3.6404489102854757`*^9, 3.640448914656939*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Construct", " ", "a", " ", "collision"}], "-", RowBox[{ "free", " ", "linkage", " ", "using", " ", "some", " ", "links", " ", "of", " ", "special", " ", RowBox[{"shape", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"cfEll", "=", RowBox[{"Join", "[", RowBox[{"linkEll", ",", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{"i", ",", RowBox[{"-", "i"}], ",", RowBox[{"FixPoint", "[", RowBox[{ RowBox[{"Cases", "[", RowBox[{"linkEll", ",", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"i", "-", "4"}], ",", "i", ",", "a_"}], "}"}], "\[Rule]", "a"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"i", ",", "6", ",", "7"}], "}"}]}], "]"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"cfEll", "=", RowBox[{"cfEll", "/.", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"a", ":", RowBox[{"(", RowBox[{"6", "|", "7"}], ")"}]}], ",", "b_", ",", "c_"}], "}"}], "/;", RowBox[{ RowBox[{"a", "-", "b"}], "\[Equal]", "1"}]}], "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "a"}], ",", "b", ",", "c"}], "}"}]}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"cfEll", "=", RowBox[{"cfEll", "/.", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"a", ":", RowBox[{"(", RowBox[{"2", "|", "3", "|", "4"}], ")"}]}], ",", "b_", ",", "c_"}], "}"}], "/;", RowBox[{ RowBox[{"b", "-", "a"}], "\[Equal]", "4"}]}], "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "a"}], ",", "b", ",", "c"}], "}"}]}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"cfEll", "=", RowBox[{"Join", "[", RowBox[{"cfEll", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", RowBox[{"-", "2"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "3"}], "/", "5"}], ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"3", ",", RowBox[{"-", "3"}], ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "7"}], "/", "10"}], ",", "0"}], "}"}]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "4"}], ",", RowBox[{"{", RowBox[{ RowBox[{"7", "/", "20"}], ",", "0"}], "}"}]}], "}"}]}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"cfCol", "=", RowBox[{ RowBox[{"Join", "[", RowBox[{"colEll", ",", RowBox[{ RowBox[{ RowBox[{ RowBox[{"-", "#1"}], "\[Rule]", "#2"}], "&"}], "@@@", "colEll"}]}], "]"}], "/.", RowBox[{"White", "\[Rule]", RowBox[{"GrayLevel", "[", "0.8", "]"}]}]}]}], ";"}]}]}]], "Input", CellChangeTimes->{{3.6404483209165697`*^9, 3.640448476745657*^9}, { 3.640448730379431*^9, 3.640448740216712*^9}}], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Display", " ", "the", " ", "collision"}], "-", RowBox[{"free", " ", RowBox[{"linkage", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"cfEll", ",", "4", ",", RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"1", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "4"}], ",", "8", ",", "7", ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "7"}], ",", "6", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "6"}], ",", "5", ",", "1", ",", "2", ",", "3", ",", "4"}], "}"}]}], ",", RowBox[{"ColorOutput", "\[Rule]", "cfCol"}], ",", RowBox[{"Boxed", "\[Rule]", "False"}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.011", ",", "0.004"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", RowBox[{"ViewPoint", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1"}], ",", RowBox[{"-", "3"}], ",", "1.5"}], "}"}]}], ",", RowBox[{"ViewVertical", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "600"}], ",", RowBox[{"Lighting", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"GrayLevel", "[", "0.85", "]"}], ",", RowBox[{"10", RowBox[{"{", RowBox[{"2", ",", RowBox[{"-", "3"}], ",", "3"}], "}"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"GrayLevel", "[", "0.3", "]"}], ",", RowBox[{"10", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", RowBox[{"-", "3"}], ",", "3"}], "}"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"GrayLevel", "[", "0.2", "]"}], ",", RowBox[{"10", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "3"}]}], "}"}]}]}], "}"}]}], "}"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.6404485116941223`*^9, 3.6404485576027107`*^9}}] }, Closed]], Cell[CellGroupData[{ Cell["Example: John Hancock\[CloseCurlyQuote]s \[OpenCurlyDoubleQuote]J\ \[CloseCurlyDoubleQuote]", "Section"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Our", " ", "parametrization", " ", RowBox[{"{", RowBox[{ RowBox[{"x", "/", "d"}], ",", " ", RowBox[{"y", "/", "d"}]}], "}"}], " ", "of", " ", RowBox[{"Hancock", "'"}], "s", " ", RowBox[{"J", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"With", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"x", "=", RowBox[{ RowBox[{"-", "451"}], "-", RowBox[{"8666", " ", "t"}], "-", RowBox[{"64488", " ", RowBox[{"t", "^", "2"}]}], "-", RowBox[{"237449", " ", RowBox[{"t", "^", "3"}]}], "-", RowBox[{"436132", " ", RowBox[{"t", "^", "4"}]}], "-", RowBox[{"321880", " ", RowBox[{"t", "^", "5"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"y", "=", RowBox[{ RowBox[{"-", "651"}], "-", RowBox[{"11325", " ", "t"}], "-", RowBox[{"78158", " ", RowBox[{"t", "^", "2"}]}], "-", RowBox[{"270569", " ", RowBox[{"t", "^", "3"}]}], "-", RowBox[{"472949", " ", RowBox[{"t", "^", "4"}]}], "-", RowBox[{"336018", " ", RowBox[{"t", "^", "5"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"d", "=", RowBox[{"170", "*", RowBox[{"(", RowBox[{"9", "+", RowBox[{"162", " ", "t"}], "+", RowBox[{"1219", " ", RowBox[{"t", "^", "2"}]}], "+", RowBox[{"4908", " ", RowBox[{"t", "^", "3"}]}], "+", RowBox[{"11187", " ", RowBox[{"t", "^", "4"}]}], "+", RowBox[{"13770", " ", RowBox[{"t", "^", "5"}]}], "+", RowBox[{"7225", " ", RowBox[{"t", "^", "6"}]}]}], ")"}]}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"poly", "=", RowBox[{ RowBox[{"(", RowBox[{"d", "+", RowBox[{"eta", "**", RowBox[{"(", RowBox[{"x", "+", RowBox[{"I", "*", "y"}]}], ")"}]}]}], ")"}], "/", RowBox[{"Coefficient", "[", RowBox[{"d", ",", RowBox[{"t", "^", "6"}]}], "]"}]}]}]}], "]"}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ FractionBox["9", "7225"], "+", FractionBox[ RowBox[{"162", " ", "t"}], "7225"], "+", FractionBox[ RowBox[{"1219", " ", SuperscriptBox["t", "2"]}], "7225"], "+", FractionBox[ RowBox[{"4908", " ", SuperscriptBox["t", "3"]}], "7225"], "+", FractionBox[ RowBox[{"11187", " ", SuperscriptBox["t", "4"]}], "7225"], "+", FractionBox[ RowBox[{"162", " ", SuperscriptBox["t", "5"]}], "85"], "+", SuperscriptBox["t", "6"]}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["451", "1228250"]}], "-", FractionBox[ RowBox[{"651", " ", "\[ImaginaryI]"}], "1228250"]}], ")"}], "-", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4333", "614125"], "+", FractionBox[ RowBox[{"453", " ", "\[ImaginaryI]"}], "49130"]}], ")"}], " ", "t"}], "-", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["32244", "614125"], "+", FractionBox[ RowBox[{"39079", " ", "\[ImaginaryI]"}], "614125"]}], ")"}], " ", SuperscriptBox["t", "2"]}], "-", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["237449", "1228250"], "+", FractionBox[ RowBox[{"270569", " ", "\[ImaginaryI]"}], "1228250"]}], ")"}], " ", SuperscriptBox["t", "3"]}], "-", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["218066", "614125"], "+", FractionBox[ RowBox[{"472949", " ", "\[ImaginaryI]"}], "1228250"]}], ")"}], " ", SuperscriptBox["t", "4"]}], "-", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["32188", "122825"], "+", FractionBox[ RowBox[{"168009", " ", "\[ImaginaryI]"}], "614125"]}], ")"}], " ", SuperscriptBox["t", "5"]}]}], ")"}]}]}], Infix[{Rational[9, 7225] + Rational[162, 7225] $CellContext`t + Rational[1219, 7225] $CellContext`t^2 + Rational[4908, 7225] $CellContext`t^3 + Rational[11187, 7225] $CellContext`t^4 + Rational[162, 85] $CellContext`t^5 + $CellContext`t^6, CenterDot[$CellContext`\[Eta], Complex[ Rational[-451, 1228250], Rational[-651, 1228250]] + Complex[ Rational[-4333, 614125], Rational[-453, 49130]] $CellContext`t + Complex[ Rational[-32244, 614125], Rational[-39079, 614125]] $CellContext`t^2 + Complex[ Rational[-237449, 1228250], Rational[-270569, 1228250]] $CellContext`t^3 + Complex[ Rational[-218066, 614125], Rational[-472949, 1228250]] $CellContext`t^4 + Complex[ Rational[-32188, 122825], Rational[-168009, 614125]] $CellContext`t^5]}, "+"], Editable->False]], "Output", CellChangeTimes->{3.633868424612814*^9, 3.653220814189271*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"fact", "=", RowBox[{"FactorMP", "[", "poly", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ StyleBox[ RowBox[{"FactorMP", "::", "R"}], "MessageName"], RowBox[{ ":", " "}], "\<\"Multiply the input with R = \[NoBreak]\\!\\(9\\/7225 + \ \\(162\\\\ t\\)\\/7225 + \\(1219\\\\ t\\^2\\)\\/7225 + \\(4908\\\\ \ t\\^3\\)\\/7225 + \\(11187\\\\ t\\^4\\)\\/7225 + \\(162\\\\ t\\^5\\)\\/85 + t\ \\^6\\)\[NoBreak]\"\>"}]], "Message", "MSG", CellChangeTimes->{3.6338684276174183`*^9, 3.6532208192420597`*^9}], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "+", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["7309", "36125"]}], "-", FractionBox[ RowBox[{"17059", " ", "\[ImaginaryI]"}], "1156000"]}], ")"}], "+", RowBox[{"C", "[", "6", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-7309, 36125], Rational[-17059, 1156000]] + C[6]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "-", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "6", "]"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[-1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[6]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "-", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["13263", "289000"]}], "-", FractionBox[ RowBox[{"228789", " ", "\[ImaginaryI]"}], "1156000"]}], ")"}], "+", RowBox[{"C", "[", "5", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[-1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-13263, 289000], Rational[-228789, 1156000]] + C[5]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "+", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "5", "]"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[5]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "+", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["75057", "4913000"], "+", FractionBox[ RowBox[{"743611", " ", "\[ImaginaryI]"}], "29478000"]}], ")"}], "+", RowBox[{"C", "[", "4", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[75057, 4913000], Rational[743611, 29478000]] + C[4]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "-", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "4", "]"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[-6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[4]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "-", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["64739", "2456500"], "-", FractionBox[ RowBox[{"980959", " ", "\[ImaginaryI]"}], "29478000"]}], ")"}], "+", RowBox[{"C", "[", "3", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[-6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[64739, 2456500], Rational[-980959, 29478000]] + C[3]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "+", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "3", "]"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[3]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "+", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["124863", "1965200"]}], "+", FractionBox[ RowBox[{"46513", " ", "\[ImaginaryI]"}], "3930400"]}], ")"}], "+", RowBox[{"C", "[", "2", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-124863, 1965200], Rational[46513, 3930400]] + C[2]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "-", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "2", "]"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[-1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[2]]}, "-"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "-", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["15839", "1965200"], "-", FractionBox[ RowBox[{"254241", " ", "\[ImaginaryI]"}], "3930400"]}], ")"}], "+", RowBox[{"C", "[", "1", "]"}]}], ")"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[-1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[15839, 1965200], Rational[-254241, 3930400]] + C[1]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "+", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "-", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"C", "[", "1", "]"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], C[1]]}, "-"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.6338684276424026`*^9, 3.653220819276149*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Choose", " ", "values", " ", "for", " ", "the", " ", "free", " ", RowBox[{"parameters", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"fact", "=", RowBox[{"fact", "/.", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"C", "[", "i", "]"}], "\[Rule]", RowBox[{ RowBox[{"C", "[", "i", "]"}], "-", RowBox[{"fact", "[", RowBox[{"[", RowBox[{ RowBox[{"13", "-", RowBox[{"2", "*", "i"}]}], ",", "2"}], "]"}], "]"}]}]}], ",", RowBox[{"{", RowBox[{"i", ",", "6"}], "}"}]}], "]"}]}]}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "+", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[2, 5], Rational[1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "-", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["7309", "36125"]}], "-", FractionBox[ RowBox[{"17059", " ", "\[ImaginaryI]"}], "1156000"]}], ")"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[-1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-7309, 36125], Rational[-17059, 1156000]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "-", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[2, 5], Rational[-1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["2", "5"], "+", FractionBox["\[ImaginaryI]", "5"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["13263", "289000"]}], "-", FractionBox[ RowBox[{"228789", " ", "\[ImaginaryI]"}], "1156000"]}], ")"}]}]}], Infix[{Complex[ Rational[2, 5], Rational[1, 5]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-13263, 289000], Rational[-228789, 1156000]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "+", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[27, 85], Rational[6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "-", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["75057", "4913000"], "+", FractionBox[ RowBox[{"743611", " ", "\[ImaginaryI]"}], "29478000"]}], ")"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[-6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[75057, 4913000], Rational[743611, 29478000]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "-", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[27, 85], Rational[-6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["27", "85"], "+", FractionBox[ RowBox[{"6", " ", "\[ImaginaryI]"}], "85"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["64739", "2456500"], "-", FractionBox[ RowBox[{"980959", " ", "\[ImaginaryI]"}], "29478000"]}], ")"}]}]}], Infix[{Complex[ Rational[27, 85], Rational[6, 85]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[64739, 2456500], Rational[-980959, 29478000]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "+", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[4, 17], Rational[1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "-", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ RowBox[{"-", FractionBox["124863", "1965200"]}], "+", FractionBox[ RowBox[{"46513", " ", "\[ImaginaryI]"}], "3930400"]}], ")"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[-1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[-124863, 1965200], Rational[46513, 3930400]]]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "-", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", "0"}]}], Infix[{Complex[ Rational[4, 17], Rational[-1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], 0]}, "+"], Editable->False], ")"}], "\[CenterDot]", RowBox[{"(", InterpretationBox[ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{ FractionBox["4", "17"], "+", FractionBox["\[ImaginaryI]", "17"]}], ")"}], "+", "t"}], ")"}], "+", RowBox[{"\[Eta]", "\[CenterDot]", RowBox[{"(", RowBox[{ FractionBox["15839", "1965200"], "-", FractionBox[ RowBox[{"254241", " ", "\[ImaginaryI]"}], "3930400"]}], ")"}]}]}], Infix[{Complex[ Rational[4, 17], Rational[1, 17]] + $CellContext`t, CenterDot[$CellContext`\[Eta], Complex[ Rational[15839, 1965200], Rational[-254241, 3930400]]]}, "+"], Editable->False], ")"}]}]], "Output", CellChangeTimes->{3.6338684324027576`*^9, 3.653220820483856*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Construct", " ", "the", " ", "linkage", " ", "and", " ", "show", " ", "the", " ", "link", " ", RowBox[{"graph", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"linkJ", "=", RowBox[{"ConstructLinkage", "[", RowBox[{"fact", ",", RowBox[{"t", "+", "1", "+", "I", "+", "eta"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0.001"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "650"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.6532208247892027`*^9, 3.653220843804895*^9}, { 3.653221061815598*^9, 3.653221062310307*^9}}], Cell[BoxData[ GraphicsBox[ {Thickness[0.001], LineBox[{{-1, 1}, {-2, 1}}], LineBox[{{-2, 1}, {-3, 1}}], LineBox[{{-3, 1}, {-4, 1}}], LineBox[{{-4, 1}, {-5, 1}}], LineBox[{{-5, 1}, {-6, 1}}], LineBox[{{-6, 1}, {-7, 1}}], LineBox[{{-7, 1}, {-8, 1}}], LineBox[{{-8, 1}, {-9, 1}}], LineBox[{{-9, 1}, {-10, 1}}], LineBox[{{-10, 1}, {-11, 1}}], LineBox[{{-11, 1}, {-12, 1}}], LineBox[{{-12, 1}, {-13, 1}}], LineBox[{{-1, 1}, {-1, 0}}], LineBox[{{-1, 0}, {-2, 0}}], LineBox[{{-2, 0}, {-3, 0}}], LineBox[{{-3, 0}, {-4, 0}}], LineBox[{{-4, 0}, {-5, 0}}], LineBox[{{-5, 0}, {-6, 0}}], LineBox[{{-6, 0}, {-7, 0}}], LineBox[{{-7, 0}, {-8, 0}}], LineBox[{{-8, 0}, {-9, 0}}], LineBox[{{-9, 0}, {-10, 0}}], LineBox[{{-10, 0}, {-11, 0}}], LineBox[{{-11, 0}, {-12, 0}}], LineBox[{{-12, 0}, {-13, 0}}], LineBox[{{-2, 1}, {-2, 0}}], LineBox[{{-3, 1}, {-3, 0}}], LineBox[{{-4, 1}, {-4, 0}}], LineBox[{{-5, 1}, {-5, 0}}], LineBox[{{-6, 1}, {-6, 0}}], LineBox[{{-7, 1}, {-7, 0}}], LineBox[{{-8, 1}, {-8, 0}}], LineBox[{{-9, 1}, {-9, 0}}], LineBox[{{-10, 1}, {-10, 0}}], LineBox[{{-11, 1}, {-11, 0}}], LineBox[{{-12, 1}, {-12, 0}}], LineBox[{{-13, 1}, {-13, 0}}], {GrayLevel[1], DiskBox[{-1, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-1, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["1", StripOnInput->False, FontSize->Rational[25, 3]], {-1, 1}]}, {GrayLevel[1], DiskBox[{-2, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-2, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["2", StripOnInput->False, FontSize->Rational[25, 3]], {-2, 1}]}, {GrayLevel[1], DiskBox[{-3, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-3, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["3", StripOnInput->False, FontSize->Rational[25, 3]], {-3, 1}]}, {GrayLevel[1], DiskBox[{-4, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-4, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["4", StripOnInput->False, FontSize->Rational[25, 3]], {-4, 1}]}, {GrayLevel[1], DiskBox[{-5, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-5, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["5", StripOnInput->False, FontSize->Rational[25, 3]], {-5, 1}]}, {GrayLevel[1], DiskBox[{-6, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-6, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["6", StripOnInput->False, FontSize->Rational[25, 3]], {-6, 1}]}, {GrayLevel[1], DiskBox[{-7, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-7, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["7", StripOnInput->False, FontSize->Rational[25, 3]], {-7, 1}]}, {GrayLevel[1], DiskBox[{-8, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-8, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["8", StripOnInput->False, FontSize->Rational[25, 3]], {-8, 1}]}, {GrayLevel[1], DiskBox[{-9, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-9, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["9", StripOnInput->False, FontSize->Rational[25, 3]], {-9, 1}]}, {GrayLevel[1], DiskBox[{-10, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-10, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["10", StripOnInput->False, FontSize->Rational[25, 3]], {-10, 1}]}, {GrayLevel[1], DiskBox[{-11, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-11, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["11", StripOnInput->False, FontSize->Rational[25, 3]], {-11, 1}]}, {GrayLevel[1], DiskBox[{-12, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-12, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["12", StripOnInput->False, FontSize->Rational[25, 3]], {-12, 1}]}, {GrayLevel[1], DiskBox[{-13, 1}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-13, 1}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["13", StripOnInput->False, FontSize->Rational[25, 3]], {-13, 1}]}, {GrayLevel[1], DiskBox[{-1, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-1, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["14", StripOnInput->False, FontSize->Rational[25, 3]], {-1, 0}]}, {GrayLevel[1], DiskBox[{-2, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-2, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["15", StripOnInput->False, FontSize->Rational[25, 3]], {-2, 0}]}, {GrayLevel[1], DiskBox[{-3, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-3, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["16", StripOnInput->False, FontSize->Rational[25, 3]], {-3, 0}]}, {GrayLevel[1], DiskBox[{-4, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-4, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["17", StripOnInput->False, FontSize->Rational[25, 3]], {-4, 0}]}, {GrayLevel[1], DiskBox[{-5, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-5, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["18", StripOnInput->False, FontSize->Rational[25, 3]], {-5, 0}]}, {GrayLevel[1], DiskBox[{-6, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-6, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["19", StripOnInput->False, FontSize->Rational[25, 3]], {-6, 0}]}, {GrayLevel[1], DiskBox[{-7, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-7, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["20", StripOnInput->False, FontSize->Rational[25, 3]], {-7, 0}]}, {GrayLevel[1], DiskBox[{-8, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-8, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["21", StripOnInput->False, FontSize->Rational[25, 3]], {-8, 0}]}, {GrayLevel[1], DiskBox[{-9, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-9, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["22", StripOnInput->False, FontSize->Rational[25, 3]], {-9, 0}]}, {GrayLevel[1], DiskBox[{-10, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-10, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["23", StripOnInput->False, FontSize->Rational[25, 3]], {-10, 0}]}, {GrayLevel[1], DiskBox[{-11, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-11, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["24", StripOnInput->False, FontSize->Rational[25, 3]], {-11, 0}]}, {GrayLevel[1], DiskBox[{-12, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-12, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["25", StripOnInput->False, FontSize->Rational[25, 3]], {-12, 0}]}, {GrayLevel[1], DiskBox[{-13, 0}, NCache[Rational[1, 8], 0.125]]}, {GrayLevel[0], CircleBox[{-13, 0}, NCache[Rational[1, 8], 0.125]], InsetBox[ StyleBox["26", StripOnInput->False, FontSize->Rational[25, 3]], {-13, 0}]}}, ImageSize->650]], "Output", CellChangeTimes->{ 3.633868436902671*^9, {3.653220825696258*^9, 3.6532208445993357`*^9}, 3.653221063111669*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Some", " ", "options", " ", "for", " ", "drawing", " ", "this", " ", "linkage"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"optsJ", "=", RowBox[{"Sequence", "[", RowBox[{ RowBox[{"Trace", "\[Rule]", RowBox[{"{", RowBox[{"13", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "7"}], "/", "10"}], ",", RowBox[{"7", "/", "10"}]}], "}"}]}], "}"}]}], ",", RowBox[{"Direction", "\[Rule]", RowBox[{"{", RowBox[{"0.025", ",", "0.03"}], "}"}]}], ",", RowBox[{"Range", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"-", "0.55"}], ",", "1.7"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"Thickness", "\[Rule]", RowBox[{"{", RowBox[{"0.009", ",", "0.001"}], "}"}]}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"Flatten", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"Thread", "[", RowBox[{ RowBox[{"{", RowBox[{"i", ",", RowBox[{"i", "+", "13"}]}], "}"}], "\[Rule]", RowBox[{"GrayLevel", "[", RowBox[{ RowBox[{"1", "/", "2"}], "+", RowBox[{"i", "/", "26"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "13"}], "}"}]}], "]"}], "]"}]}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{ "2", ",", "1", ",", "14", ",", "15", ",", "3", ",", "16", ",", "4", ",", "5", ",", "17", ",", "18", ",", "6", ",", "19", ",", "7", ",", "20", ",", "8", ",", "21", ",", "22", ",", "9", ",", "23", ",", "10", ",", "11", ",", "24", ",", "25", ",", "12", ",", "26", ",", "13"}], "}"}]}]}], "]"}]}], ";"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"2", "D", " ", "animation"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", "optsJ"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "3", "D", " ", "animation", " ", "using", " ", "a", " ", "different", " ", "style", " ", "for", " ", "the", " ", "links"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", RowBox[{"Style", "\[Rule]", "\"\\""}], ",", "optsJ"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "3", "D", " ", "animation", " ", "with", " ", "a", " ", "different", " ", "ordering", " ", "of", " ", "the", " ", "links"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Axes", "\[Rule]", "True"}], ",", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", "}"}]}], ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{ "14", ",", "1", ",", "17", ",", "4", ",", "18", ",", "5", ",", "21", ",", "8", ",", "22", ",", "9", ",", "25", ",", "12", ",", "26", ",", "13", ",", "24", ",", "11", ",", "23", ",", "10", ",", "20", ",", "7", ",", "19", ",", "6", ",", "16", ",", "3", ",", "15", ",", "2"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", "optsJ"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Produce", " ", "the", " ", "picture", " ", "shown", " ", "in", " ", "the", " ", RowBox[{"paper", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{ "Use", " ", "\"\\"", " ", "for", " ", "the", " ", "steps", " ", "in", " ", RowBox[{"TraceMP", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Get", "[", "\"\\"", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"picJ", "=", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"-", "0.325"}]}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "4000"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1.1"}], ",", "2.4"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1"}], ",", "2.2"}], "}"}]}], "}"}]}], ",", "optsJ"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"picJ", "=", RowBox[{"picJ", "/.", RowBox[{"{", RowBox[{ RowBox[{"Red", "\[Rule]", "Black"}], ",", RowBox[{ RowBox[{"RGBColor", "[", RowBox[{"0.99", ",", "0", ",", "0"}], "]"}], "\[Rule]", "White"}]}], "}"}]}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Show", "[", RowBox[{"picJ", ",", RowBox[{"ImageSize", "\[Rule]", "500"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"Export", "[", RowBox[{"\"\<../images/JohnHancockLink.jpg\>\"", ",", RowBox[{"ImageResize", "[", RowBox[{"picJ", ",", "4000"}], "]"}], ",", RowBox[{"\"\\"", "\[Rule]", "0.01"}]}], "]"}], ";"}], "*)"}]}]}]], "Input", CellChangeTimes->{{3.632669193306346*^9, 3.63266919487138*^9}}], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "The", " ", "speed", " ", "of", " ", "the", " ", "pen", " ", "is", " ", "not", " ", "very", " ", RowBox[{"uniform", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"expr", "=", RowBox[{"Norm", "[", RowBox[{"D", "[", RowBox[{ RowBox[{"ActR2", "[", RowBox[{"poly", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "]"}], ",", "t"}], "]"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Plot", "[", RowBox[{ RowBox[{"expr", "*", RowBox[{"If", "[", RowBox[{ RowBox[{"t", ">", "0"}], ",", RowBox[{"Exp", "[", "t", "]"}], ",", "1"}], "]"}]}], ",", RowBox[{"{", RowBox[{"t", ",", RowBox[{"-", "0.55"}], ",", "1.7"}], "}"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "50"}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ GraphicsBox[{{}, {}, {RGBColor[0.368417, 0.506779, 0.709798], AbsoluteThickness[1.6], Opacity[ 1.], LineBox[CompressedData[" 1:eJwV13c8lV8YAHA7K0VGRYOsMrIj8rxGJW1FSFlRIUlIlFUkmVFGpGFlZWRk dOy9573mtbeMe236vb+/fL6f6z3nPed9nuc8h9/ssY4FDRUV1VVaKqr//6Z/ WfKIjBxCenKHVA/cY8GUFit1lkKHEMcTya1ebRasQi1S8GIgbrEtZiFpFqxn GGq2vIaQzYGuc+e3mDEGoYA9JjZDaNlXjvu3PzMW4mgylG85hHgGuIU/PWbG +Kpks9lNh9C/M++ld64zYzL3e/TKdfHx/OPbNbmYsbs/RD4LwxDy5abSqfjA hE2tbzx2VxpCDQpjMp8dmDAH7SY1guwQIg0Q0sg6TJjfjMPYW9EhhNEnRXCx MWG5EmXic+xDyPDVPUdeN0Zsd5ZRYfYoCW3x+/2c0dyFRdBIBbAOkhA8T9Yz 592FCdygNbYgklDsjl23ziIDpkj+QcPTREK7mSX5Iz8xYPcUVi+45JFQHHn9 Z9kUPVZUEELA/EhI+uNlvzgbOsymvIrSeJKEmCIN9j3fQ42Z6W6yph0nIb32 GN2QFirs1sRJQf9jJOTU/XaBL4QKU2eJ1NHmISFJ/tCGsL1UmFRC192A7UFU ZvzT6ynHDrypPNLm9mkQVZ3T2rhXtQ72U75UZ4IG0YFbiyvDiutgtHtJctNr EPEndqQFJa+BjG7Fu2dWg6ikPtUr4N0qDIw+OGunNIh8zEm8zZoUUKDLyjft HkCDWa+YfkUtAL8o78SR+gHkPyPPcod2AVgvveYa+DOAlMexYYPueRgO1bM3 TBhAaQd9uxqdZiHw2KbYDccBNJmZRkzPmIDn5+8Zsj8cQMzOgrWhbuNwz7rR t9loABWltps+vDQGp7Njxy5qDiD+ReMc9clhGFPXjNXcN4By4yJOl53rgxbL tEaaXQOoMaHo5vo4EQr8uLdKNvrR67knqwW+3RDcNql/ZrgffQ9ATKxtbeC6 cv3NZmc/mlGhMtR3aQHLg4U5v2v70TnBQEOPiw2gYhbAoZDZj06HPbG02VcO Ij4rGDmuH5VNKJjsPlgMHMnGj7Mi+lH3z7GNyou/YLuxJsbOvx/dq3Jt59RP gslF6QZJj35Eet+hfPRgDLRzfdqYfdqPti8EF1xXSIA/SnTHU+7j4wcs3l0c zIIfdx7deni7HwVwsteOGxZCmGeXt8jVfpRpXkqo+VcKUr2343I0+pHXjcE7 f1mqoEFuqExDsR9d1zZofcdVB7STM/+M+fvR78uy9a0srWB/hdolYrkPfYkI 5X3TRwC2JJ8I4ck+RIhN9vSo6IFkata8X319aOtL264DiX0w9Iub3FLZh053 XCbGSZDgGq+4LVNEH8p/W5VNWzwCsw6Z/uH+fejwwpvprxGj4NukkCLk2YeO 8200VduNAfJUm1Sz6kPP46lv3eCeAMlJPTMXlT70toJ3WkJuGurU+jwYpfvQ 5mTuvbrFabD8ZBr7UagPcZlMKt9MmYGYKzZ9WWx9KHqPrCuFfQ5Yczz1Zki9 iFAX9FUg9S8kse1yfN7ZiyS2+zNnji2A5gP/0F11vSihPNP44+MFcOUNbzmW 3YvGzk6v36ZaBG5Hvr+Zib0oV/1n/fOzi5DV9HU3Ft2L5n7WzjzyXYRpz1Rt I+9etJ445/h31xL49Eo/nH7eiypXHjr6ay6BgHzeG2dbfP6YILkj7ktgMFla EXarF21/avK5Pb8ENVe6VRuP96Jnr0plpPKW4V6S0Z3bh3vRch3rA9uxZaCi GXad4uhFkeqDTTocZDiVM5tPv9WDKJpKod8ekCGBl0ZWtakHsS5yKl9kpYC6 45vrDWU9aFor5GKwHAX6m1jtDPN6kKLjbnr2OxTg9OJJc/rSg270bfhN/KRA Rm90Pd2HHvTN0xX19FDgkrzA9Pu3PWgxV99Cc9cKvJoUF/lp34MC92vCjMUK +IRk/HG634OCT0w3jIavgN9pOT1Vox5UPSrhUtiwAgEjeXP013tQKz0hvYNu FYL9lb0bz/ag3zfDmyKwVQiTR3wfTvcgOxPOfHuPVQgfUP9ldBKfrzlWprli FT5LaY/M7O9BLaYNSTVGa/CV2OiSvbsHCTTy16lnrkGc13UOV5oe1JAbeGmN ZR2SxDp/qK8SERs6Jqj7aB1SOvTVmGeJaP6wSE9Z5zqkv+wjtJKISGnhUGvi 2Q3IEjaxi+wkonM+QaGWxRuQ73w/VhQRUYbr46zRyk0o5J9RWMgmolkjx4hr t7bgT51tU14SEQUdlvacX9yCSj6n7XPviehO5J3cbo0dqKlcD2N7Q0R/30Wm ft7cgQbbl+JdrkQE+12HAov/QVvJ69sWFkTU8CN76nIGFdb5kHFZ3JCIaswt Gqj4qTECh78f+QoR/fH++J49nBobvBf6+5UiEdkWtiCnUBpslvEbzzcWfPxz XJtzjXTY30yhnw+piCg9IfqTuhU9tmT445w0hYCi/fwm2FgZsPXUDMeSAQI6 pXzZZM14F8ZwHbUPZBLQU/1afxEtZoxpQ906IYGAmv5yqt7Zw4Kxfq+isf1E QCOBJXVFvSzYPkqj9PZrAqJ3fn2/6NVu7GhkXxCvPgEdTCxVsnqzFzumbiIy comAsmLq3hfu7MWEZ0b+JKsR0FpblLCeMzsmcWZmTkmMgJbucJXK23Ngp4fW L+rvdKPMJMrgEXdO7OZxHsYPcd3o4YiSgsjf/Zi47p0TDyO60Ua/pbNZ8AGM zvP7pTP+3YgjzzNsXeYglkM4GTL2tBu9OtjHlOvKi3H7ah1U0OhGNOL/0u14 DmPE8efi3UNd6LDUO+O4H/xYFkfJlZTOLqQ/tGe5epMf81NleOJe24WOFXfz Kl0WwE5/fJ8jktmFMlSoikLnBLDosymqzh5dyNjA9M/6UUHM4cmiySUH/Hfe b7J3rQSxSzGnXh190IVORzw7fSxLENsml1fXXO1C48ew1zoqQtjduL5rB450 ofi+G179p4QxhRaBp3McXWjKMG9l0E4YY9t68KGUoQvZdcQduZQojI2L/Mz7 sNGJHi56v6PrFcbQDQrx4XwnKqL/83iWRQSLcFfeOjPciUrPEComlEQwuxTP wxxdnWgf9znz3nsimFZ3NTZe24mCv/gcTfMXwY7SspkXFHciE+3YWY1MEWxN 8qZ3YGYn0mX49fdNmwjWYhiVaBbfiQiJ7xPNFkSwJB9SrUJkJ/Ku5KJHzKKY Z5bwLHNAJ6JXknz7ll8UMxywYRv06EQNqpdNM+REMRnmbKlsh07kmCn06pim KMassK7z5kEnenTncXXHVVFs2BQcbxt1Ig3ZWNr8W6JYQYB3+MlrnYg4qihQ flsUe/+7/jetZif69SRdaR631Rh7X/cp3G7BX2X1RTENdv2dFLFO5C7UQB98 TRTjO/P5qMcR/Pl2yjOas6IY+cGo+s19nUjhuLabv7wo1hB2wkJ0Vyc6oHzr qIyAKBZXYvdma6MD6YkdWVzH1/NiNvdHy3wHeljzmXvurwimu3+7Pm64A9Vl vL7C0yqCSWpqzDt3dSCq6gMLPukiGIPd272X6zqQPavizCVfEWzgU7MM/58O 9FRZteLFXREst5pLl5LZga6t0geIS4tg9498i4yJ7EBn+OLy7RqEsQUPulS1 wA50gwj36COFMZdhyz9jXh3oQgcLec5MGPOPFxuRsOlAfJ6BSif+CmEZYjni f1Q70IamdUTWrCCmFMADZrIdKG7CaUElURArm39+nUG0AyXu1q85YiKIdWSq Ol1h70AafO5FbxqPYWunatDASDv6MPmWTv6TAOYZeaLNi9COzmlNkZovCWDM m/6jwo3t6BmhP4pmhx/j+3Od6XFuOyp49qCu1ZgfU9Ps1fnn246O0B1VtRQ6 ivldmx87ItmOfkvru/Wl8WL7sq6tlQu0o7KBfttUIV4sel828wOedgTKEbSv vhzE0ruencygakdBLdHjb2MPYO1G1M+x9jaUrUHjLVPOgxn9MX83Wt2GCrJ1 lGNu8GDjR6pifIva0DNdVZ3acW5sbdivrCW+DZV8qlSO5+TG+B5yspo6t6HM 8+Nyrm84sfg6p8P0j9rQzhXFFEyEE5MUJ0r9MG1Df0biCEHV+zDsb4zuonYb GjKgxF1h3IfdcxSJ9TzUhu6SC4sr3NmxNM/TMt/KWpFRlLxWBisrxmpp3KyT i5vJ5wkDPQtmpf3ahja5FUn5dA30bTJhNZI/mH7FtCKekpIzLmRGTHhfU8K9 kFb06zO2Zru8C3u9uqTB5d2KnpqszY3sMGDDvTxDlc6tqDn3h/HUYQYMK1Fx c7JpRal1535m3KHHPseZ8oqYtCKPJKUPftV02JavT373jVa0oZav62BFhxk+ StH1Pd+K9HZtbtPq0mH511uWFJVbUWTvi8TcMDqMW4ESNCXZiiz0xj3o5Ogx h4MHJaIEWtH5GsvvfxUZsLYd1Tpt7lZkbUE/nBS3C5MaMb+/ydSK5Iyi0/Tx +0dQtS9d6nYLehEPyf7fWLD5lLSvRostyOwmY3ySKBt2KbhNdfdYC0qWKWje dN+LJTus9hYTWpC0v4OQIDsHxmjA99y2oQU9CjxUyl25D7M8o8Z9pKQFBW8c G/OK5MIq+C2zm7NbEF/XNstTfx7MY/rnnNSnFlRHX2pmV82LDTR1+A0FtiA2 ivBiDethTCV7XeS9VwsamVSiC5Y/iq25apgtP2xBc50xTzXzBLAnu7u7chRb UPV188flSqJYy+LmU0vxFuQGdduVmccxya6j7DxHW9DnhpXmf9Ji2PRnq4vO u1pQ2k0+yygtSazCZMvdMbUZLT/TtI6+I4N5HD9X0BXajIydss23pWQxlaUg 8inXZnRtpj/6A70clvPq2MONC81IMcFAITdDHktI0NZxn2hC9Wnhk6o0SpjZ 4zB/UlMTMuT45bfRpoQdVhyoUsttQns5aYdvfD2Nhdc+UabzbkL+A0s/mOVV sJvvCx0tbJoQgcxxx3NdBdt7mz6j6kYTehK/9Kj29xnMdzZC8K1AE/JpM9nh EwdMM2f47jRTE5rbZnlp0A8YlZt45MXFRmRd2yFpoYlhzntKdrOVNKJy5QLv x+MYJkdg0nqc2Ijq+6JIj2TUsIUvN7xaAhsRh61UzqCLGvZQZmLl/Z1GtPV2 5HYklTpGjpQ4dv9sI3raMR0WqqKOeVA7XFWWaERld+n8sx3UMZaHBa57uBpR ZOPM7fEkdexjC1XSyFYDyjpk7MNHVMcEFM935I02oFditZQL9BpYWmwAlX9D A8q2u7puIaGBKe7qEDf51YA6deyUra9rYBW2Bw3kohvQRvCT7FtPNLCrXSbe jK8bUIboRIh4gAbWcyYxs8+6ARleSRKdj9PALOPn+jNuNCDySFDT93wNbJFV jtlbuQGdorJFt2o0sBcOLgoGxxoQJvthjbtDA2PsKzGTYGlAlK2nHIu9Glio xq4g6uV65LY/mWdtUAM7nHK5sLOnHgVUsRliJA0smSNs4kdZPTIJ4TlH6tPA 5F169rkl1yPpm3vlFzo1sJKho5jO+3pURh2i6levgV26cN9G2KUePWGOYKor 1sC6M9IiNkzr0dk3qTENqRqY2X5yRdOFesTWYiaXEaGBzbufXvwmXY/YVyJZ wjw1sOcTHoeeHahHGrrFihH3NTC6q9UXLlLXI9LG9Zf92hpYcO5upyNTdag2 kfmQt5gGluAd1VSdX4eGuWz2e42pYzJzpI1PX+pQVtRTYV6kjhXfFBGx861D ynAoPeajOtZx7Jf7fv06tHJ738UxUMeM322kzEIdOiSvEDjLro5NL2GEEpE6 9Ce82t50WA2jLmuUerhai9g0xD053NUwSZOJod8fa9HfuavhfckY9jb6oObt zhpk0cjBMVl1BlPl8mT8rFONrqpfys1ECpjY5D9ODpVq5GvVpCR6VwHbX+jG 7yNUjexebhYWbMtjSyYvTtuuVSFdLgX1q5g8Fp/6zEb1cxWqdtud0dAui713 X3HOelOFzCc/RyNXWcxNx9Fb+EkVelmTzLksKIvpr9l/ZtOsQgl9BG0BVxmM VdO2ZWCqEsnc0urIUZDG1rnn+nTaKxHjw3W2ykkpbHzKeqqqqBLZ3DDI5o6W wkqCHtL8DKpEWlEnlFwZpDCH3nty7vKVSMTIeuhohwTWa3874ohnBXLu3Ghb aT+O1ZztiQu1qkA0ji4S++4ex37tN8jcdbMCeVpcE7k1LYoF/tGr+ytcgQxN 92QqMIli6sw6W6ihHL3aXt/raCyMnexvYZTLLUffDJilFtaFML6Mq1xJseWo 7KX+nM5HIWxF97JksH05ivK1nEjvEMSSv2qZmOwvR1feCo0PWh7Dwh2qbTqo yxGjs96/3D1403j+3HOtmTLUQZinyBcIYHfnNN5L/SlDW2ahqaycAhi7ElRQ 3StDT3i4WbR7jmLOLfKiX3+Wot0Zs88f6R7C9vxQ0pYML0X654++eFPHhyV4 nrEpdCtFH+PqNl3V+bAOmbMZnZdLUc1rnpKc07yY1IebisyzJWj3R/m6Su0D WPUjfcPw9hL0pMyAi6VzP3b3nNELwcISJHlQmTbHdD/mv2peoupXgmjLPp6n 9uLBJg2eaj0VLUEmr9XucvZzYe4yz6yo9pagVfeOFK7nXJg498p+3r8IfYm5 m8zDw4X5OtN/vRqAUFb/yO8FfU4Mzghm5tf+QcfVlfprlziw9CrTVj/1YlTU SDVu57QX63v2kCuevRh5fCwnZEvsxZiPPzFApCKUddZTpKhhD2b5zmNo2a0I uY2t+73PY8MOXYtdNCosRPK5J77pprJi2tSJ8s/8CtHFfSNtaSdZMees9Och BoWINdJX2jSHBevg/ENdtVqAVlW+0yVUM2P+xD72k3IFqCP0i981BiaswG9U 9wJtAWId4XcW/cSITSrPRpq3/UbehUeVtqQZMc3Pm/wRdr/RzUb+PBuLXdiW 2UEZ6rR8tOvkFyq9YXrMevaWTrtQHpJRde8WF6fFjBxa9CTWctGhI0alPkM0 2JUtrdtv6nKRPZXdncMRNJgU6+l7yo9z0c3Es7R/GWkwshif0/f8HDTN+cr/ 2RoVNpYd5rLtl4MsL01FHcmjwrqUd7vfupODSk8anCU6UWH5F3fesNDkILbq T4q9S//gpTUp8unFX2jjPdorxrUDtsv6nxsP/UKZcrfL337bBhPX1m8iC9no 9hZPban0Nqi/K0vpDctG/Z6LQdG6W8CQElesMZCF4jQZzx/O2oCg6QdD+55k ovCJnsXxvFXwsB8ae6SRiU5ldmRdMV4F+w2D6WquTHT1wUTRIcZVuMl8cdm1 IAOtLTqr9NxZgf0nJOhHaTMQSC83njxAAY57F/e9SP2JBl3DmmXryUB+qsIn df0nIvfEmjx1I8Pv0MOSEVHpyGmw2D1kchnU24evP5BIQ06j9hmVdUsgONJu yNeWivZN0Frw+ywBw3KFeYtTKoLS2plQ9SWo50h0VCxJQeMBdqOpfxbhpo51 JOONZKTosx4F5Qtg0bpMSnJORA969YysKXPw2qg7U/RIIiq396X3CZiDbxMF XkmVCWigjTHgosgckLY9BZM4EhAPUVW61HgWDE/sfZCYGoconz/Qlo9Mg3PO sqLIjTiEKtFGrO80hGPdTInr35FHtk78juQ0dOh9Tkk49x39qxN1lvSYgiuv xP/Gk74is8z3jL2yk2DDtrdE6M1XxCVr33N+dALeRS4Hx0t8Rc5aDF77Pk5A zc8CmXiXL4gZq3iRtz0Or/NDZrWOf0YSy/Ckum8MHlnVbZwNiUAsS1A01TUC yR4h0WcHwtGXAotDAZ9GYPKjvupZsXCU4J/he8t0BMzKxz01Kz8gJxmju7oL w6DHR8uksf4eOZaqiX3jHYZQmbpk9XPvkVnTQM6JqSFo0Qq5pB4agqqCUibK 8oZA2/FIsJpEMDoTyMnOoz8EbtHPJD3K/ND6N2UB6ngSrNXQ27sbvUXdv7bN fruQwJ4SmuO28gYVeSdfsr5OgvtXMlRenvBGGTUi5zOpSRBL1faBLOiONk9k nSL3DECYwTzfsv4L9DmyL//+hwHwzWKOW/R/jh58fHby+/UBeHJPI2ue/BQd t7XhM2ruB+/ghzGtb03RSslMgvJgHwwZVB8QXdBDvq7u4onf+uCJ0LNFg8iz 6MWMbdbK/T6QWc17/56sDUKRy8pMO71QVnbfqiLGAID5vd++pl6gVPyujCWZ gZyZ2au22F447F85fpDuMdw8VZZ1U6sXevLilWf97GHQgWaU+UgvxP2YpK0P dQSBoLSc26s9oBhgG+Yb7wr+pf7hWak9QOOeaXQ/3Q2G8g6eSnnbA5aKLhzf ez3goI95+LEHPSB1orjHc/QVfLP2UHM+3gNc3wdUFx94Q/+TyZpzrD2wwUv1 3WTOB9qKrQOfLxChYreGNay8BW1nXYaFIiL88LnXnO7yDvgtm6uF4okQ+M9b 9vA/f3jRe2LyeyARUp1HX+7QBoNKlc2NOxZEOCxPOalQFQzXp4KS/HSIELJI P/zINwT8PhGejmJEoEvnDovXfg+6s6vl5lJEcLISOdfPGgopvCtp1PxEmBJW XONsDoVTAaFX8jiIYDSilXwpJAwUS+LqX9IToSnWwOj1jQ9g0XRf98o6AdSM rNiKuD6C4L42EYF5Avza71qy3P0RXLI73i2NEEC48529WFQ4jPR/JOT3ECAy JFrQ3CgCvDLjHGzbCMB6Ja0r6nAklPazd7PWE8CN+Y9vGykSNo4H+QZUEGCx quk08/coCJOwF5z+Q4B7rwZn1Sw+QenXdAO+AgJ0wcLn5yLR4NZWMnMolwBa W1TXM6eiYbXZN3syiwCF+ey0Uykx4MjH/cUpgwCSjgI5R20/Q0uSeV5pOgG+ SMve15eKhdh9dDwVaQTgmNc4ELwUC37H/5Cf4VbXTR4zN/wCISUHYrtxv8jO +uNe+AUeCPS/7Mefz2EvDP/E9xWeKLlyvMbHn39cbpf38itYEOzXKvH5RZvq L7QPfIUsx9ixmBwCmIp3CPyFb1BT4ZrM8JsAUX59m8xfv0H4dz2ZzSICtE+O dgjTfIfOLpdXTqX4/pyfS1M3/w4J/NroaRUBzsVTfO5WfAdBuCQwj++XO+2O sYtQHARck6EbaiVAvimD0kefOLC91dx9nkCAJcTGkTURByd0GMQOD+L79+JI xdSPeCiatmVjxL9XTI9IDD1LApSrB2P7VvD9VJRy4rdJgA2lGvmXOwS4QMFE DSQTwfr5TtOdvUTYir/vQfFNhLAUqQrRA0RI1wskhIwkwpFrPy8oCRCBM7/X ty4iCQYu8EUekScCycVpSpk2GYYYZm7n3CGCM1Vq8mFCKsweG/g6mEcEscw2 mkKZNFDid0pvLSfCgOm64a2ANLiVPus00kwEzfJzLMHq6ZD03mfu7iQR9vgM WVOn/YSoi/Pa3gd7oN37HfcSlgm1vbc5Fb16QHzgszpmmwlkG0Fri6Ae8FHI sg38lAkxvEfnoqLx/J0gVJ1YyYQQ/8O7D+b1wGct4WfmKVkQcT1m+eJsD1ix lHZ3cP2CXLFHD7P1eoE6ZCUibzoXUpGLe7JwHzAM/Its580D+YLD6kZyfcAq xvTp76U8aLOU0d5R6wPuSt4YkZ95IOPZ6sF+pw/E17Gv4U/zwV/15dLD932g Z/rux7Ot39CeEvcmer0PjNLDkkMlCkB21JDqBEM/mG7GpPy8WwBbWqu7vnP0 g82HjLSJkgI4ZKmy75ZYP3jWdmbe8i4EAcavQ2W3+yFV+mjBKbZiuGH+ry4o vx+y3I4X3oBiONmq0lJV3g959TJFj+2KgS+V/89EUz+UWZz9k9hWDFL2ytIT o/3QHWlVxhP+B250BRF79wwAtafh2OaeEuA/mT/+yXQAxKfi5nojSkHIwPtR OnkASAviWysZpSCVSN1KvT0AoWu/mDlqS4H97CAZox+EjV2VIlrrpXCG40Oj F9cg1AqPmf4yKIN8DcFdPPKDYHlPqMv/YDls9U02hdkNwkGbtNFEmXL4F0Sj lf5sEBqfyi+XaZfDo6masV9ugyD36uzedZdyKCxtWXjrPwg03yy0LXrLwZAz elU3cRBiB+P/nImuABJbW8U74iDoTEg06v+qADpeBaVXg4PA8Den92lDBbiG pls8HBsE253KtR9bFVC5LXeFZnEQVA6Ny3DfqQTu43yRv2hJQDAUTpw/VAXe VrtWg/eTwN8sPYdJoQo6EyS8GHlJAFYKFYJXqkC5iFfR+RAJEp6fGzJ0q4K5 /UG3MAESOEZY8lYPVME5Z546BzEScHQlBMXGVoPA1ciA5yokuGe/UnwwtxrC vxRb31IlQS7budkPDdXA4SspehIjgeH5MS3/9Wr4zJ1l3qBBgm/5x2ie36gB qyX79T/aJJD59MVBZ1ctPHRpFwi4RYLXpxa+NR6qhaahXy67DUjQ1Q6tWnK1 cDo85KKvIQlcWAclwLQWWB38Xj66Q4Kyl4cmxAprQWf1rNCqGQl0TKIM6B/X Qel2tdOeRySI25p64+FdB1iOWKKyLQlWIpRyNz/VwSsuAsnsMQmiWgkcSzV1 cCEu6v23JyQYVudpGBCoBwZv1cEJRxLIDVpuGCjVw8KPtAtzTiTwcc0V7bxa D2wJxtTzz0hw4peud/2LeniunvV86DnePwiFqeZ31cMTk29PQ16SoKJ0xEZ2 rh4SyLsk7d1IwH1X9lM6bQPMHOtyuuJOgoKPbatxUg2wV+9B+7oHCWgY2TND /BrgrCl7GN9rEtyMMxlk/doA0TfzY3pwJ2AZu33zGkAhlNchzJsE2s+vWrmN NoDYEZv4TR8SvJ8OOGat2giDLHyzEW9JcNpTX6VRrxHorYUua/jh6+M5pnvy cSNg35jppnDLnM33WY5tBM666xHC/iTo6fWK1c1vhIYMGt8/uL3sL+fntTRC s4PE0vUAErTFDk+5UjdB9c6UgXUg/j0U0mgGDjTBtOGNh4u4BRqf8WIyTRDS N8b9NAjfjw3Wy3TmTXDydujjh8EkYNc9leFf0QR1304zHXtPgvwZ6tr5vibY M+m25YPbxKth6BqlCe7P+reN4874abqPS7gZ3CvOakWFkkD/nLj4M9VmyNz9 aG0ON1X/iiZRrxmm+G+lngkjwTVmf6eYN81wOKgNWnGvfdEL+hfbDP/S7E5y fSDBl1P8Sab5zfD23Iy6Lm6tppmS8pZmMLwj7BWCe+FeLlFoqhke3Voj1+Ju eImtl1O1wBGWE993cB+tjaensLbAdqtT2MmPJHDgZOEQPtACxlH+LUa4a4zt Dt8SaoFr6yzGPrj5UjpP+Eq3wF0V3/OpuO1WTp/6faYFDF3fhDThrlD7ojF9 oQWWkr0053DvD6C/xqvXAuFpY/cZw0lgQ7AyumTWAsz399AexV1yrOXBS9sW uNB4/ZAcbs7H8o7pLi0gvLlYrIn7QUGU56BPC+Soi85ex11ETxW4NxR/Hzj6 8zbuvdctotRiW2B4Ym23Ge570XUJ9iktQPe1Yo8F7vyJk9nf81og6erbwnu4 WWU/oI7yFpCxxvab4jZx26inb8F/39Mtboj7V60xQaGvBaT2SlJdw83IVTl6 f7IFDJgORqrjNjI5sRhBboF3T813pHFnpARt11K1wp6cKoXDuOlWyUybrK3g JkfW2oVbX92QW/xAKyxZBSv/vx+pAUjgjlArZK7IcrXgpiIKngyUboXWVOu+ n7hvCvopozOtMJ6SH+6PO+nx3/MLF1qh9FHwZUvcWwU3b/LrtYJCjxHdGdzX GApMdMxaIUH/Rdle3GvRr5//cmmFOU7Ko5/49700OeU95tMKhhpt913+jxfZ q++5Q1thzJfZS/3/eKk7kOKc0goBBw5I1eHxNTNoVk3MbQU9STWpQNyBlJSR 02WtIPLVpOIq7s6jqnzbhFa4HrFYWI/Hq9kzswBPhjbIbvexTcTjmz4g5ccw exuEbzaF6eNO+kau1DjUBh869znuwj3f6LNDL9cGdsQdx7shJHAVTHnsZ9oG 7q8+rC3i+XX4NPndjE0beNEo2IbgLrt6JumScxvcpR0qlcTN6NpMYsNz4aJS I6c5np9hrcvXQ4vaYN/656EsPL/T3VTkonna4eAdk4olXxJcD/O+ti3QDotG rjz2uMk/mmzuSraDVbj8u79vSKDcaRJ/9Gw7xFgpjo7i9aZGzJs73r4dDJo6 a37j9WmI0LiW1tgOsclDP/bg9YxT1rgYveqArydOzr7G6+lw5dgVzuAOqNHQ VSxxwONB34b0ILoDUpOlu9ef4vvv9pyWI6cDmGuPHHpgTwLv2tAL98Y7QMb9 p6I0Xq9XjGs6GS90wqOcsN3PH5CA6C89f52tC7rbhfLW8PPi8zjtkdGIbvg2 PHHxsRIeXyf8T/2L64bTNK05xooksH7Eee1gZjeE16VqXT1FAkWyoOe12m7I bypYEpMnQTv1uZGi9W4Yoc6M7JXC9++Qb+IHQwI8/EAtzS2K17MbrFLn+YjA 3H768y5uEpwt4VRLju0Bxns2hCDSIPyW2G/kYN8PGnQVPFWXBmHF/szIbjUS SFTa3Kn5MQCU/ZNhI+lDsNNj6u3LOQC0bTXCflwj4EnUlDru2w92UgYmsVGj kJMkNJmw1gcVBLOPufTjsDfgyNV9L/rgmTCfg0rQBARwfpDo/tcLSm9YZELZ p8D52GVVcnAvDEk7zM48nwaGiKcrurK9MOnpfyWbahaiIYRejdADXbyH0148 mgOrlOMH8vzxfrNmbIa7fR5cC7t8FC72QHiA5FSQ2AJc7O7purq7B373Jhh+ IC2AVoW9WX0vEVT4ii4njCzAeDP5Bz3uEqNWLG98AZJPKHhgPUSo6t8UJs4u gFGNLyGPQISOwWvLfOsL0FpmI5/WSYT5kY13ceyLILih7JuF98MCs1eKs9UX wbrpY7twBRH8tlaOtMUtwtNSikBGOhG+nqTn+Zm4CB1+Acz7ceeb7WPzT16E 62O1DzzSiDBec3LrbMYiRG73+uqkEkH9wwPC78JFkPi9X3frBxE2JXqCv7Yt wgzLZxZL/L5pY1xM/YRqCTyCNY1DoolwtezVyB6jJXhbmiys4U8Ef1OdFwN3 lwA7bfqy7h0R6qj4udJMl+B98Gk1Hdya8Oec9v0lUPnJstfcjwiKRWs/Xtsv QXUrf81bX3w9uY/s1n2XgEmX6v3MayJQftzaHs5ZgtVn+axUbkSQuSD8MTN/ CWwPnBsNe0kEu0mypEfhEnzN/yl8Ave08HuTQ6VLMODZPKP7Ar8/fG8ov9Ww BNRPrjhmuRChJkbNr2F4CSp0Kh3dnxHhU4gYT+6eZSiU+5D54Ak+f/CFgFKO ZbDf79pGgzs58D5tI9cynAj3to2xI0LBu+9/R3iXQa0qg6fjMRF6vHlr2EWX 4aralth5WyIcdGF5/ghbhg8B5hc0rYkQaTbTI/hkGVzPj5dE4vfxo6ZM16Uc lkGsxJ1PA3eSsUi18jN8/NdBC7P38O9jZJ6t83IZCkT+UKvjJuj1vvN4uwxh h/ZULZoRYf/FepW+r8uwl/VGxX0TIoTLpnwObVuG6oTgXWm3iZAlWLbfunMZ 3OmP7rHC3cRFfK9OWIacSPOXIrgZ1hjeLPYvg6x5VcB3QyI4FJk9vjq1DDYV ci++GBBB5+xBjIWKDPO8UZ5pt4hgqyBdMExDhrnpnlk73H4iWnIF9GS4GNpU LIe7lMlJ9CELGSRHAoOL9Ygg1dS6t5qbDKFzeavtukRgu/V2yEuCDObMw3/2 3STCCa0vtw2lyLD1d+pl/w0inFPK65SWJYM474+vibhf8o7VkhTJsCK8h+cM 7tlBLEtVkwx7w2vybHTweHqw5rVhSIbs2mflA9eI4ONyX9DelwztoWKRu6/g /1/X6Orzjgwxahy3SJeJcINXrj0qkAyNEzRvs3EfLaLyKg8jA6UgV+s27oLt yEHOr2SQ9jSUz7iE55dHQ1TebzJEXFHJfnyRCDdbZZbqi8hgeGw76QLuQv7I CyREhq9/Y9gFcfuWWawxVpHBeUdeuUcbjx+6f7qGbWTo/oDmLuLWfSPNvj1N htLdV0s0LxChqDv8Afs8GbgVX/cK4RYQ3UFCi/h6Djx7sAv3fE2d7ZVVMti7 X+mu18LHZ77XEEtLAf7FFgZD3POGdcd+MVCA+JsqXRW3boqUaw0TBZI3jauO 4Ra4tH18cQ8Flo0stf+ex+cL+PhGnY+Cx11CzDvcAgNbA3pHKID5WjQ8xf1W 0lzBWoACWu3V1ka49ZpPjoWKUiDptNSWJO6FvbXqY3IUuF+SbEo8h/9uejJq /RQFqtRj9lXiLs78sLhbmQI/nyfJZ+L20zH7oqBGgWd3Kmr9cAuGbW6/uUwB DRZZKQ3cGdcEVgOuUeCxsEu6DO4zuy8shN6gAElAO0Lg//F9Pg7HGlBAPFkz nRb3iHpxb7wRBZaUr/aQz+L5/m+kI8WYAlZF356M437rLF2dZ0GBfyOjQ3W4 ueX1S4ofUOBObXZBMe5vi26/y60pYHLQfycDd5FVQ0rzEwq8rjlQHYF73uh+ 8MRLCtAZLBg8wu1yIPDtnAcFZmyvvzXHvavrl9fyKwpEKKgeM8R99CqN47+3 FKj1fPFRC3cqy3Fb+gAKVEylP8ZwK9Vcvc8STIHLDZLZirh11GIMeD5SwIuL 6HwC98B2uc6hSAr4h49uHMNtXTB98Vg0BSbr/o0fwr3mxH72eCwF1K7wntmP +7WsourJb/jz1SLbHLjZF+6eko+nAHmYS4QN9+dUbynlJArQ3+wqYMJ94mHq cbUUCkx1GOTT484Tahc4n06BEOGQIzS4NYfXeS9nUuDP3kcLO5pEaPl8lOvG L3w+s4ETW7jv3D7PZpBHAeOFzqZ13NM8truMCyhgG67Zt4rbqSOMyqKYAnan eW/gNwegDSlctyqhAGu5tiwFd/Dl4SW7cgqcEah4QcbNx8w061RFgSNXnU/+ 76Sqk2MvaimwdV7/4v+Wf6U34NVAgTp23Zb/XQYvu32b8fjMN/7z/3hXtr63 BLZRoPPyQ67/5+/Jr6sN66RAzoxZ5xru+46LZVEECnRlntnZwE2W3l/0pZcC 7NXTQdu4PeZVcxIGKFCqf9uPCl8/a4pFeuoQBaQ/eczR4o6875+YNUoBptqL v3fhFhbM/pI/QYGzgulzLLizSMTIP9MUmCNH+O3FDTFUoRVzFDD12w7iwt1g IOJft4DH6+nG7YO4x9oc3LpWKOBn+pRDBLd90KdnfesU4E0Q/y2Be+dimd3w FgWOxXLXyOHeX7nHfJ5mBf6GqB/WxB3nqWBEpl8B/sD7FpdwS6ve0d1gXIG3 Gq84dXFr5yWfZ9izApKiFsn3cVtZ1mkS2FfgvUnwiB3ud1zTasmcKzDxl/qZ y//v9/S4ypWDK9AT8jY1EPdlqSSpj0IrcOnJ+LVC3LaD1RIPRFdAtuGfYTXu wMCJE6fFVkB9mwa1426aFRYakFqBq1SRYXO4r/2IPyCssgJLTuUOQnh+2ulX cq+prgC6NHNJDnfIrrF9dWorIJb31e3/fG+zEGSzPb8CP3YFzJvhviHwnSZX B19fL/+/+P/z/dOXmbMPV6D2mxNRBa83Ttolkzw2+Pzymmev4w5fHxybsl0B 8aA5JkvchFtHSAEOKzASkhgTjNuA83NHp/sKbGZ4z03hNgr4VGzxcQW41EyF 0vB6+EKlsOBU5AqUvm44UI07ZqYnjyl6BY4nWlgO4R64cDAr7esKvMhb2cWD 118ThsgESuoKBJo8tPbBbe7+Mci7fAXePbiY7IjX86YAequwqhVYyMGqw3Gf jnbQ/F67AisvD14swL33t856SfMK8Dw994YKPx+KltjMt3pXYOYAW0sIbm7L NwpPyfj7c4yEV+PnjafDyl6v1RU4eW+FbwH3rJfFTPDGCnRu8zEewM+nsliN L+lUqxD61W6vDe7HxH9M06yr8EaxfoIbP+9qLjn3mwitAtvpkwnuV4kge3si 77HoKmQfd/NJx/35od57N7FVyE3maujH7eAjdz5aehVOhc76nMHPT/6ShYzu M6twv3LgN/V1vP7JPnx9RW8VZAv3MMfg5634QUMxlTerkPa5eucwfr6L8ZYx 8fitgsDMqIse7hN8JyYX/Veh1WP9ciBu0cMbcYnvV+GX//DaDm5BgajD+z6v wsurKSajeL/Ae6KHffrXKnQdIz1GeL/BfNpwLXx4FS5y7L2Ue4cITMplXfZj q2C7wvhhDTejyomcy5P4+kTbZJXv4v2L6sYT2vlVUKnJtC/FTaMeNWO7vgqX LqeRW42JsH6hZ+Ds3jVQaR2gpsX7pUkDw8rlM2ugnWROF29JhN3VXmdLsDUQ 5LSwX8AtI5dS6a+xBnP5ndIq9/F4YduqFLqwBr6SY3EduPeWx1TdurkGLQpD hkwP8fouPlRdaLUGtM/c/nni/Z3fzv26V+Fr8OhzIuUn3h+KfXds3re4Boui MZQtVyJEPZ4TP0Reg0uno+Pv4f0os4qFn/DqGij/vJDdgHu64+ZZpe01KPnk PxGD96/JDHKFd5nWYSOkOEvTHd9Pq6WEH/zrQJqUb/juhe+n9GM30FmHqP2j zYlviXAYPZCwzl6HnCHjK5UR+PnuRgzEctfh3XrYD+VIIgid0V7g+r0Ormc+ 3szCLV4oll3yZx2+j41GfokignLevCJ33TosNzMOeeD9vP5PB81S0jrcERI1 uvYFz+dYj9s8bBugWvyk70QSEeg8It6WP9iAuOZfVQ35RBiM3q01Z70BErWD W5a/8X7qtxcDz+MN8BzPC6MuwOvDss0rK8cNIBToTJ0qJEKvpdpLdq8N8MCs hH4U4/X18rSd8acNoLOfH44pw/OPV0V/s3EDbrF2q7c04O+nmMkt1IqPz7b/ q1Mjnj+6wp1XOjbg164TJoea8PoWuFfnW88GfKhMoLLB70OnaMYuXpjYgLCm y3W72/D+cyoAwqk24WNQrot5NxGm6Gl3Smg3oSqLZmQPfr+qEHAummbYhOtl v1OKcLsYmSmp7t4Ejb6rd3nw+9h4s4Ls2IFNGP34+HxrH97vzqYssh3aBNMw yyyPfiJEM/FnKB7dBHgS/lJqAD/vNVgk/IU3wTU+UC5kkAgSJh4zOcc3gWVN 66g6CY/nl5Qfg+Kb8OqokM0y7uFIqwdMUpugcvzQ/vghvJ/KHRSWld2EgwJi greGifAfLo8lpA== "]]}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, DisplayFunction->Identity, Frame->{{False, False}, {False, False}}, FrameLabel->{{None, None}, {None, None}}, FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], Method->{"DefaultBoundaryStyle" -> Automatic, "ScalingFunctions" -> None}, PlotRange->{{-0.5499999540816327, 1.6999999540816326`}, {0, 50}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, {0, 0}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{3.633868474774982*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{"Use", " ", "non"}], "-", RowBox[{"constant", " ", "time", " ", RowBox[{"steps", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"TimeDiscretization", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"t0", "=", RowBox[{"-", "0.55"}]}], ";", RowBox[{"speed", "=", RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"While", "[", RowBox[{ RowBox[{"t0", "<", "1.7"}], ",", RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"d", "=", RowBox[{"0.003", "*", RowBox[{"(", RowBox[{ RowBox[{"2", RowBox[{"Erf", "[", RowBox[{"20", RowBox[{"(", RowBox[{"t0", "+", "0.1"}], ")"}]}], "]"}]}], "+", "3"}], ")"}], "*", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"Erf", "[", RowBox[{ RowBox[{"-", "6"}], RowBox[{"(", RowBox[{"t0", "-", RowBox[{"3", "/", "2"}]}], ")"}]}], "]"}], "/", "2"}], "+", RowBox[{"1", "/", "2"}]}], ")"}], "^", "0"}]}]}], "}"}], ",", RowBox[{ RowBox[{"AppendTo", "[", RowBox[{"TimeDiscretization", ",", RowBox[{"t0", "+=", "d"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"speed", ",", RowBox[{"{", RowBox[{"t0", ",", RowBox[{"d", "*", RowBox[{"(", RowBox[{"expr", "/.", RowBox[{"t", "\[Rule]", "t0"}]}], ")"}]}]}], "}"}]}], "]"}]}]}], "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Print", "[", RowBox[{"\"\\"", ",", RowBox[{"Length", "[", "TimeDiscretization", "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"ListPlot", "[", RowBox[{"speed", ",", RowBox[{"Joined", "\[Rule]", "True"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{"0", ",", "0.2"}], "}"}]}]}], "]"}]}]}]], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Length: \"\>", "\[InvisibleSpace]", "263"}], SequenceForm["Length: ", 263], Editable->False]], "Print", CellChangeTimes->{3.633868481365933*^9}], Cell[BoxData[ GraphicsBox[{{}, {{}, {}, {RGBColor[0.368417, 0.506779, 0.709798], PointSize[0.011111111111111112`], AbsoluteThickness[1.6], LineBox[CompressedData[" 1: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 5TELx0OCv26xquB/UnFDGg== "]]}}, {}}, AspectRatio->NCache[GoldenRatio^(-1), 0.6180339887498948], Axes->{True, True}, AxesLabel->{None, None}, AxesOrigin->{0, 0}, DisplayFunction->Identity, Frame->{{False, False}, {False, False}}, FrameLabel->{{None, None}, {None, None}}, FrameTicks->{{Automatic, Automatic}, {Automatic, Automatic}}, GridLines->{None, None}, GridLinesStyle->Directive[ GrayLevel[0.5, 0.4]], Method->{}, PlotRange->{{-0.547, 1.7087341794288942`}, {0, 0.2}}, PlotRangeClipping->True, PlotRangePadding->{{ Scaled[0.02], Scaled[0.02]}, {0, 0}}, Ticks->{Automatic, Automatic}]], "Output", CellChangeTimes->{3.633868481578034*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{"Generate", " ", "pictures", " ", "for", " ", "movie", " ", RowBox[{"HancockJ", ".", "mp4", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Return", "\[Rule]", RowBox[{"{", RowBox[{"\"\\"", ",", "TimeDiscretization"}], "}"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "1400"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1.1"}], ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.8"}], ",", "2.4"}], "}"}]}], "}"}]}], ",", "optsJ"}], "]"}]}]], "Input"], Cell[BoxData["\<\"In the directory \ /win/d/Forschung/Projekte/motion-poly/software execute the following command:\ \\nffmpeg -i temp%05d.jpg -r 25 -qscale 4 movie.mp4\"\>"], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "If", " ", "we", " ", "stack", " ", "the", " ", "links", " ", "according", " ", "to", " ", "their", " ", "labels"}], ",", " ", RowBox[{"we", " ", "get", " ", "lots", " ", "of", " ", RowBox[{"collisions", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Timing", "[", RowBox[{"Length", "[", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Links", "\[Rule]", RowBox[{"Range", "[", "26", "]"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}]}], "]"}], "]"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ "72.31199999999999761257640784606337547302`7.879810286664587", ",", "240"}], "}"}]], "Output", CellChangeTimes->{3.633868564231044*^9}] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"coll", "=", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", "optsJ"}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Print", "[", RowBox[{"\"\\"", ",", RowBox[{"Length", "[", "coll", "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"coll", "=", RowBox[{"Select", "[", RowBox[{"coll", ",", RowBox[{ RowBox[{ RowBox[{"ArcTan", "[", RowBox[{"-", "0.55"}], "]"}], "<", RowBox[{"Last", "[", "#", "]"}], "<", RowBox[{"ArcTan", "[", "1.7", "]"}]}], "&"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Print", "[", RowBox[{"\"\\"", ",", RowBox[{"Length", "[", "coll", "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Print", "[", RowBox[{"\"\< counting triangles: \>\"", ",", RowBox[{"Length", "[", RowBox[{"Union", "[", RowBox[{"First", "/@", "coll"}], "]"}], "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"#1", ",", RowBox[{"N", "[", "#2", "]"}], ",", RowBox[{"N", "[", "#3", "]"}]}], "}"}], "&"}], "@@@", "coll"}]}], "Input"], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"All collisions: \"\>", "\[InvisibleSpace]", "28"}], SequenceForm["All collisions: ", 28], Editable->False]], "Print", CellChangeTimes->{3.633868594841599*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\"Collisions in range: \"\>", "\[InvisibleSpace]", "11"}], SequenceForm["Collisions in range: ", 11], Editable->False]], "Print", CellChangeTimes->{3.633868594842535*^9}], Cell[BoxData[ InterpretationBox[ RowBox[{"\<\" counting triangles: \"\>", "\[InvisibleSpace]", "7"}], SequenceForm[" counting triangles: ", 7], Editable->False]], "Print", CellChangeTimes->{3.6338685948434753`*^9}] }, Open ]], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"5", ",", "17", ",", "18"}], "}"}], ",", "0.7690942755287437`", ",", "0.06305386392588912`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"5", ",", "18", ",", "6"}], "}"}], ",", "0.9081946477755609`", ",", RowBox[{"-", "0.3153218384030013`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"18", ",", "6", ",", "19"}], "}"}], ",", "0.9081946477755609`", ",", RowBox[{"-", "0.3153218384030013`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"18", ",", "6", ",", "19"}], "}"}], ",", "0.45050667211603895`", ",", "0.09145135407664019`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "21", ",", "9"}], "}"}], ",", "0.8713504811012721`", ",", "0.1140512753044333`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "21", ",", "9"}], "}"}], ",", "0.9081946477755609`", ",", RowBox[{"-", "0.3153218384030013`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "22", ",", "9"}], "}"}], ",", "0.6556378549679511`", ",", "0.07483824938875953`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"8", ",", "22", ",", "9"}], "}"}], ",", "0.6528905411557094`", ",", "0.8424410153028409`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"23", ",", "10", ",", "24"}], "}"}], ",", "0.7453559924999299`", ",", RowBox[{"-", "0.3819660112501051`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"11", ",", "25", ",", "12"}], "}"}], ",", "0.8882567833618529`", ",", RowBox[{"-", "0.2038185135686791`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"11", ",", "25", ",", "12"}], "}"}], ",", "0.7453559924999299`", ",", RowBox[{"-", "0.3819660112501051`"}]}], "}"}]}], "}"}]], "Output", CellChangeTimes->{3.633868594844894*^9}] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ "Observe", " ", "the", " ", "2", "nd", " ", "and", " ", "3", "rd", " ", "collision", " ", "in", " ", "the", " ", RowBox[{"animation", "."}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Range", "\[Rule]", RowBox[{"ArcTan", "[", RowBox[{ RowBox[{"coll", "[", RowBox[{"[", RowBox[{"2", ",", "3"}], "]"}], "]"}], "+", RowBox[{"{", RowBox[{ RowBox[{"-", "0.01"}], ",", "0.01"}], "}"}]}], "]"}]}], ",", RowBox[{"ImageSize", "\[Rule]", "500"}], ",", RowBox[{"Thickness", "\[Rule]", "0.001"}], ",", RowBox[{"PlotRange", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1.0", ",", "1.3"}], "}"}], ",", RowBox[{"{", RowBox[{"0.9", ",", "1.2"}], "}"}], ",", RowBox[{"{", RowBox[{"0.0", ",", "0.15"}], "}"}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"ColorOutput", "\[Rule]", RowBox[{"{", RowBox[{ RowBox[{"5", "\[Rule]", "Green"}], ",", RowBox[{"18", "\[Rule]", "Blue"}], ",", RowBox[{"6", "\[Rule]", "Yellow"}], ",", RowBox[{"19", "\[Rule]", "Red"}]}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", "optsJ"}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"(*", " ", RowBox[{ RowBox[{ "This", " ", "ordering", " ", "of", " ", "the", " ", "links", " ", "has", " ", "only", " ", "6", " ", "collisions"}], ",", " ", RowBox[{ "but", " ", "the", " ", "pen", " ", "is", " ", "not", " ", "on", " ", RowBox[{"top", "."}]}]}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"Timing", "[", RowBox[{"Union", "[", RowBox[{"First", "/@", RowBox[{"Select", "[", RowBox[{ RowBox[{"ShowLinkage", "[", RowBox[{"linkJ", ",", RowBox[{"Links", "\[Rule]", RowBox[{"{", RowBox[{ "2", ",", "1", ",", "14", ",", "15", ",", "3", ",", "16", ",", "4", ",", "5", ",", "17", ",", "18", ",", "6", ",", "19", ",", "7", ",", "20", ",", "8", ",", "21", ",", "22", ",", "9", ",", "23", ",", "10", ",", "11", ",", "24", ",", "12", ",", "13", ",", "25", ",", "26"}], "}"}]}], ",", RowBox[{"Return", "\[Rule]", "\"\\""}], ",", "optsJ"}], "]"}], ",", RowBox[{ RowBox[{ RowBox[{"ArcTan", "[", RowBox[{"-", "0.55"}], "]"}], "<", RowBox[{"Last", "[", "#", "]"}], "<", RowBox[{"ArcTan", "[", "1.7", "]"}]}], "&"}]}], "]"}]}], "]"}], "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"10.13899999999999934630068310070782899857`7.0265950363343155", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"5", ",", "17", ",", "18"}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", "18", ",", "6"}], "}"}], ",", RowBox[{"{", RowBox[{"8", ",", "21", ",", "9"}], "}"}], ",", RowBox[{"{", RowBox[{"8", ",", "22", ",", "9"}], "}"}], ",", RowBox[{"{", RowBox[{"18", ",", "6", ",", "19"}], "}"}], ",", RowBox[{"{", RowBox[{"23", ",", "10", ",", "24"}], "}"}]}], "}"}]}], "}"}]], "Output",\ CellChangeTimes->{3.633868624607568*^9}] }, Open ]] }, Closed]] }, WindowSize->{1280, 954}, WindowMargins->{{Automatic, 0}, {Automatic, 0}}, PrivateNotebookOptions->{"VersionedStylesheet"->{"Default.nb"[8.] -> True}}, ShowSelection->True, TrackCellChangeTimes->False, Magnification:>FEPrivate`If[ FEPrivate`Equal[FEPrivate`$VersionNumber, 6.], 1.5, 1.5 Inherited], FrontEndVersion->"10.0 for Linux x86 (64-bit) (December 4, 2014)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{ "Info3633870369-3753390"->{ Cell[9550, 338, 304, 5, 89, "Print", CellTags->"Info3633870369-3753390"]}, "Info3633870378-3753390"->{ Cell[19901, 675, 356, 6, 89, "Print", CellTags->"Info3633870378-3753390"]}, "Info3633871126-6936449"->{ Cell[60546, 1937, 776, 11, 224, "Print", CellTags->"Info3633871126-6936449"]}, "Info3633871177-6936449"->{ Cell[67933, 2170, 1979, 28, 575, "Print", CellTags->"Info3633871177-6936449"]}, "Info3633871205-6936449"->{ Cell[76775, 2419, 478, 7, 6670, "Print", CellTags->"Info3633871205-6936449"]} } *) (*CellTagsIndex CellTagsIndex->{ {"Info3633870369-3753390", 246950, 7064}, {"Info3633870378-3753390", 247059, 7067}, {"Info3633871126-6936449", 247169, 7070}, {"Info3633871177-6936449", 247282, 7073}, {"Info3633871205-6936449", 247396, 7076} } *) (*NotebookFileOutline Notebook[{ Cell[557, 20, 292, 7, 73, "Input"], Cell[852, 29, 549, 13, 137, "Text"], Cell[CellGroupData[{ Cell[1426, 46, 23, 0, 110, "Section"], Cell[CellGroupData[{ Cell[1474, 50, 54, 0, 58, "Subsection"], Cell[CellGroupData[{ Cell[1553, 54, 367, 10, 73, "Input"], Cell[1923, 66, 404, 12, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[2364, 83, 441, 12, 73, "Input"], Cell[2808, 97, 529, 17, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[3374, 119, 402, 13, 73, "Input"], Cell[3779, 134, 529, 17, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[4345, 156, 530, 14, 73, "Input"], Cell[4878, 172, 1086, 31, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6001, 208, 373, 10, 101, "Input"], Cell[6377, 220, 258, 7, 2524, "Output"], Cell[6638, 229, 246, 9, 3786, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[6921, 243, 650, 22, 4164, "Input"], Cell[7574, 267, 757, 21, 2524, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[8368, 293, 624, 16, 4164, "Input"], Cell[8995, 311, 309, 9, 2524, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[9353, 326, 121, 5, 44, "Subsection"], Cell[CellGroupData[{ Cell[9499, 335, 48, 1, 44, "Input"], Cell[9550, 338, 304, 5, 89, "Print", CellTags->"Info3633870369-3753390"] }, Open ]], Cell[CellGroupData[{ Cell[9891, 348, 1056, 34, 101, "Input"], Cell[10950, 384, 1215, 39, 73, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[12202, 428, 1008, 32, 73, "Input"], Cell[13213, 462, 3571, 100, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[16821, 567, 261, 8, 44, "Input"], Cell[17085, 577, 2646, 85, 109, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[19780, 668, 42, 0, 44, "Subsection"], Cell[CellGroupData[{ Cell[19847, 672, 51, 1, 44, "Input"], Cell[19901, 675, 356, 6, 89, "Print", CellTags->"Info3633870378-3753390"] }, Open ]], Cell[CellGroupData[{ Cell[20294, 686, 303, 7, 73, "Input"], Cell[20600, 695, 115, 3, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[20752, 703, 86, 2, 44, "Input"], Cell[20841, 707, 532, 11, 60, "Message"], Cell[21376, 720, 214, 5, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[21627, 730, 696, 20, 101, "Input"], Cell[22326, 752, 384, 12, 67, "Output"], Cell[22713, 766, 70, 1, 44, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[22832, 773, 57, 0, 44, "Subsection"], Cell[CellGroupData[{ Cell[22914, 777, 402, 12, 73, "Input"], Cell[23319, 791, 2245, 68, 110, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[25601, 864, 188, 5, 73, "Input"], Cell[25792, 871, 898, 22, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[26727, 898, 218, 5, 73, "Input"], Cell[26948, 905, 390, 10, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[27375, 920, 418, 10, 101, "Input"], Cell[27796, 932, 563, 17, 44, "Output"], Cell[28362, 951, 256, 7, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[28655, 963, 707, 23, 73, "Input"], Cell[29365, 988, 2241, 69, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[31643, 1062, 593, 16, 73, "Input"], Cell[32239, 1080, 2211, 68, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[34487, 1153, 1086, 33, 7384, "Input"], Cell[35576, 1188, 2151, 65, 6318, "Output"], Cell[37730, 1255, 501, 10, 1944, "Message"], Cell[38234, 1267, 181, 4, 2524, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[38452, 1276, 841, 25, 7384, "Input"], Cell[39296, 1303, 582, 17, 2763, "Output"], Cell[39881, 1322, 307, 8, 2160, "Message"], Cell[40191, 1332, 1949, 57, 3597, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[42177, 1394, 1826, 50, 10620, "Input"], Cell[44006, 1446, 1603, 48, 2524, "Output"], Cell[45612, 1496, 694, 19, 2524, "Output"], Cell[46309, 1517, 139, 3, 2524, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[46485, 1525, 1073, 30, 5784, "Input"], Cell[47561, 1557, 12084, 344, 23782, "Output"] }, Open ]], Cell[59660, 1904, 656, 20, 4164, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[60353, 1929, 113, 1, 44, "Subsection"], Cell[CellGroupData[{ Cell[60491, 1934, 52, 1, 44, "Input"], Cell[60546, 1937, 776, 11, 224, "Print", CellTags->"Info3633871126-6936449"] }, Open ]], Cell[61337, 1951, 418, 11, 73, "Input"], Cell[61758, 1964, 772, 23, 101, "Input"], Cell[62533, 1989, 277, 7, 73, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[62847, 2001, 46, 0, 44, "Subsection"], Cell[CellGroupData[{ Cell[62918, 2005, 369, 11, 73, "Input"], Cell[63290, 2018, 848, 26, 44, "Output"] }, Open ]], Cell[64153, 2047, 683, 20, 73, "Input"], Cell[CellGroupData[{ Cell[64861, 2071, 1378, 42, 101, "Input"], Cell[66242, 2115, 1597, 47, 63, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[67876, 2167, 54, 1, 44, "Input"], Cell[67933, 2170, 1979, 28, 575, "Print", CellTags->"Info3633871177-6936449"] }, Open ]], Cell[69927, 2201, 400, 11, 2524, "Input"], Cell[CellGroupData[{ Cell[70352, 2216, 778, 21, 5784, "Input"], Cell[71133, 2239, 2400, 72, 4164, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[73570, 2316, 909, 28, 5784, "Input"], Cell[74482, 2346, 2194, 65, 4164, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[76713, 2416, 59, 1, 2524, "Input"], Cell[76775, 2419, 478, 7, 6670, "Print", CellTags->"Info3633871205-6936449"] }, Open ]], Cell[CellGroupData[{ Cell[77290, 2431, 208, 6, 2524, "Input"], Cell[77501, 2439, 8733, 257, 17316, "Output"] }, Open ]], Cell[86249, 2699, 494, 16, 2524, "Input"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[86792, 2721, 111, 1, 110, "Section"], Cell[CellGroupData[{ Cell[86928, 2726, 665, 21, 129, "Input"], Cell[87596, 2749, 2299, 67, 113, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[89932, 2821, 170, 4, 44, "Input"], Cell[90105, 2827, 589, 21, 63, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[90731, 2853, 589, 18, 73, "Input"], Cell[91323, 2873, 411, 12, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[91771, 2890, 639, 15, 44, "Input"], Cell[92413, 2907, 2063, 59, 73, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[94513, 2971, 283, 7, 44, "Input"], Cell[94799, 2980, 122, 2, 44, "Output"] }, Open ]], Cell[94936, 2985, 561, 14, 73, "Input"], Cell[95500, 3001, 578, 14, 73, "Input"], Cell[96081, 3017, 2933, 78, 325, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[99051, 3100, 64, 0, 63, "Section"], Cell[CellGroupData[{ Cell[99140, 3104, 555, 17, 101, "Input"], Cell[99698, 3123, 712, 20, 48, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[100447, 3148, 321, 8, 73, "Input"], Cell[100771, 3158, 1231, 41, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[102039, 3204, 283, 7, 73, "Input"], Cell[102325, 3213, 232, 7, 44, "Output"] }, Open ]], Cell[102572, 3223, 238, 5, 73, "Input"], Cell[102813, 3230, 298, 7, 73, "Input"], Cell[CellGroupData[{ Cell[103136, 3241, 492, 14, 73, "Input"], Cell[103631, 3257, 2535, 81, 118, "Output"] }, Open ]], Cell[106181, 3341, 1370, 41, 129, "Input"], Cell[CellGroupData[{ Cell[107576, 3386, 797, 22, 101, "Input"], Cell[108376, 3410, 261, 4, 101, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[108686, 3420, 48, 0, 63, "Section"], Cell[CellGroupData[{ Cell[108759, 3424, 1020, 32, 73, "Input"], Cell[109782, 3458, 6422, 123, 296, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[116241, 3586, 864, 27, 73, "Input"], Cell[117108, 3615, 6967, 122, 279, "Output"] }, Open ]], Cell[124090, 3740, 903, 25, 129, "Input"], Cell[CellGroupData[{ Cell[125018, 3769, 840, 22, 101, "Input"], Cell[125861, 3793, 422, 9, 38, "Message"], Cell[126286, 3804, 2002, 58, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[128325, 3867, 653, 16, 73, "Input"], Cell[128981, 3885, 395, 9, 38, "Message"], Cell[129379, 3896, 1987, 58, 66, "Output"] }, Open ]], Cell[131381, 3957, 1380, 39, 129, "Input"], Cell[CellGroupData[{ Cell[132786, 4000, 1539, 40, 129, "Input"], Cell[134328, 4042, 1388, 42, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[135753, 4089, 618, 16, 101, "Input"], Cell[136374, 4107, 1257, 38, 66, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[137668, 4150, 1335, 32, 157, "Input"], Cell[139006, 4184, 5145, 155, 167, "Output"] }, Open ]], Cell[144166, 4342, 838, 22, 73, "Input"], Cell[145007, 4366, 727, 17, 73, "Input"], Cell[145737, 4385, 768, 19, 73, "Input"], Cell[CellGroupData[{ Cell[146530, 4408, 1854, 46, 185, "Input"], Cell[148387, 4456, 1683, 49, 110, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[150107, 4510, 1899, 50, 213, "Input"], Cell[152009, 4562, 616, 18, 63, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[152662, 4585, 950, 24, 129, "Input"], Cell[153615, 4611, 2523, 58, 267, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[156175, 4674, 1805, 48, 157, "Input"], Cell[157983, 4724, 921, 33, 73, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[158941, 4762, 1100, 31, 101, "Input"], Cell[160044, 4795, 184, 2, 101, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[160265, 4802, 1638, 44, 157, "Input"], Cell[161906, 4848, 184, 2, 101, "Output"] }, Open ]], Cell[162105, 4853, 3881, 103, 493, "Input"], Cell[165989, 4958, 3474, 106, 215, "Input"], Cell[169466, 5066, 2402, 65, 213, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[171905, 5136, 110, 1, 63, "Section"], Cell[CellGroupData[{ Cell[172040, 5141, 2238, 64, 185, "Input"], Cell[174281, 5207, 3046, 86, 173, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[177364, 5298, 90, 2, 44, "Input"], Cell[177457, 5302, 436, 9, 78, "Message"], Cell[177896, 5313, 8453, 273, 326, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[186386, 5591, 677, 20, 73, "Input"], Cell[187066, 5613, 7553, 245, 326, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[194656, 5863, 859, 22, 101, "Input"], Cell[195518, 5887, 7736, 172, 156, "Output"] }, Open ]], Cell[203269, 6062, 1934, 51, 185, "Input"], Cell[205206, 6115, 256, 6, 73, "Input"], Cell[205465, 6123, 558, 14, 101, "Input"], Cell[206026, 6139, 896, 21, 129, "Input"], Cell[206925, 6162, 2042, 57, 241, "Input"], Cell[CellGroupData[{ Cell[208992, 6223, 990, 30, 101, "Input"], Cell[209985, 6255, 18288, 309, 389, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[228310, 6569, 2278, 66, 213, "Input"], Cell[230591, 6637, 198, 5, 34, "Print"], Cell[230792, 6644, 6116, 110, 389, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[236945, 6759, 744, 21, 101, "Input"], Cell[237692, 6782, 184, 2, 101, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[237913, 6789, 640, 16, 73, "Input"], Cell[238556, 6807, 181, 5, 44, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[238774, 6817, 1318, 40, 185, "Input"], Cell[CellGroupData[{ Cell[240117, 6861, 212, 5, 34, "Print"], Cell[240332, 6868, 222, 5, 34, "Print"], Cell[240557, 6875, 224, 5, 34, "Print"] }, Open ]], Cell[240796, 6883, 2159, 64, 185, "Output"] }, Open ]], Cell[242970, 6950, 1399, 38, 157, "Input"], Cell[CellGroupData[{ Cell[244394, 6992, 1346, 33, 241, "Input"], Cell[245743, 7027, 653, 18, 44, "Output"] }, Open ]] }, Closed]] } ] *) (* End of internal cache information *)