(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 11.2' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 87494, 2258] NotebookOptionsPosition[ 81953, 2163] NotebookOutlinePosition[ 82291, 2178] CellTagsIndexPosition[ 82248, 2175] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["Checking the Big Table", "Title", CellChangeTimes->{{3.7966619617199583`*^9, 3.7966619671318607`*^9}},ExpressionUUID->"44bd5a6c-a8c2-4fae-ba0d-\ de4f73099479"], Cell[CellGroupData[{ Cell["Bradley Klee", "Chapter", CellChangeTimes->{{3.796661984070105*^9, 3.796662013397851*^9}},ExpressionUUID->"ee3c2fb1-f0cb-4c6b-a381-\ 94659ab810ff"], Cell[CellGroupData[{ Cell["Algorithms", "Section", CellChangeTimes->{{3.796501290003273*^9, 3.79650129115385*^9}},ExpressionUUID->"e0f3d591-aea6-4568-b0d0-\ 6377215eff57"], Cell[CellGroupData[{ Cell["Hyperelliptic Case", "Subsection", CellChangeTimes->{{3.7965013033373137`*^9, 3.796501306662538*^9}, 3.796662024620414*^9},ExpressionUUID->"ac117888-63d8-416a-87d8-\ b3ea06bcad36"], Cell[BoxData[ RowBox[{ RowBox[{"ConsMG", "[", RowBox[{"V0_", ",", "d_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"F1", " ", "=", " ", RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"f1", "[", "m", "]"}], RowBox[{"q", "^", "m"}]}], ",", RowBox[{"{", RowBox[{"m", ",", "0", ",", RowBox[{"d", "-", "2"}]}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"F2", " ", "=", " ", RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"f2", "[", "m", "]"}], RowBox[{"q", "^", "m"}]}], ",", RowBox[{"{", RowBox[{"m", ",", "0", ",", RowBox[{"d", "-", "1"}]}], "}"}]}], "]"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Outer", "[", RowBox[{ RowBox[{ RowBox[{"Coefficient", "[", RowBox[{"#1", ",", "#2"}], "]"}], "&"}], ",", "\[IndentingNewLine]", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{ RowBox[{"F1", RowBox[{"(", RowBox[{"\[Alpha]", "-", RowBox[{"2", "V0"}]}], ")"}]}], "+", RowBox[{"F2", " ", RowBox[{"D", "[", RowBox[{ RowBox[{"-", "V0"}], ",", "q"}], "]"}]}]}], ",", "q"}], "]"}], ",", "\[IndentingNewLine]", " ", RowBox[{"Join", "[", RowBox[{ RowBox[{"f1", "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"d", "-", "2"}]}], "]"}]}], ",", RowBox[{"f2", "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"d", "-", "1"}]}], "]"}]}]}], "]"}], ",", "1"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7666684911193333`*^9, 3.7666685113248243`*^9}, { 3.766670286952976*^9, 3.766670381649138*^9}, 3.7666704291583433`*^9}, CellID->743042586,ExpressionUUID->"b34fd52b-39c9-4f50-ac09-f7151bed030d"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"HermiteReduce", "[", RowBox[{"_", ",", "_", ",", "_", ",", "0", ",", "F0_"}], "]"}], ":=", "F0"}], " ", ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"HermiteReduce", "[", RowBox[{"MF1_", ",", "MF2_", ",", "MF2Dot_", ",", "n_", ",", "F0_"}], "]"}], ":=", RowBox[{"HermiteReduce", "[", "\[IndentingNewLine]", RowBox[{"MF1", ",", "MF2", ",", "MF2Dot", ",", RowBox[{"n", "-", "1"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Sow", "[", RowBox[{ RowBox[{"Cancel", "@", RowBox[{"Divide", "[", RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{ RowBox[{"1", "/", RowBox[{"(", RowBox[{ RowBox[{"2", "n"}], "-", "1"}], ")"}]}], RowBox[{"q", "^", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{ RowBox[{"Length", "[", "MF2", "]"}], "-", "1"}]}], "]"}]}]}], ",", "\[IndentingNewLine]", "MF2", ",", "F0"}], "]"}], ",", RowBox[{"p", "^", RowBox[{"(", RowBox[{ RowBox[{"2", "n"}], "-", "1"}], ")"}]}]}], "]"}]}], ",", "cert"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Cancel", "[", RowBox[{ RowBox[{"(", RowBox[{"MF1", "+", RowBox[{ RowBox[{"1", "/", RowBox[{"(", RowBox[{ RowBox[{"2", "n"}], "-", "1"}], ")"}]}], "MF2Dot"}]}], ")"}], ".", "F0"}], "]"}]}]}], "]"}]}]}], "Input", CellChangeTimes->{ 3.7666668549108067`*^9, {3.76666761948855*^9, 3.7666676574425793`*^9}}, CellID->907619528,ExpressionUUID->"d03a05bb-0dc1-4261-921d-ffdcf285357c"], Cell[BoxData[ RowBox[{ RowBox[{"HyperellipticToODE", "[", "V0_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"deg", "=", RowBox[{"Max", "[", RowBox[{"Cases", "[", RowBox[{"V0", ",", RowBox[{ RowBox[{"q", "^", "m_"}], "\[RuleDelayed]", "m"}], ",", "Infinity"}], "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"nInd", "=", "1"}], ",", RowBox[{"PFCS", "=", RowBox[{"{", "}"}]}], ",", "RedForms", ",", "MGSol", ",", "MF1", ",", "MF2", ",", "MF2Dot"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Sow", "[", "V0", "]"}], ";", "\[IndentingNewLine]", RowBox[{"RedForms", "=", RowBox[{"{", RowBox[{"Prepend", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"deg", "-", "2"}], "}"}]}], "]"}], ",", "1"}], "]"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"MGSol", "=", RowBox[{"Cancel", "@", RowBox[{"Inverse", "[", RowBox[{"ConsMG", "[", RowBox[{"V0", ",", "deg"}], "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"MF1", "=", RowBox[{"MGSol", "[", RowBox[{"[", RowBox[{ RowBox[{"1", ";;", RowBox[{"deg", "-", "1"}]}], ",", RowBox[{"1", ";;", RowBox[{"deg", "-", "1"}]}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MF2", "=", RowBox[{"MGSol", "[", RowBox[{"[", RowBox[{ RowBox[{"deg", ";;", RowBox[{"-", "1"}]}], ",", RowBox[{"1", ";;", RowBox[{"deg", "-", "1"}]}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MF2Dot", "=", RowBox[{"Times", "[", RowBox[{ RowBox[{"MF2", "[", RowBox[{"[", RowBox[{ RowBox[{"2", ";;", RowBox[{"-", "1"}]}], ",", "All"}], "]"}], "]"}], ",", RowBox[{"Range", "[", RowBox[{"deg", "-", "1"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"While", "[", RowBox[{"(*", RowBox[{ RowBox[{"DimSpan", "[", RowBox[{"v", ",", "d"}], "]"}], "\[Equal]", "n"}], "*)"}], RowBox[{ RowBox[{"PFCS", "\[Equal]", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"RedForms", "=", RowBox[{"Append", "[", RowBox[{"RedForms", ",", RowBox[{"HermiteReduce", "[", RowBox[{ "MF1", ",", "MF2", ",", "MF2Dot", ",", "nInd", ",", "\[IndentingNewLine]", RowBox[{"Prepend", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"deg", "-", "2"}], "}"}]}], "]"}], ",", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ")"}], "^", "nInd"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "nInd"}], "-", "1"}], ")"}], "!!"}]}]}], "]"}]}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"nInd", "=", RowBox[{"nInd", "+", "1"}]}], ";", "\[IndentingNewLine]", RowBox[{"PFCS", "=", RowBox[{"NullSpace", "[", RowBox[{"Transpose", "@", "RedForms"}], "]"}]}]}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Divide", "[", RowBox[{"#", ",", RowBox[{"PolynomialGCD", "@@", "#"}]}], "]"}], "&"}], "@", RowBox[{"PFCS", "[", RowBox[{"[", "1", "]"}], "]"}]}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{ 3.766666819975404*^9, {3.76666700363976*^9, 3.766667009969337*^9}, { 3.766668331956452*^9, 3.766668355712451*^9}, {3.766668394107977*^9, 3.766668453397275*^9}, {3.796501199584494*^9, 3.796501209611714*^9}}, CellID->1818583853,ExpressionUUID->"79f289dc-3994-4620-a2da-dbdc00aa105d"] }, Closed]], Cell[CellGroupData[{ Cell["Dihedral Case", "Subsection", CellChangeTimes->{{3.796501293426115*^9, 3.7965012962059927`*^9}},ExpressionUUID->"10829a08-16c8-4afb-9f0d-\ 55291c1ed30a"], Cell[BoxData[ RowBox[{ RowBox[{"TrigRep", "=", RowBox[{"{", RowBox[{ RowBox[{"q", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", "\[Lambda]"}], "]"}], " ", RowBox[{"Cos", "[", "\[Phi]", "]"}]}]}], ",", RowBox[{"p", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", "\[Lambda]"}], "]"}], RowBox[{"Sin", "[", "\[Phi]", "]"}]}]}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.765722705801306*^9, 3.765722707993202*^9}, { 3.766675711397111*^9, 3.766675714035491*^9}}, CellID->1996743035,ExpressionUUID->"ea5e9c6a-f465-460f-b92a-297387030c6a"], Cell[BoxData[{ RowBox[{ RowBox[{"ZTrigRep", "=", RowBox[{"{", RowBox[{ RowBox[{"X", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"1", "-", RowBox[{"Z", "^", "2"}]}], "]"}], " ", RowBox[{"Cos", "[", "\[Phi]", "]"}]}]}], ",", RowBox[{"Y", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"1", "-", RowBox[{"Z", "^", "2"}]}], "]"}], " ", RowBox[{"Sin", "[", "\[Phi]", "]"}]}]}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Z\[Lambda]Rep", "=", RowBox[{"{", RowBox[{"Z", "\[Rule]", "\[Lambda]"}], "}"}]}], ";"}]}], "Input", CellChangeTimes->{{3.796503570706756*^9, 3.7965035723593817`*^9}},ExpressionUUID->"3008210e-0373-48b9-b207-\ de98eab0f5d0"], Cell[BoxData[ RowBox[{ RowBox[{"MatrixInvariants", "[", RowBox[{"Den_", ",", "\[Lambda]DotSq_", ",", "\[Lambda]DDot_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"degDen", "=", RowBox[{ RowBox[{"Length", "[", RowBox[{"CoefficientList", "[", RowBox[{"Den", ",", "\[Lambda]"}], "]"}], "]"}], "-", "1"}]}], ",", "\[IndentingNewLine]", RowBox[{"deg\[Lambda]DotSq", "=", RowBox[{ RowBox[{"Length", "[", RowBox[{"CoefficientList", "[", RowBox[{"\[Lambda]DotSq", ",", "\[Lambda]"}], "]"}], "]"}], "-", "1"}]}], ",", "\[IndentingNewLine]", "F1", ",", "F2", ",", "MG", ",", "MGSol", ",", "MF1", ",", "MF2", ",", "MF3"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"F1", " ", "=", " ", RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"f1", "[", "m", "]"}], RowBox[{"\[Lambda]", "^", "m"}]}], ",", RowBox[{"{", RowBox[{"m", ",", "0", ",", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "2"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"F2", " ", "=", " ", RowBox[{"Sum", "[", RowBox[{ RowBox[{ RowBox[{"f2", "[", "m", "]"}], RowBox[{"\[Lambda]", "^", "m"}]}], ",", RowBox[{"{", RowBox[{"m", ",", "0", ",", RowBox[{"degDen", "-", "1"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MG", "=", RowBox[{"Outer", "[", RowBox[{ RowBox[{ RowBox[{"Coefficient", "[", RowBox[{"#1", ",", "#2"}], "]"}], "&"}], ",", "\[IndentingNewLine]", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{ RowBox[{"F1", " ", "Den"}], "+", RowBox[{"F2", " ", RowBox[{"D", "[", RowBox[{"Den", ",", "\[Lambda]"}], "]"}], "\[Lambda]DotSq"}]}], ",", "\[Lambda]"}], "]"}], ",", "\[IndentingNewLine]", " ", RowBox[{"Join", "[", RowBox[{ RowBox[{"f1", "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "2"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"f2", "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"degDen", "-", "1"}]}], "]"}]}]}], "]"}], ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MGSol", "=", RowBox[{"Cancel", "[", RowBox[{"Inverse", "[", "MG", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MF1", "=", RowBox[{"MGSol", "[", RowBox[{"[", RowBox[{ RowBox[{"1", ";;", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "1"}]}], ",", RowBox[{"1", ";;", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "1"}]}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MF2", "=", RowBox[{"MGSol", "[", RowBox[{"[", RowBox[{ RowBox[{ RowBox[{"degDen", "+", "deg\[Lambda]DotSq"}], ";;", RowBox[{"-", "1"}]}], ",", RowBox[{"1", ";;", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "1"}]}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"MF3", "=", RowBox[{"Transpose", "[", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{"Factor", "@", RowBox[{"Plus", "[", RowBox[{ RowBox[{"Times", "[", RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{"\[Lambda]", "^", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"degDen", "-", "1"}]}], "]"}]}], ",", "MF2"}], "]"}], ",", "\[Lambda]"}], "]"}], ",", "\[Lambda]DotSq"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Times", "[", RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{"\[Lambda]", "^", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{"degDen", "-", "1"}]}], "]"}]}], ",", "MF2"}], "]"}], ",", "\[Lambda]DDot"}], "]"}]}], "]"}]}], ",", "\[Lambda]", ",", RowBox[{"degDen", "+", "deg\[Lambda]DotSq", "-", "1"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{"{", RowBox[{"MF1", ",", "MF3", ",", "MF2"}], "}"}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{ 3.747465312942356*^9, {3.747465595776558*^9, 3.747465653396826*^9}, { 3.7474657831997633`*^9, 3.747465783827793*^9}, {3.747470042186534*^9, 3.7474700442186813`*^9}, {3.747523046936906*^9, 3.747523047829475*^9}, { 3.76625068357872*^9, 3.7662507358450413`*^9}, {3.7662509456503267`*^9, 3.766251044854803*^9}, {3.766251101382124*^9, 3.7662511125600157`*^9}, { 3.7662514284198027`*^9, 3.766251437526149*^9}, {3.766251494771887*^9, 3.766251496158675*^9}, 3.7662516264505777`*^9, {3.766251942957892*^9, 3.766252106392126*^9}, {3.7662521458722677`*^9, 3.766252155333695*^9}, 3.766252263697352*^9, 3.766252307507023*^9, {3.766252530713635*^9, 3.7662525867705593`*^9}, {3.766252625139698*^9, 3.766252628650388*^9}, { 3.766258855043511*^9, 3.766258986463623*^9}, {3.766259052443158*^9, 3.766259058451907*^9}, {3.766259279135791*^9, 3.766259334359404*^9}, { 3.766259368165856*^9, 3.7662594105802307`*^9}, {3.7662595051084833`*^9, 3.766259548773096*^9}, {3.766259623426394*^9, 3.766259646908023*^9}, { 3.766259784821662*^9, 3.766259785792838*^9}, {3.7662639513886147`*^9, 3.766263954137886*^9}, {3.766269632752351*^9, 3.766269663831251*^9}, { 3.7663155503934927`*^9, 3.766315565333663*^9}, {3.7663159801402073`*^9, 3.766315981594829*^9}, 3.766317331731901*^9, {3.7668442155783167`*^9, 3.766844216848116*^9}}, CellID->1288565188,ExpressionUUID->"9baace67-e387-43c8-a610-53eecfc495a5"], Cell[BoxData[ RowBox[{ RowBox[{"DenPow", "[", RowBox[{"den_", ",", "base_"}], "]"}], ":=", RowBox[{ RowBox[{"NestWhile", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Cancel", "[", RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], " ", "base"}], "]"}], ",", RowBox[{ RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}], "+", "1"}]}], "}"}], "&"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"1", "/", "den"}], ",", "0"}], "}"}], ",", RowBox[{ RowBox[{"!", RowBox[{"PolynomialQ", "[", RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], ",", "\[Lambda]"}], "]"}]}], "&"}]}], " ", "]"}], "[", RowBox[{"[", "2", "]"}], "]"}]}]], "Input", CellChangeTimes->{{3.7662660315945263`*^9, 3.766266037281551*^9}, 3.7663179405203876`*^9, {3.766527614577282*^9, 3.766527627820277*^9}, { 3.7665281898273983`*^9, 3.766528194344329*^9}, {3.7665282293159533`*^9, 3.7665282820844717`*^9}, {3.76652831514117*^9, 3.766528318884589*^9}}, CellID->289484956,ExpressionUUID->"8787ad43-72d1-4481-bd55-672a9e9e7e19"], Cell[BoxData[ RowBox[{ RowBox[{"PartialFrac", "[", RowBox[{"dtForm_", ",", "Pow_", ",", "Den_", ",", "deg_"}], "]"}], ":=", RowBox[{"If", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"Length", "@", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{"Cancel", "[", RowBox[{"dtForm", " ", RowBox[{"Den", "^", "Pow"}]}], "]"}], ",", "\[Lambda]"}], "]"}]}], " ", "<=", "deg"}], " ", ",", "\[IndentingNewLine]", RowBox[{"{", "dtForm", "}"}], ",", RowBox[{ RowBox[{ RowBox[{"Flatten", "[", RowBox[{"{", RowBox[{ RowBox[{"PartialFrac", "[", RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", RowBox[{"1", ",", "1"}], "]"}], "]"}], "/", RowBox[{"Den", "^", RowBox[{"(", RowBox[{"Pow", "-", "1"}], ")"}]}]}], ",", RowBox[{"Pow", "-", "1"}], ",", "Den", ",", "deg"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"PartialFrac", "[", RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}], "/", RowBox[{"Den", "^", RowBox[{"(", "Pow", ")"}]}]}], ",", "Pow", ",", "Den", ",", "deg"}], "]"}]}], "}"}], "]"}], "&"}], "@", "\[IndentingNewLine]", RowBox[{"PolynomialReduce", "[", RowBox[{ RowBox[{"dtForm", " ", RowBox[{"Den", "^", "Pow"}]}], ",", "Den", ",", RowBox[{"{", "\[Lambda]", "}"}]}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7663161609916067`*^9, 3.766316295008177*^9}, { 3.7663170003679523`*^9, 3.766317095891094*^9}, {3.766317265771798*^9, 3.7663172723266497`*^9}, 3.7663175847051563`*^9, {3.7663176610430202`*^9, 3.766317664958488*^9}, {3.766317827990314*^9, 3.766317845154305*^9}, { 3.7665058232388687`*^9, 3.766505834916718*^9}, {3.766526941893095*^9, 3.766526958521274*^9}, {3.7665270932222843`*^9, 3.7665272131266813`*^9}, { 3.7665272433852577`*^9, 3.766527246678005*^9}, {3.766528696167169*^9, 3.766528697388085*^9}}, CellID->1224431771,ExpressionUUID->"525b0449-4c4b-4e86-9d3c-40b488b5c4a3"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"HermiteReduce", "[", RowBox[{"_", ",", "_", ",", "_", ",", "1", ",", "F0_", ",", "nSow_"}], "]"}], ":=", "F0"}], " ", ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"HermiteReduce", "[", RowBox[{ "MF1_", ",", "MF3_", ",", "MF2_", ",", "n_", ",", "F0_", ",", "nSow_"}], "]"}], ":=", RowBox[{"HermiteReduce", "[", "\[IndentingNewLine]", RowBox[{"MF1", ",", "MF3", ",", "MF2", ",", RowBox[{"n", "-", "1"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Sow", "[", RowBox[{ RowBox[{"Cancel", "@", RowBox[{"Divide", "[", RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{ RowBox[{"\[Lambda]Dot", "/", RowBox[{"(", RowBox[{"n", "-", "1"}], ")"}]}], RowBox[{"\[Lambda]", "^", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{ RowBox[{"Length", "[", "MF2", " ", "]"}], "-", "1"}]}], "]"}]}]}], ",", "\[IndentingNewLine]", "MF2", ",", "F0"}], "]"}], ",", RowBox[{"den", "^", RowBox[{"(", RowBox[{"n", "-", "1"}], ")"}]}]}], "]"}]}], ",", RowBox[{"cert", "[", "nSow", "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{ RowBox[{"(", RowBox[{"MF1", "+", RowBox[{ RowBox[{"1", "/", RowBox[{"(", RowBox[{"n", "-", "1"}], ")"}]}], "MF3"}]}], ")"}], ".", "F0"}], "]"}]}], ",", "nSow"}], "]"}]}]}], "Input", CellChangeTimes->{{3.736896775458201*^9, 3.736897017928162*^9}, { 3.736897140019915*^9, 3.7368972133246937`*^9}, 3.736897330374385*^9, { 3.736897418514921*^9, 3.7368974398564997`*^9}, {3.736897504599799*^9, 3.736897505309618*^9}, 3.73689771378489*^9, 3.7368977660223007`*^9, 3.736897876179329*^9, {3.7368979722606077`*^9, 3.736897973731619*^9}, { 3.736898209113369*^9, 3.7368982111326113`*^9}, 3.736898388043037*^9, { 3.736950039295978*^9, 3.7369500541127987`*^9}, {3.737032645577181*^9, 3.7370326473618813`*^9}, {3.737767701094491*^9, 3.737767705198186*^9}, 3.737767950205126*^9, {3.737768026897386*^9, 3.737768050828291*^9}, { 3.737768142801505*^9, 3.737768186415609*^9}, {3.7377682171243963`*^9, 3.737768303546154*^9}, {3.737768358710761*^9, 3.737768359626896*^9}, { 3.737768492939562*^9, 3.737768562916304*^9}, {3.7377685930574417`*^9, 3.737768733344892*^9}, {3.737768996650461*^9, 3.7377690144171267`*^9}, 3.737771406747766*^9, {3.737811443355631*^9, 3.737811520287348*^9}, { 3.737812886708503*^9, 3.737812887204925*^9}, {3.737813070621681*^9, 3.73781307188241*^9}, {3.7378152582677927`*^9, 3.7378152606362*^9}, { 3.737816759293934*^9, 3.73781676451654*^9}, {3.7378172052761106`*^9, 3.737817235858323*^9}, {3.73781730840983*^9, 3.7378173194441967`*^9}, { 3.737817395553035*^9, 3.7378174000084257`*^9}, {3.747391906264439*^9, 3.747391909137801*^9}, 3.7473945234777412`*^9, {3.747464822456502*^9, 3.7474648417199163`*^9}, {3.747464961658228*^9, 3.747464971829494*^9}, 3.747467035225884*^9, {3.747467077318948*^9, 3.7474670871866627`*^9}, { 3.747467117347424*^9, 3.74746719289563*^9}, {3.7474673728037863`*^9, 3.747467375142486*^9}, {3.747469286788288*^9, 3.747469341772045*^9}, { 3.747521325955853*^9, 3.747521353060357*^9}, {3.74752146660423*^9, 3.747521472248247*^9}, 3.747521530187982*^9, {3.747522160588524*^9, 3.747522179986586*^9}, {3.747522586093568*^9, 3.7475226324232607`*^9}, { 3.747522696485641*^9, 3.747522729185486*^9}, {3.7475227909637547`*^9, 3.747522792068034*^9}, 3.747522916640645*^9, {3.747523256247258*^9, 3.747523267633554*^9}, {3.7475599478371983`*^9, 3.747559957733121*^9}, 3.747561079098443*^9, {3.766262726362566*^9, 3.766262749807667*^9}, { 3.766262799503015*^9, 3.766262833370996*^9}, 3.766263416618491*^9, { 3.7662650414515*^9, 3.766265042223214*^9}, {3.7663159893132*^9, 3.766315991282627*^9}, 3.7663180692323217`*^9, {3.766318110533588*^9, 3.7663181284612293`*^9}, 3.766318169419314*^9, {3.766318215479927*^9, 3.766318260730084*^9}, 3.766318291801055*^9, {3.766318437228608*^9, 3.766318491476727*^9}, {3.766318601462373*^9, 3.766318604802565*^9}, 3.766319177825284*^9}, CellID->584389671,ExpressionUUID->"3aa9600a-451e-4df6-a8cf-2d10d6fff076"], Cell[BoxData[ RowBox[{ RowBox[{"DihedralToODE", "[", "H0_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"TrigRep", "=", RowBox[{"{", RowBox[{ RowBox[{"q", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", "\[Lambda]"}], "]"}], " ", RowBox[{"Cos", "[", "\[Phi]", "]"}]}]}], ",", RowBox[{"p", "\[Rule]", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"2", "\[Lambda]"}], "]"}], RowBox[{"Sin", "[", "\[Phi]", "]"}]}]}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"CosRep", " ", "=", " ", RowBox[{"{", RowBox[{ RowBox[{"Cos", "[", "_", "]"}], "\[Rule]", "Q"}], "}"}]}], ",", RowBox[{"SinRep", "=", RowBox[{"{", RowBox[{ RowBox[{"Sin", "[", "_", "]"}], "\[Rule]", "P"}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"P2Rep", "=", RowBox[{"P", "\[Rule]", RowBox[{"Sqrt", "[", RowBox[{"1", "-", RowBox[{"Q", "^", "2"}]}], "]"}]}]}], ",", RowBox[{"vars", "=", RowBox[{"{", RowBox[{"\[Lambda]", ",", "\[Phi]"}], "}"}]}], ",", "H1", ",", "\[IndentingNewLine]", "QRep", ",", "\[Lambda]\[Phi]Dot", ",", "Den", ",", "\[Lambda]DotSq", ",", "\[Lambda]DDot", ",", "dtForms", ",", "\[IndentingNewLine]", "InvMs", ",", "RedForms", ",", RowBox[{"PFCs", "=", RowBox[{"{", "}"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"H1", "=", RowBox[{"Expand", "[", RowBox[{"TrigReduce", "[", RowBox[{"H0", "/.", "TrigRep"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"QRep", "=", RowBox[{ RowBox[{"Solve", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"(*", "2", "*)"}], RowBox[{"H1", "/.", "CosRep"}], ")"}], "\[Equal]", "\[Alpha]"}], ",", "Q"}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Sow", "[", RowBox[{"{", RowBox[{"H1", ",", "QRep"}], "}"}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"\[Lambda]\[Phi]Dot", "=", RowBox[{"Factor", "[", RowBox[{ RowBox[{ RowBox[{"Times", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"D", "[", RowBox[{"H1", ",", "#"}], "]"}], "&"}], "/@", RowBox[{"Reverse", "[", "vars", "]"}]}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "1"}], "}"}]}], "]"}], "/.", "CosRep"}], "/.", "QRep"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Den", "=", RowBox[{"Numerator", "[", RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Sow", "[", "Den", "]"}], ";", RowBox[{"Sow", "[", "\[Lambda]\[Phi]Dot", "]"}], ";", "\[IndentingNewLine]", RowBox[{"\[Lambda]DotSq", "=", RowBox[{"Factor", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "1", "]"}], "]"}], "^", "2"}], "/.", "SinRep"}], "/.", "P2Rep"}], "/.", "QRep"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"\[Lambda]DDot", "=", RowBox[{"Factor", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "1", "]"}], "]"}], ",", "#"}], "]"}], "&"}], "/@", "vars"}], ",", "\[Lambda]\[Phi]Dot"}], "]"}], "/.", "SinRep"}], "/.", "P2Rep"}], "/.", "CosRep"}], "/.", "QRep"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"InvMs", "=", RowBox[{"MatrixInvariants", "[", RowBox[{"Den", ",", "\[Lambda]DotSq", ",", "\[Lambda]DDot"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"dtForms", "=", RowBox[{"{", "1", "}"}]}], ";", RowBox[{"RedForms", "=", RowBox[{"{", RowBox[{"CoefficientList", "[", RowBox[{"Den", ",", "\[Lambda]", ",", RowBox[{"Length", "[", RowBox[{"InvMs", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], "]"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"While", "[", RowBox[{ RowBox[{"SameQ", "[", RowBox[{"PFCs", ",", RowBox[{"{", "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"dtForms", "=", RowBox[{"Append", "[", RowBox[{"dtForms", ",", RowBox[{ RowBox[{ RowBox[{"Factor", "[", " ", RowBox[{ RowBox[{ RowBox[{"D", "[", RowBox[{"#", ",", "\[Alpha]"}], "]"}], "*", RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "2", "]"}], "]"}]}], "+", RowBox[{"(*", RowBox[{"(", RowBox[{"1", "/", "2"}], ")"}], "*)"}], " ", RowBox[{"D", "[", RowBox[{"#", ",", "\[Lambda]"}], "]"}]}], " ", "\[IndentingNewLine]", "]"}], "&"}], "@", RowBox[{"Cancel", "[", RowBox[{ RowBox[{"dtForms", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], "/", RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}]}], " ", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"(*", " ", RowBox[{"Possibly", " ", "Slow", " ", "Here"}], " ", "*)"}], "\[IndentingNewLine]", RowBox[{"RedForms", "=", RowBox[{"Append", "[", RowBox[{"RedForms", ",", "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{"Plus", "@@", RowBox[{"Map", "[", RowBox[{ RowBox[{ RowBox[{"With", "[", RowBox[{ RowBox[{"{", RowBox[{"Pow", "=", RowBox[{"DenPow", "[", RowBox[{ RowBox[{"Denominator", "[", "#", "]"}], ",", "Den"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"HermiteReduce", "[", RowBox[{ RowBox[{"InvMs", "[", RowBox[{"[", "1", "]"}], "]"}], ",", RowBox[{"InvMs", "[", RowBox[{"[", "2", "]"}], "]"}], ",", RowBox[{"InvMs", "[", RowBox[{"[", "3", "]"}], "]"}], ",", "\[IndentingNewLine]", "Pow", ",", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{"Cancel", "[", RowBox[{"#", " ", RowBox[{"Den", "^", "Pow"}]}], "]"}], ",", "\[Lambda]", ",", RowBox[{"Length", "[", RowBox[{"InvMs", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "dtForms", "]"}]}], " ", "]"}]}], "\[IndentingNewLine]", "]"}], "&"}], ",", RowBox[{"PartialFrac", "[", RowBox[{ RowBox[{"dtForms", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], ",", RowBox[{"DenPow", "[", RowBox[{ RowBox[{"Denominator", "[", RowBox[{"dtForms", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], "]"}], ",", "Den"}], "]"}], ",", "\[IndentingNewLine]", "Den", ",", RowBox[{"Length", "[", RowBox[{"InvMs", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], " ", "]"}], ",", RowBox[{"{", "1", "}"}]}], "]"}]}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"PFCs", "=", RowBox[{"NullSpace", "[", RowBox[{"Transpose", "[", "RedForms", "]"}], "]"}]}]}]}], "]"}], ";", RowBox[{"Sow", "[", "dtForms", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Cancel", "[", RowBox[{ RowBox[{ RowBox[{"Divide", "[", RowBox[{"#", ",", RowBox[{"PolynomialGCD", "@@", "#"}]}], "]"}], "&"}], "@", RowBox[{"PFCs", "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.765710052883051*^9, 3.7657101896535263`*^9}, { 3.765710226352152*^9, 3.765710463629685*^9}, {3.7657108024527597`*^9, 3.765710803053232*^9}, {3.765710845596814*^9, 3.7657108801037703`*^9}, 3.7657157604657593`*^9, 3.765715920903852*^9, {3.765721189157559*^9, 3.7657212029589863`*^9}, 3.765734407093598*^9, {3.765735144011642*^9, 3.765735158350052*^9}, {3.7658097122963657`*^9, 3.765809736382395*^9}, { 3.765810824144861*^9, 3.765810828688645*^9}, {3.765811485023223*^9, 3.765811525206077*^9}, {3.76581162141566*^9, 3.7658116535681057`*^9}, { 3.7658131635383673`*^9, 3.7658131748936253`*^9}, {3.766235047507238*^9, 3.7662350507715807`*^9}, {3.7662495030889673`*^9, 3.766249510063615*^9}, { 3.766249618238503*^9, 3.7662496674910192`*^9}, {3.7662497766052933`*^9, 3.766249777725445*^9}, {3.7662498091303997`*^9, 3.766249891267749*^9}, { 3.766249968249165*^9, 3.766250069444158*^9}, 3.766250524091585*^9, { 3.766251071937254*^9, 3.7662510768802643`*^9}, 3.766251967712316*^9, { 3.766259476896339*^9, 3.766259477845953*^9}, {3.766259682878667*^9, 3.766259689982027*^9}, 3.766259798631774*^9, {3.766260030187752*^9, 3.766260131865903*^9}, {3.766260175267292*^9, 3.7662602289308023`*^9}, { 3.7662603161797733`*^9, 3.766260326257704*^9}, {3.766260360787253*^9, 3.766260366655354*^9}, {3.7662604302160473`*^9, 3.766260436994215*^9}, { 3.766260545762699*^9, 3.766260577188519*^9}, {3.76626061341148*^9, 3.7662606485008097`*^9}, {3.7662607429188843`*^9, 3.766260810906382*^9}, { 3.76626111424432*^9, 3.766261131987308*^9}, {3.7662611657608557`*^9, 3.766261166467278*^9}, {3.766261455179093*^9, 3.766261464012595*^9}, { 3.766261505410293*^9, 3.76626160041247*^9}, {3.76626179863523*^9, 3.7662617990023212`*^9}, 3.766261843145262*^9, {3.766261930603963*^9, 3.76626193653498*^9}, {3.7662619742363873`*^9, 3.76626201025673*^9}, { 3.7662624381830673`*^9, 3.766262460129108*^9}, {3.766262510130644*^9, 3.766262624759871*^9}, {3.766262864718191*^9, 3.766263035626192*^9}, { 3.766263067462378*^9, 3.766263098869466*^9}, {3.766263161351656*^9, 3.766263220428046*^9}, 3.766263427348225*^9, {3.766263617286929*^9, 3.766263724227304*^9}, {3.766263768297399*^9, 3.766263801165781*^9}, { 3.7662638326196833`*^9, 3.766263852891111*^9}, {3.766263893305523*^9, 3.766263919691883*^9}, {3.766263973899976*^9, 3.766263988629334*^9}, { 3.766264152792726*^9, 3.766264189628563*^9}, {3.766264280586081*^9, 3.7662642880474453`*^9}, {3.766264371022018*^9, 3.7662643975078983`*^9}, { 3.766264429259777*^9, 3.766264478531111*^9}, {3.766264519826579*^9, 3.766264568513513*^9}, {3.766264901025318*^9, 3.76626490686532*^9}, { 3.766264941217218*^9, 3.766264941551996*^9}, {3.76626509501958*^9, 3.766265095467626*^9}, {3.7662651502951183`*^9, 3.766265179714691*^9}, { 3.766265239194849*^9, 3.76626527342312*^9}, {3.766265814946056*^9, 3.766265840846335*^9}, {3.766265968603203*^9, 3.766265991128043*^9}, { 3.766266049312324*^9, 3.766266067780614*^9}, {3.766266110668915*^9, 3.766266123793103*^9}, {3.766266183932393*^9, 3.7662661851001*^9}, 3.766266566254414*^9, 3.766266751909814*^9, {3.766266973232827*^9, 3.766266983467822*^9}, {3.766267032271408*^9, 3.766267053066463*^9}, { 3.766267141667412*^9, 3.76626718506833*^9}, {3.7662672211041107`*^9, 3.766267306573702*^9}, {3.76626733751343*^9, 3.7662673684229927`*^9}, { 3.766267504722587*^9, 3.766267510113196*^9}, {3.766268556277383*^9, 3.7662685685724993`*^9}, {3.766268667909378*^9, 3.76626872958281*^9}, { 3.7662687870765533`*^9, 3.766268792352561*^9}, {3.766268827955954*^9, 3.7662688339578657`*^9}, 3.766268890956382*^9, {3.7662689292028713`*^9, 3.766269113901157*^9}, {3.766269146080772*^9, 3.7662691830218697`*^9}, { 3.766269233136024*^9, 3.7662692674554787`*^9}, {3.766269337233912*^9, 3.766269341909741*^9}, {3.7662693981989517`*^9, 3.766269431965331*^9}, { 3.7662694691686497`*^9, 3.7662694707554827`*^9}, {3.766269591964044*^9, 3.7662695972550507`*^9}, {3.7662697208728933`*^9, 3.766269731405334*^9}, { 3.766269814490471*^9, 3.766269817400117*^9}, 3.766269857032361*^9, { 3.766269945932775*^9, 3.766269954788682*^9}, {3.7662699977927303`*^9, 3.7662700102252398`*^9}, {3.7662700482875967`*^9, 3.766270049341001*^9}, 3.7662700826839857`*^9, {3.766270127978619*^9, 3.7662701679615507`*^9}, { 3.766270247463894*^9, 3.766270249384956*^9}, {3.7662705043480873`*^9, 3.766270511489789*^9}, 3.766271140342905*^9, {3.766315423417501*^9, 3.766315436626059*^9}, 3.766315886870592*^9, 3.766316345947226*^9, { 3.766316534008202*^9, 3.766316536472454*^9}, {3.76631660989765*^9, 3.766316624648514*^9}, {3.766316677126459*^9, 3.7663166927829113`*^9}, { 3.76631672996002*^9, 3.766316734202866*^9}, {3.766316786950407*^9, 3.766316790459434*^9}, {3.766316854301961*^9, 3.7663168953585*^9}, { 3.7663169419931803`*^9, 3.766316995082554*^9}, {3.766317117823846*^9, 3.766317155201723*^9}, {3.766317195661386*^9, 3.76631721045678*^9}, 3.766317305798462*^9, {3.7663185208212013`*^9, 3.766318530842949*^9}, { 3.766318688562462*^9, 3.7663187423847647`*^9}, {3.766318811835661*^9, 3.766318822152627*^9}, {3.7663195239808807`*^9, 3.766319529443647*^9}, { 3.766319799991745*^9, 3.766319808119876*^9}, {3.766527363233272*^9, 3.766527391500813*^9}, {3.7665274905870323`*^9, 3.766527505661978*^9}, { 3.7665287143358593`*^9, 3.766528718174081*^9}, {3.76666671188109*^9, 3.766666713715865*^9}, 3.766666765127109*^9, {3.766668587099697*^9, 3.766668600895529*^9}, 3.766669272864373*^9, {3.766669368052944*^9, 3.766669392981791*^9}, {3.7666694547706747`*^9, 3.7666694567038727`*^9}, 3.7666696138624973`*^9, 3.7666696876376333`*^9, 3.766669749896963*^9, { 3.7666698417352953`*^9, 3.7666698429484577`*^9}, {3.766669887505988*^9, 3.766669890180983*^9}, {3.7666700316450157`*^9, 3.766670038997661*^9}, { 3.766670668606249*^9, 3.7666707172090263`*^9}, {3.766670792471572*^9, 3.7666707962028437`*^9}, {3.7666708920336246`*^9, 3.766670917630041*^9}, { 3.766675731168522*^9, 3.766675734199853*^9}, {3.766677438532621*^9, 3.766677502794876*^9}, {3.76684416507999*^9, 3.766844175700659*^9}, { 3.796501224649686*^9, 3.7965012279252987`*^9}}, CellID->1338885042,ExpressionUUID->"791e1475-da47-49de-a819-32d1cddfbb9b"] }, Closed]], Cell[CellGroupData[{ Cell["Certificate Utilities", "Subsection", CellChangeTimes->{{3.796501331718048*^9, 3.7965013379530067`*^9}},ExpressionUUID->"d4fcf62a-3132-4e90-81f0-\ c1fad93f81e0"], Cell[BoxData[ RowBox[{ RowBox[{"CheckCert", "[", RowBox[{"PFCs_", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"H1_", ",", "QRep_"}], "}"}], ",", "Den_", ",", "\[Lambda]\[Phi]Dot_", ",", "dtForms_"}], "}"}], ",", "xCerts__"}], "}"}]}], "]"}], ":=", RowBox[{"With", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"cert", "=", RowBox[{"Factor", "[", RowBox[{"ReplaceAll", "[", RowBox[{ RowBox[{"Dot", "[", RowBox[{"PFCs", ",", RowBox[{"Factor", "[", RowBox[{"Total", "/@", RowBox[{"{", RowBox[{ RowBox[{"{", "0", "}"}], ",", "xCerts"}], "}"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"den", "\[Rule]", "Den"}], ",", RowBox[{"\[Lambda]Dot", "\[Rule]", RowBox[{"\[Lambda]\[Phi]Dot", "[", RowBox[{"[", "1", "]"}], "]"}]}]}], "}"}]}], "]"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\[Alpha] = H = \>\"", ",", "H1"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"\[Lambda]", ",", "\[Phi]"}], "}"}], ",", "\[Lambda]\[Phi]Dot", ",", "PFCs", ",", "cert", ",", "dtForms", ",", "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{"Plus", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"D", "[", RowBox[{"cert", ",", "#"}], "]"}], "&"}], "/@", RowBox[{"{", RowBox[{"\[Lambda]", ",", "\[Phi]"}], "}"}]}], ",", "\[IndentingNewLine]", "\[Lambda]\[Phi]Dot"}], "]"}], "/.", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"Cos", "[", "_", "]"}], "\[Rule]", "Q"}], ",", RowBox[{ RowBox[{"Sin", "[", "_", "]"}], "\[Rule]", "P"}]}], "}"}]}], "/.", RowBox[{"P", "\[Rule]", RowBox[{"Sqrt", "[", RowBox[{"1", "-", RowBox[{"Q", "^", "2"}]}], "]"}]}]}], "/.", "QRep"}], ",", "\[IndentingNewLine]", RowBox[{"dtForms", ".", "PFCs"}]}], "]"}], "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.766318931518196*^9, 3.766319079326076*^9}, { 3.766319110933446*^9, 3.766319251034343*^9}, {3.766319303618997*^9, 3.7663194134025583`*^9}, {3.76631947520988*^9, 3.7663195125086403`*^9}, { 3.7663195428709173`*^9, 3.7663197063467073`*^9}, {3.7663198894349813`*^9, 3.766319897578044*^9}, {3.766667876112763*^9, 3.7666678800397053`*^9}, { 3.766667915720872*^9, 3.766667916227004*^9}, {3.766668621586953*^9, 3.766668627423407*^9}, {3.766672620105234*^9, 3.766672636041172*^9}, { 3.766672813881917*^9, 3.7666728720514297`*^9}, {3.766672914114456*^9, 3.766672919953952*^9}, {3.766673380935666*^9, 3.766673381337111*^9}, { 3.766784663650075*^9, 3.7667846816765337`*^9}}, CellID->1889856845,ExpressionUUID->"11489841-1874-4a26-97bd-ecd70fdb4e33"], Cell[BoxData[ RowBox[{ RowBox[{"CheckCert", "[", RowBox[{"PFCs_", ",", RowBox[{"{", RowBox[{ RowBox[{"{", "V0_", "}"}], ",", "CertList__"}], "}"}]}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"cert", "=", RowBox[{"Factor", "[", RowBox[{"Dot", "[", RowBox[{"PFCs", ",", RowBox[{"Prepend", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Total", "@", RowBox[{"CertList", "[", RowBox[{"[", RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], "+", "1"}], ";;", RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}], "]"}]}], "&"}], "/@", " ", RowBox[{"Partition", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"FoldList", "[", RowBox[{"Plus", ",", "0", ",", RowBox[{"Range", "[", RowBox[{"1", ",", RowBox[{ RowBox[{"Length", "@", "PFCs"}], "-", "1"}]}], "]"}]}], "]"}], ",", "2", ",", "1"}], "]"}]}], ",", "0"}], "]"}]}], "]"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"dtForms", "=", RowBox[{ RowBox[{ RowBox[{"Divide", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ")"}], "^", "#"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"2", "#"}], "-", "1"}], ")"}], "!!"}]}], ",", RowBox[{"p", "^", RowBox[{"(", RowBox[{"2", "#"}], ")"}]}]}], "]"}], "&"}], "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{ RowBox[{"Length", "@", "PFCs"}], "-", "1"}]}], "]"}]}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Row", "[", RowBox[{"{", RowBox[{"\"\<\[Alpha] = 2H = \>\"", ",", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"2", "V0"}]}]}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"p", ",", "q"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"-", "V0"}], ",", "q"}], "]"}], ",", "p"}], "}"}], ",", "PFCs", ",", "cert", ",", "dtForms", ",", RowBox[{"Expand", "[", RowBox[{ RowBox[{"Expand", "[", RowBox[{"Times", "[", RowBox[{ RowBox[{"Plus", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Dot", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"D", "[", RowBox[{"cert", ",", "#"}], "]"}], "&"}], "/@", RowBox[{"{", RowBox[{"q", ",", "p"}], "}"}]}], ",", RowBox[{"{", RowBox[{"p", ",", RowBox[{"D", "[", RowBox[{ RowBox[{"-", "V0"}], ",", "q"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"Dot", "[", RowBox[{"PFCs", ",", "dtForms"}], " ", "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"p", "^", RowBox[{"(", RowBox[{ RowBox[{"2", RowBox[{"Length", "[", "PFCs", "]"}]}], "-", "2"}], ")"}]}]}], "]"}], "]"}], "/.", RowBox[{"p", "\[Rule]", RowBox[{"Sqrt", "[", RowBox[{"\[Alpha]", "-", RowBox[{"2", "V0"}]}], "]"}]}]}], "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.7475235816906013`*^9, 3.747523583115972*^9}, { 3.747523631119214*^9, 3.7475236822550583`*^9}, {3.747558932841284*^9, 3.747558997058176*^9}, {3.747559051980493*^9, 3.747559088807371*^9}, { 3.747559255041448*^9, 3.747559667206856*^9}, {3.747559805345439*^9, 3.7475598131988163`*^9}, {3.747559975847822*^9, 3.7475599782371197`*^9}, 3.747560086070579*^9, {3.747560169593107*^9, 3.7475601708290243`*^9}, { 3.7475602300111647`*^9, 3.747560232564752*^9}, {3.747560877133357*^9, 3.747560895003446*^9}, {3.747857762139038*^9, 3.7478577650490932`*^9}, { 3.747858279251286*^9, 3.747858311523882*^9}, 3.7478602777192373`*^9, { 3.7662289116457157`*^9, 3.766228917090885*^9}, {3.7666674703844213`*^9, 3.766667490742147*^9}, {3.7666679223498907`*^9, 3.7666679961129*^9}, { 3.766673042826887*^9, 3.766673188406082*^9}, {3.766673397998137*^9, 3.766673405429225*^9}, {3.766783601677628*^9, 3.7667836274647713`*^9}}, CellID->740842135,ExpressionUUID->"3e17ac77-3ee3-41cd-9b96-8e64e91d8d39"], Cell[BoxData[ RowBox[{ RowBox[{"DisplayCert", "[", RowBox[{"{", RowBox[{ "curves_", ",", "vars_", ",", "Dvars_", ",", "PFCs_", ",", "cert_", ",", "dtForms_", ",", "Check_"}], "}"}], "]"}], ":=", RowBox[{"Grid", "[", RowBox[{ RowBox[{"Map", "[", RowBox[{"Text", ",", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"\"\\"", ",", "curves"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"OverDot", "/@", "vars"}], ",", "\"\< = \>\"", ",", "Dvars"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"TraditionalForm", "[", OverscriptBox["C", "\[RightVector]"], "]"}], ",", "\"\< = \>\"", ",", "PFCs"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"TraditionalForm", "[", RowBox[{"Style", "[", RowBox[{ OverscriptBox["dt", "\[RightVector]"], ",", "Italic"}], "]"}], "]"}], ",", "\"\< = \>\"", ",", " ", "dtForms"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ RowBox[{"TraditionalForm", "[", StyleBox["G", FontWeight->"Bold"], StyleBox["]", FontWeight->"Bold"]}], StyleBox[",", FontWeight->"Bold"], StyleBox["\"\< = \>\"", FontWeight->"Bold"], ",", "cert"}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{ StyleBox["Check", FontWeight->"Bold"], ",", "\"\< = \>\"", ",", RowBox[{"TraditionalForm", "[", RowBox[{ RowBox[{ OverscriptBox["C", "\[RightVector]"], "\[CenterDot]", RowBox[{"Style", "[", RowBox[{ OverscriptBox["dt", "\[RightVector]"], ",", "Italic"}], "]"}]}], "+", RowBox[{"OverDot", "[", "G", "]"}]}], "]"}]}], "}"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Row", "[", RowBox[{"{", RowBox[{"Check", ",", "\"\< = \>\"", ",", "\[IndentingNewLine]", RowBox[{"Dot", "[", RowBox[{"PFCs", ",", RowBox[{ RowBox[{ RowBox[{"TraditionalForm", "[", RowBox[{"D", "[", RowBox[{ RowBox[{"T", "[", "\[Alpha]", "]"}], ",", RowBox[{"{", RowBox[{"\[Alpha]", ",", "#"}], "}"}]}], "]"}], "]"}], "&"}], "/@", RowBox[{"Range", "[", RowBox[{"0", ",", RowBox[{ RowBox[{"Length", "[", "PFCs", "]"}], "-", "1"}]}], "]"}]}]}], "]"}]}], "}"}], "]"}]}], "}"}]}], "\[IndentingNewLine]", "}"}], ",", RowBox[{"{", "2", "}"}]}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "All"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.766673322471122*^9, 3.766673360417754*^9}, { 3.76667341037805*^9, 3.766673588225358*^9}, {3.766673687141396*^9, 3.7666737901309557`*^9}, {3.76667382377275*^9, 3.766673844774234*^9}, 3.766673876833435*^9, {3.766673919039166*^9, 3.766674027706408*^9}, { 3.766674099998542*^9, 3.766674100835438*^9}, {3.766674146922845*^9, 3.7666742433645267`*^9}, {3.766674284615509*^9, 3.7666743081956882`*^9}, { 3.7666743721386957`*^9, 3.766674444620905*^9}, {3.766674483612145*^9, 3.76667457782405*^9}, {3.76667464967417*^9, 3.766674749709507*^9}, { 3.7666748311867533`*^9, 3.766674857336787*^9}, {3.7666749245726213`*^9, 3.766674953046278*^9}, {3.766675004557221*^9, 3.766675043995769*^9}, { 3.7666750776508093`*^9, 3.766675193233334*^9}, {3.766675239235035*^9, 3.766675263484583*^9}, {3.766764007552099*^9, 3.766764015496463*^9}, { 3.766770427462933*^9, 3.766770430244382*^9}, {3.766782586938857*^9, 3.766782588739777*^9}, {3.7667828775074987`*^9, 3.7667828830333757`*^9}, { 3.766783273692132*^9, 3.766783305633017*^9}, {3.766783368770996*^9, 3.766783393887184*^9}, {3.766783560745708*^9, 3.7667835658306293`*^9}, { 3.7667836896313477`*^9, 3.766783882848583*^9}, {3.7667839302845907`*^9, 3.766784051503867*^9}, {3.766784086405901*^9, 3.766784461603121*^9}, { 3.766784506120685*^9, 3.76678451258875*^9}, {3.766784569336697*^9, 3.766784612511456*^9}, {3.766784648094551*^9, 3.766784657593122*^9}, { 3.766784733293301*^9, 3.766784778187422*^9}, {3.766784874346405*^9, 3.7667850290671587`*^9}, {3.7668446275329123`*^9, 3.766844706782954*^9}, { 3.7668452070192127`*^9, 3.766845233406763*^9}}, CellID->1987044371,ExpressionUUID->"77788d2e-5823-43c3-ba54-5f0dc1fafaca"] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell["Data from Table IV.", "Section", CellChangeTimes->{{3.7965035273503304`*^9, 3.7965035382312517`*^9}},ExpressionUUID->"f4004094-3e3e-455d-b665-\ 335480989a05"], Cell[CellGroupData[{ Cell["Hamiltonians", "Subsection", CellChangeTimes->{{3.796503633729885*^9, 3.796503635495373*^9}},ExpressionUUID->"ee2d9a20-726c-4726-a501-\ cdddb031634b"], Cell[BoxData[ RowBox[{ RowBox[{"HHyperelliptic", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"1", "/", "4"}], RowBox[{"q", "^", "4"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"4", "/", "27"}], "]"}], RowBox[{"q", "^", "3"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"4", "/", "27"}], RowBox[{"q", "^", "6"}]}]}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.796501402694356*^9, 3.796501483233934*^9}, { 3.7965017729910803`*^9, 3.796501798319014*^9}},ExpressionUUID->"cfe24eb8-0475-43a4-ab17-\ 756a7370543b"], Cell[BoxData[ RowBox[{ RowBox[{"HDihedral", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"p", "^", "2"}], " ", RowBox[{"q", "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], RowBox[{"(", RowBox[{"1", "-", RowBox[{ RowBox[{"(", RowBox[{"1", "/", "4"}], ")"}], RowBox[{"q", "^", "2"}]}]}], ")"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "+", RowBox[{ RowBox[{"Sqrt", "[", RowBox[{"4", "/", "27"}], "]"}], RowBox[{"(", RowBox[{ RowBox[{"3", " ", RowBox[{"p", "^", "2"}], " ", "q"}], "-", RowBox[{"q", "^", "3"}]}], ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"(", RowBox[{"4", "/", "27"}], ")"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], "^", "3"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"4", "/", "27"}], ")"}], RowBox[{"p", "^", "2"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "-", RowBox[{"3", RowBox[{"q", "^", "2"}]}]}], ")"}], "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"(", RowBox[{"1", "/", "4"}], ")"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], "^", "2"}]}], "+", RowBox[{"2", RowBox[{"p", "^", "2"}], RowBox[{"q", "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"(", RowBox[{"1", "/", "4"}], ")"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], "^", "2"}]}], "+", RowBox[{"\[Epsilon]", " ", RowBox[{"p", "^", "2"}], " ", RowBox[{"q", "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}], "-", RowBox[{ RowBox[{"(", RowBox[{"1", "/", "4"}], ")"}], RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], "^", "2"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"1", "/", "4"}], ")"}], "\[Epsilon]", RowBox[{"(", RowBox[{ RowBox[{"p", "^", "2"}], "+", RowBox[{"q", "^", "2"}]}], ")"}], RowBox[{"p", "^", "2"}]}]}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.796501780774166*^9, 3.796501858274177*^9}, { 3.796501936424087*^9, 3.79650194563337*^9}, {3.796502094825283*^9, 3.796502135069335*^9}, {3.796502193515037*^9, 3.7965022912487583`*^9}, { 3.796502437955894*^9, 3.796502476307021*^9}, 3.807988020636558*^9},ExpressionUUID->"7957cc05-318f-45a8-9cdd-\ d1f3ec8753d2"], Cell[BoxData[ RowBox[{"Expand", "[", RowBox[{"TrigReduce", "[", RowBox[{ RowBox[{"HDihedral", "[", RowBox[{"[", "1", "]"}], "]"}], "/.", "TrigRep"}], "]"}], "]"}]], "Input",\ CellChangeTimes->{{3.808477389876398*^9, 3.808477430672247*^9}},ExpressionUUID->"f9fdc6b9-2775-4611-a87d-\ b10d17dc8ace"], Cell[BoxData[{ RowBox[{"DihedralToODE", "[", RowBox[{"HDihedral", "[", RowBox[{"[", "6", "]"}], "]"}], "]"}], "\[IndentingNewLine]", RowBox[{"DihedralToODE", "[", RowBox[{"HDihedral", "[", RowBox[{"[", "7", "]"}], "]"}], "]"}]}], "Input", CellChangeTimes->{ 3.8079737883371267`*^9, {3.807987449989455*^9, 3.8079874513378553`*^9}},ExpressionUUID->"02d8901f-3783-4dd6-b6e0-\ 0d058e9b1896"], Cell[BoxData[ RowBox[{"\[IndentingNewLine]", RowBox[{ RowBox[{"ODE", "=", RowBox[{"{", RowBox[{ RowBox[{"2", "-", RowBox[{"3", " ", "\[Alpha]"}], "-", RowBox[{"\[Epsilon]", RowBox[{"(", RowBox[{"1", "-", RowBox[{"3", " ", "\[Alpha]"}]}], " ", ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"4", " ", RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", RowBox[{"4", " ", "\[Alpha]"}], "-", RowBox[{"3", " ", SuperscriptBox["\[Alpha]", "2"]}], "-", RowBox[{"2", " ", "\[Alpha]", " ", "\[Epsilon]"}], "+", RowBox[{"3", " ", SuperscriptBox["\[Alpha]", "2"], " ", "\[Epsilon]"}]}], ")"}]}], ",", "\[IndentingNewLine]", RowBox[{"4", " ", RowBox[{"(", RowBox[{ RowBox[{"-", "1"}], "+", "\[Alpha]"}], ")"}], " ", "\[Alpha]", " ", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]", "+", RowBox[{"\[Alpha]", " ", "\[Epsilon]"}]}], ")"}]}]}], "}"}]}], ";"}]}]], "Input", CellChangeTimes->{{3.807994670357709*^9, 3.807994710526123*^9}, { 3.80804538556638*^9, 3.808045387507715*^9}},ExpressionUUID->"8b4cc28c-7207-45fe-be9e-\ a47db49bbc3a"], Cell[BoxData[ RowBox[{"\[IndentingNewLine]", RowBox[{"Expand", "[", RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"ODE", "[", RowBox[{"[", "3", "]"}], "]"}], ",", "\[Alpha]"}], "]"}], "-", RowBox[{"ODE", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.8080560261140413`*^9, 3.808056040788372*^9}},ExpressionUUID->"c6e3ccef-60cc-4aec-8906-\ 83b8a63c3951"], Cell[BoxData[ RowBox[{"Factor", "@", RowBox[{"CoefficientList", "[", RowBox[{ RowBox[{ RowBox[{"TrigReduce", "[", RowBox[{"Normal", "[", RowBox[{"Series", "[", RowBox[{ RowBox[{"1", "/", RowBox[{"Sqrt", "[", RowBox[{"1", "-", "\[Alpha]", "+", RowBox[{"\[Alpha]", " ", "\[Epsilon]", " ", RowBox[{ RowBox[{"Sin", "[", "\[Phi]", "]"}], "^", "2"}]}]}], " ", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\[Alpha]", ",", "0", ",", "4"}], "}"}]}], "]"}], "]"}], "]"}], "/.", RowBox[{ RowBox[{"Cos", "[", "_", "]"}], "\[Rule]", "0"}]}], ",", "\[Alpha]"}], "]"}]}]], "Input", CellChangeTimes->{{3.808056331905756*^9, 3.808056394419767*^9}},ExpressionUUID->"3ead3d1d-eeb6-4c06-ab46-\ 1adcb093208a"], Cell[BoxData[ RowBox[{"Expand", "[", RowBox[{ RowBox[{"Factor", "[", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], "ODE"}], "/.", RowBox[{"{", RowBox[{ RowBox[{"\[Alpha]", "\[Rule]", RowBox[{"1", "-", "\[Alpha]"}]}], ",", RowBox[{"\[Epsilon]", "\[Rule]", RowBox[{"1", "/", "\[Epsilon]"}]}]}], "}"}]}], ")"}], "\[Epsilon]"}], "]"}], "-", "ODE"}], "]"}]], "Input", CellChangeTimes->{{3.808045392976671*^9, 3.8080454460538588`*^9}},ExpressionUUID->"ee0e4001-5a6b-4e15-8fd1-\ 748f4873b84d"], Cell[BoxData[ RowBox[{ RowBox[{"HTops", "=", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"a", " ", RowBox[{"X", "^", "2"}]}], "+", RowBox[{"b", " ", RowBox[{"Y", "^", "2"}]}], "+", RowBox[{"c", " ", RowBox[{"Z", "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Z", "^", "3"}], "+", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"Sqrt", "[", "2", "]"}], "/", "2"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{"X", "^", "3"}], "-", RowBox[{"3", "X", " ", RowBox[{"Y", "^", "2"}]}]}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{"3", "/", "2"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"X", "^", "2"}], " ", "Z"}], "+", RowBox[{ RowBox[{"Y", "^", "2"}], "Z"}]}], ")"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"4", RowBox[{ RowBox[{"(", RowBox[{"X", " ", "Y"}], ")"}], "^", "2"}]}], "+", RowBox[{"4", RowBox[{ RowBox[{"(", RowBox[{"Y", " ", "Z"}], ")"}], "^", "2"}]}], "+", RowBox[{"4", RowBox[{ RowBox[{"(", RowBox[{"Z", " ", "X"}], ")"}], "^", "2"}]}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Z", "^", "6"}], "-", RowBox[{"5", RowBox[{"(", RowBox[{ RowBox[{"X", "^", "2"}], "+", RowBox[{"Y", "^", "2"}]}], ")"}], RowBox[{"Z", "^", "4"}]}], "+", RowBox[{"5", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{"X", "^", "2"}], "+", RowBox[{"Y", "^", "2"}]}], ")"}], "^", "2"}], RowBox[{"Z", "^", "2"}]}], "-", RowBox[{"2", RowBox[{"(", RowBox[{ RowBox[{"X", "^", "4"}], "-", RowBox[{"10", RowBox[{"X", "^", "2"}], " ", RowBox[{"Y", "^", "2"}]}], "+", RowBox[{"5", RowBox[{"Y", "^", "4"}]}]}], ")"}], "X", " ", "Z"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"1", "/", "3"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{"X", "^", "4"}], "+", RowBox[{"Y", "^", "4"}], "+", RowBox[{"Z", "^", "4"}]}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{"X", " ", "Y", " ", "Z"}], ")"}], "^", "2"}], "-", RowBox[{ RowBox[{"(", RowBox[{"2", "/", "27"}], ")"}], RowBox[{"(", RowBox[{ RowBox[{"X", "^", "2"}], "+", RowBox[{"Y", "^", "2"}], "+", RowBox[{"Z", "^", "2"}]}], ")"}]}]}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.796502545504197*^9, 3.796502766278756*^9}, { 3.796502856852923*^9, 3.796502897738605*^9}, {3.796502975474814*^9, 3.796502976201473*^9}},ExpressionUUID->"dc6d11e3-b14b-4017-9883-\ 2f3807554d59"] }, Open ]], Cell[CellGroupData[{ Cell["ODE Coefficients", "Subsection", CellChangeTimes->{{3.7965036430720043`*^9, 3.796503645826538*^9}},ExpressionUUID->"a46b3473-5759-421f-9901-\ ee054576bf09"], Cell[BoxData[ RowBox[{ RowBox[{"HODEs", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"3", ",", RowBox[{ RowBox[{"-", "16"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"5", ",", RowBox[{ RowBox[{"-", "36"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"5", "\[Alpha]"}], ",", RowBox[{ RowBox[{"-", "9"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", RowBox[{"\[Alpha]", "^", "2"}]}], ")"}]}]}], "}"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.796503729033053*^9, 3.796503840699198*^9}},ExpressionUUID->"1646f9cc-2106-49c8-a69c-\ 2b9229735b94"], Cell[BoxData[ RowBox[{ RowBox[{"DODEs", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1", ",", RowBox[{ RowBox[{"-", "4"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", RowBox[{ RowBox[{"-", "4"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", RowBox[{ RowBox[{"-", "9"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"8", "\[Alpha]"}], ",", RowBox[{ RowBox[{"-", "9"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", RowBox[{"\[Alpha]", "^", "2"}]}], ")"}]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"3", "\[Alpha]"}], ",", RowBox[{ RowBox[{"-", "4"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", RowBox[{"\[Alpha]", "^", "2"}]}], ")"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "\[Alpha]", RowBox[{"(", RowBox[{"\[Epsilon]", "-", "1"}], ")"}]}], "-", "\[Epsilon]", "+", "2"}], ",", RowBox[{ RowBox[{"-", "4"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"1", "-", "\[Alpha]", "+", RowBox[{"\[Alpha]", " ", "\[Epsilon]"}]}], ")"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"3", "\[Alpha]", RowBox[{"(", RowBox[{"\[Epsilon]", "-", "1"}], ")"}]}], "-", "\[Epsilon]", "+", "2"}], ",", RowBox[{ RowBox[{"-", "4"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"1", "-", "\[Alpha]", "+", RowBox[{"\[Alpha]", " ", "\[Epsilon]"}]}], ")"}]}]}], "}"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.7965038415558653`*^9, 3.796504054996931*^9}},ExpressionUUID->"a5f078eb-7fef-41a3-82c6-\ 0118c1d8373d"], Cell[BoxData[ RowBox[{ RowBox[{"SODEs", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"a", "+", "b", "+", "c", "-", RowBox[{"3", "\[Alpha]"}]}], ",", RowBox[{"4", RowBox[{"(", RowBox[{"a", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"b", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"c", "-", "\[Alpha]"}], ")"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"8", "\[Alpha]"}], ",", RowBox[{ RowBox[{"-", "9"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", RowBox[{"\[Alpha]", "^", "2"}]}], ")"}]}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"-", RowBox[{"{", RowBox[{ RowBox[{"9", RowBox[{"(", RowBox[{"4", "-", RowBox[{"5", "\[Alpha]"}]}], ")"}]}], ",", RowBox[{ RowBox[{"-", "16"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"4", "-", RowBox[{"3", "\[Alpha]"}]}], ")"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"-", RowBox[{"{", RowBox[{ RowBox[{"5", RowBox[{"(", RowBox[{"5", "-", RowBox[{"21", "\[Alpha]"}]}], ")"}]}], ",", RowBox[{"4", "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"5", "+", RowBox[{"27", "\[Alpha]"}]}], ")"}]}]}], "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"5", RowBox[{"(", RowBox[{"1190", "-", RowBox[{"13149", "\[Alpha]"}], "+", RowBox[{"18954", RowBox[{"\[Alpha]", "^", "2"}]}]}], ")"}]}], ",", RowBox[{ RowBox[{"-", "36"}], "\[Alpha]", RowBox[{"(", RowBox[{"1", "-", "\[Alpha]"}], ")"}], RowBox[{"(", RowBox[{"7", "-", RowBox[{"27", "\[Alpha]"}]}], ")"}], RowBox[{"(", RowBox[{"5", "-", RowBox[{"54", "\[Alpha]"}]}], ")"}]}]}], "}"}]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.7965040565462227`*^9, 3.796504232188628*^9}, { 3.7965044800369997`*^9, 3.7965045003542356`*^9}},ExpressionUUID->"ffee43a2-0291-442e-9899-\ 10f3570e597e"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{ RowBox[{"Factor", "[", RowBox[{"Expand", "[", RowBox[{"-", RowBox[{"DihedralToODE", "[", RowBox[{ RowBox[{"#", "/.", "ZTrigRep"}], "/.", "Z\[Lambda]Rep"}], "]"}]}], "]"}], "]"}], "&"}], "/@", RowBox[{"{", RowBox[{ RowBox[{"HTops", "[", RowBox[{"[", "2", "]"}], "]"}], ",", RowBox[{"2", RowBox[{"(", RowBox[{ RowBox[{"X", "^", "4"}], "+", RowBox[{"Y", "^", "4"}], "+", RowBox[{"Z", "^", "4"}]}], ")"}]}], ",", RowBox[{"HTops", "[", RowBox[{"[", RowBox[{"-", "2"}], "]"}], "]"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.812042680833873*^9, 3.812042707017282*^9}, { 3.812042814369092*^9, 3.812042829672073*^9}, {3.812042930652432*^9, 3.8120429832420397`*^9}, {3.812043130153528*^9, 3.812043146961458*^9}},ExpressionUUID->"e3a965ff-c1ef-4d01-85fe-\ 147f783b7358"], Cell[BoxData[ RowBox[{"SphereCerts", "=", RowBox[{ RowBox[{ RowBox[{"AbsoluteTiming", "[", RowBox[{"DisplayCert", "[", "\[IndentingNewLine]", RowBox[{"CheckCert", "@@", RowBox[{"Reap", "[", RowBox[{"DihedralToODE", "[", RowBox[{ RowBox[{"#", "/.", "ZTrigRep"}], "/.", "Z\[Lambda]Rep"}], "]"}], "]"}]}], "]"}], "]"}], "&"}], "/@", "HTops"}]}]], "Input",ExpressionUU\ ID->"54a760d2-dc3b-4b85-8f30-24a90b01930e"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["Table Check", "Section", CellChangeTimes->{{3.7965013748433*^9, 3.796501376923563*^9}},ExpressionUUID->"207a167c-4848-407d-9698-\ 409d5773ed41"], Cell[BoxData[ RowBox[{ RowBox[{"HyperellipticCerts", "=", RowBox[{ RowBox[{ RowBox[{"AbsoluteTiming", "[", RowBox[{"DisplayCert", "[", RowBox[{"CheckCert", "@@", RowBox[{"Reap", "[", RowBox[{"HyperellipticToODE", "[", RowBox[{ RowBox[{"(", RowBox[{"#", "-", RowBox[{"p", "^", "2"}]}], ")"}], "/", "2"}], "]"}], "]"}]}], "]"}], "]"}], "&"}], "/@", "HHyperelliptic"}]}], ";"}]], "Input", CellChangeTimes->{{3.7965015283580017`*^9, 3.796501548563344*^9}, { 3.796501638599524*^9, 3.796501692336226*^9}, {3.7965033613666286`*^9, 3.796503373364381*^9}, 3.796503455252392*^9, 3.796503548623136*^9},ExpressionUUID->"0396f826-f805-4936-a726-\ 1f57e02981c1"], Cell[BoxData[ RowBox[{"DihedralCerts", "=", RowBox[{ RowBox[{ RowBox[{"AbsoluteTiming", "[", RowBox[{"DisplayCert", "[", RowBox[{"CheckCert", "@@", RowBox[{"Reap", "[", RowBox[{"DihedralToODE", "[", "#", "]"}], "]"}]}], "]"}], "]"}], "&"}], "/@", "HDihedral"}]}]], "Input", CellChangeTimes->{{3.7965033757478733`*^9, 3.7965034044720097`*^9}, { 3.796503457607399*^9, 3.796503463481971*^9}, 3.807973069404907*^9},ExpressionUUID->"2d06a771-0600-453f-89ea-\ d099d1c6c438"], Cell[BoxData["ZTrigRep"], "Input",ExpressionUUID->"03d14244-0e38-478d-8646-fb89bed132cc"], Cell[BoxData[ RowBox[{ RowBox[{"HTops", "[", RowBox[{"[", "1", "]"}], "]"}], "/.", "ZTrigRep"}]], "Input", CellChangeTimes->{{3.8084241065020647`*^9, 3.8084241166231337`*^9}},ExpressionUUID->"45e57709-f8f2-40c1-b4e2-\ 5403639e987e"], Cell[BoxData["Z\[Lambda]Rep"], "Input",ExpressionUUID->"1d7bb1a7-47b3-41a2-8fbd-552a8a8c6328"], Cell[BoxData[ RowBox[{"SphereCerts", "=", RowBox[{ RowBox[{ RowBox[{"AbsoluteTiming", "[", RowBox[{"DisplayCert", "[", "\[IndentingNewLine]", RowBox[{"CheckCert", "@@", RowBox[{"Reap", "[", RowBox[{"DihedralToODE", "[", RowBox[{ RowBox[{"#", "/.", "ZTrigRep"}], "/.", "Z\[Lambda]Rep"}], "]"}], "]"}]}], "]"}], "]"}], "&"}], "/@", "HTops"}]}]], "Input", CellChangeTimes->{{3.796502850857647*^9, 3.79650285304478*^9}, { 3.7965029398331738`*^9, 3.796502985247961*^9}, 3.796503318596637*^9, { 3.796503407485177*^9, 3.796503425191543*^9}, {3.796503468737793*^9, 3.79650348846166*^9}, {3.796503550424807*^9, 3.7965035524222383`*^9}, 3.808424084440124*^9},ExpressionUUID->"232119c7-44dc-43c4-9e30-\ 5a604f3a6500"], Cell[BoxData[ RowBox[{"Grid", "[", RowBox[{ RowBox[{"Join", "[", RowBox[{"HyperellipticCerts", ",", "DihedralCerts", ",", "SphereCerts"}], "]"}], ",", RowBox[{"Frame", "\[Rule]", "All"}]}], "]"}]], "Input", CellChangeTimes->{{3.796501711933186*^9, 3.796501722555684*^9}, { 3.7965027894630136`*^9, 3.79650279524724*^9}, {3.79650300563488*^9, 3.7965030082916718`*^9}, 3.796503292872571*^9, 3.7965057672048273`*^9},ExpressionUUID->"6f9c1b75-b700-4917-8406-\ bc6f98934b08"], Cell[BoxData[{ RowBox[{"Total", "[", RowBox[{"HyperellipticCerts", "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}], "]"}], "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{"DihedralCerts", "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}], "]"}], "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{"SphereCerts", "[", RowBox[{"[", RowBox[{"All", ",", "1"}], "]"}], "]"}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"%", "+", "%%", "+", "%%%"}], "<", "5"}]}], "Input", CellChangeTimes->{{3.796501673095207*^9, 3.7965016823304787`*^9}, { 3.7965028023851624`*^9, 3.796502807044128*^9}, {3.796503296252239*^9, 3.7965033108485947`*^9}, {3.796503441491172*^9, 3.796503441877528*^9}, { 3.796504703073873*^9, 3.7965047033754663`*^9}},ExpressionUUID->"d8f58621-60ab-477c-908d-\ 3eefba00c346"], Cell[CellGroupData[{ Cell["Double Check ", "Subsection", CellChangeTimes->{{3.7965034951663437`*^9, 3.796503498312142*^9}},ExpressionUUID->"a6e89559-3abc-4ea7-9cd7-\ 886de54a64a0"], Cell[BoxData[{ RowBox[{ RowBox[{"HyperellipticODEs", "=", RowBox[{ RowBox[{ RowBox[{"HyperellipticToODE", "[", RowBox[{ RowBox[{"(", RowBox[{"#", "-", RowBox[{"p", "^", "2"}]}], ")"}], "/", "2"}], "]"}], "&"}], "/@", "HHyperelliptic"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"DihedralODEs", "=", RowBox[{ RowBox[{ RowBox[{"DihedralToODE", "[", "#", "]"}], "&"}], "/@", "HDihedral"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"SphereODEs", "=", RowBox[{ RowBox[{ RowBox[{"DihedralToODE", "[", RowBox[{ RowBox[{"#", "/.", "ZTrigRep"}], "/.", "Z\[Lambda]Rep"}], "]"}], "&"}], "/@", "HTops"}]}], ";"}]}], "Input",ExpressionUUID->"8d91db13-6440-440b-\ ad81-1babaf487c9f"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"Factor", "[", RowBox[{ RowBox[{"D", "[", RowBox[{ RowBox[{"#", "[", RowBox[{"[", "3", "]"}], "]"}], ",", "\[Alpha]"}], "]"}], "-", RowBox[{"#", "[", RowBox[{"[", "2", "]"}], "]"}]}], "]"}], "&"}], "/@", RowBox[{"Join", "[", RowBox[{"HyperellipticODEs", ",", "DihedralODEs", ",", "SphereODEs"}], "]"}]}], "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{ RowBox[{"HyperellipticODEs", "[", RowBox[{"[", RowBox[{"All", ",", RowBox[{"{", RowBox[{"1", ",", "3"}], "}"}]}], "]"}], "]"}], "-", "HODEs"}], "]"}], "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{ RowBox[{"DihedralODEs", "[", RowBox[{"[", RowBox[{"All", ",", RowBox[{"{", RowBox[{"1", ",", "3"}], "}"}]}], "]"}], "]"}], "-", "DODEs"}], "]"}], "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{ RowBox[{"SphereODEs", "[", RowBox[{"[", RowBox[{"All", ",", RowBox[{"{", RowBox[{"1", ",", "3"}], "}"}]}], "]"}], "]"}], "-", "SODEs"}], "]"}]}], "Input", CellChangeTimes->{{3.796504515400097*^9, 3.796504537823742*^9}, { 3.796504590673417*^9, 3.796504591140236*^9}},ExpressionUUID->"f7874205-d894-488c-b73f-\ 089b530bbf2c"], Cell[BoxData[{ RowBox[{ RowBox[{"AmazingIdentity", "=", RowBox[{"{", RowBox[{ RowBox[{"k1", "\[Rule]", RowBox[{"b", "/", RowBox[{"(", RowBox[{"b", "-", "a"}], ")"}]}]}], ",", RowBox[{"k2", "\[Rule]", RowBox[{ RowBox[{"-", "1"}], "/", RowBox[{"(", RowBox[{"b", "-", "a"}], ")"}]}]}], ",", RowBox[{"\[Epsilon]", "\[Rule]", RowBox[{ RowBox[{"(", RowBox[{"c", "-", "a"}], ")"}], "/", RowBox[{"(", RowBox[{"c", "-", "b"}], ")"}]}]}], ",", RowBox[{"k3", "\[Rule]", RowBox[{ RowBox[{"(", RowBox[{"c", "-", "b"}], ")"}], "/", RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}]}]}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"Factor", "[", RowBox[{ RowBox[{"Times", "[", RowBox[{ RowBox[{ RowBox[{"DODEs", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], "/.", RowBox[{"\[Alpha]", "\[Rule]", RowBox[{"k1", "+", RowBox[{"k2", " ", "\[Alpha]"}]}]}]}], ",", RowBox[{"k3", " ", "/", RowBox[{"k2", "^", RowBox[{"{", RowBox[{"1", ",", "3"}], "}"}]}]}]}], "]"}], "/.", "AmazingIdentity"}], "]"}], "\[IndentingNewLine]", RowBox[{"Subtract", "[", RowBox[{"%", ",", RowBox[{"SODEs", "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}]}], "Input", CellChangeTimes->{{3.796505539301444*^9, 3.7965056378171997`*^9}, { 3.80859084309333*^9, 3.808590846299155*^9}},ExpressionUUID->"feb3119b-4554-45c4-93c9-\ 2d66aa2dc400"] }, Open ]] }, Open ]] }, Open ]] }, Open ]] }, WindowSize->{1366, 704}, WindowMargins->{{0, Automatic}, {0, Automatic}}, FrontEndVersion->"11.2 for Linux x86 (64-bit) (September 10, 2017)", StyleDefinitions->"Default.nb" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[580, 22, 169, 3, 99, "Title",ExpressionUUID->"44bd5a6c-a8c2-4fae-ba0d-de4f73099479"], Cell[CellGroupData[{ Cell[774, 29, 157, 3, 70, "Chapter",ExpressionUUID->"ee3c2fb1-f0cb-4c6b-a381-94659ab810ff"], Cell[CellGroupData[{ Cell[956, 36, 154, 3, 68, "Section",ExpressionUUID->"e0f3d591-aea6-4568-b0d0-6377215eff57"], Cell[CellGroupData[{ Cell[1135, 43, 191, 3, 55, "Subsection",ExpressionUUID->"ac117888-63d8-416a-87d8-b3ea06bcad36"], Cell[1329, 48, 2037, 58, 153, "Input",ExpressionUUID->"b34fd52b-39c9-4f50-ac09-f7151bed030d", CellID->743042586], Cell[3369, 108, 1802, 49, 155, "Input",ExpressionUUID->"d03a05bb-0dc1-4261-921d-ffdcf285357c", CellID->907619528], Cell[5174, 159, 4247, 114, 395, "Input",ExpressionUUID->"79f289dc-3994-4620-a2da-dbdc00aa105d", CellID->1818583853] }, Closed]], Cell[CellGroupData[{ Cell[9458, 278, 163, 3, 39, "Subsection",ExpressionUUID->"10829a08-16c8-4afb-9f0d-55291c1ed30a"], Cell[9624, 283, 642, 17, 34, "Input",ExpressionUUID->"ea5e9c6a-f465-460f-b92a-297387030c6a", CellID->1996743035], Cell[10269, 302, 787, 24, 57, "Input",ExpressionUUID->"3008210e-0373-48b9-b207-de98eab0f5d0"], Cell[11059, 328, 6279, 147, 395, "Input",ExpressionUUID->"9baace67-e387-43c8-a610-53eecfc495a5", CellID->1288565188], Cell[17341, 477, 1230, 33, 59, "Input",ExpressionUUID->"8787ad43-72d1-4481-bd55-672a9e9e7e19", CellID->289484956], Cell[18574, 512, 2234, 53, 132, "Input",ExpressionUUID->"525b0449-4c4b-4e86-9d3c-40b488b5c4a3", CellID->1224431771], Cell[20811, 567, 4467, 85, 155, "Input",ExpressionUUID->"3aa9600a-451e-4df6-a8cf-2d10d6fff076", CellID->584389671], Cell[25281, 654, 15365, 312, 689, "Input",ExpressionUUID->"791e1475-da47-49de-a819-32d1cddfbb9b", CellID->1338885042] }, Closed]], Cell[CellGroupData[{ Cell[40683, 971, 171, 3, 39, "Subsection",ExpressionUUID->"d4fcf62a-3132-4e90-81f0-c1fad93f81e0"], Cell[40857, 976, 3286, 80, 157, "Input",ExpressionUUID->"11489841-1874-4a26-97bd-ecd70fdb4e33", CellID->1889856845], Cell[44146, 1058, 4942, 125, 182, "Input",ExpressionUUID->"3e17ac77-3ee3-41cd-9b96-8e64e91d8d39", CellID->740842135], Cell[49091, 1185, 5626, 122, 294, "Input",ExpressionUUID->"77788d2e-5823-43c3-ba54-5f0dc1fafaca", CellID->1987044371] }, Closed]] }, Open ]], Cell[CellGroupData[{ Cell[54766, 1313, 168, 3, 68, "Section",ExpressionUUID->"f4004094-3e3e-455d-b665-335480989a05"], Cell[CellGroupData[{ Cell[54959, 1320, 160, 3, 55, "Subsection",ExpressionUUID->"ee2d9a20-726c-4726-a501-cdddb031634b"], Cell[55122, 1325, 928, 27, 101, "Input",ExpressionUUID->"cfe24eb8-0475-43a4-ab17-756a7370543b"], Cell[56053, 1354, 3556, 108, 216, "Input",ExpressionUUID->"7957cc05-318f-45a8-9cdd-d1f3ec8753d2"], Cell[59612, 1464, 319, 9, 34, "Input",ExpressionUUID->"f9fdc6b9-2775-4611-a87d-b10d17dc8ace"], Cell[59934, 1475, 411, 10, 59, "Input",ExpressionUUID->"02d8901f-3783-4dd6-b6e0-0d058e9b1896"], Cell[60348, 1487, 1263, 35, 122, "Input",ExpressionUUID->"8b4cc28c-7207-45fe-be9e-a47db49bbc3a"], Cell[61614, 1524, 430, 12, 55, "Input",ExpressionUUID->"c6e3ccef-60cc-4aec-8906-83b8a63c3951"], Cell[62047, 1538, 876, 24, 59, "Input",ExpressionUUID->"3ead3d1d-eeb6-4c06-ab46-1adcb093208a"], Cell[62926, 1564, 678, 20, 31, "Input",ExpressionUUID->"ee0e4001-5a6b-4e15-8fd1-748f4873b84d"], Cell[63607, 1586, 2971, 95, 124, "Input",ExpressionUUID->"dc6d11e3-b14b-4017-9883-2f3807554d59"] }, Open ]], Cell[CellGroupData[{ Cell[66615, 1686, 166, 3, 55, "Subsection",ExpressionUUID->"a46b3473-5759-421f-9901-ee054576bf09"], Cell[66784, 1691, 856, 28, 31, "Input",ExpressionUUID->"1646f9cc-2106-49c8-a69c-2b9229735b94"], Cell[67643, 1721, 2338, 73, 101, "Input",ExpressionUUID->"a5f078eb-7fef-41a3-82c6-0118c1d8373d"], Cell[69984, 1796, 2479, 77, 147, "Input",ExpressionUUID->"ffee43a2-0291-442e-9899-10f3570e597e"], Cell[72466, 1875, 963, 28, 34, "Input",ExpressionUUID->"e3a965ff-c1ef-4d01-85fe-147f783b7358"], Cell[73432, 1905, 479, 12, 59, "Input",ExpressionUUID->"54a760d2-dc3b-4b85-8f30-24a90b01930e"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[73960, 1923, 154, 3, 68, "Section",ExpressionUUID->"207a167c-4848-407d-9698-409d5773ed41"], Cell[74117, 1928, 767, 19, 34, "Input",ExpressionUUID->"0396f826-f805-4936-a726-1f57e02981c1"], Cell[74887, 1949, 522, 13, 34, "Input",ExpressionUUID->"2d06a771-0600-453f-89ea-d099d1c6c438"], Cell[75412, 1964, 89, 0, 31, "Input",ExpressionUUID->"03d14244-0e38-478d-8646-fb89bed132cc"], Cell[75504, 1966, 243, 6, 31, "Input",ExpressionUUID->"45e57709-f8f2-40c1-b4e2-5403639e987e"], Cell[75750, 1974, 94, 0, 31, "Input",ExpressionUUID->"1d7bb1a7-47b3-41a2-8fbd-552a8a8c6328"], Cell[75847, 1976, 791, 17, 59, "Input",ExpressionUUID->"232119c7-44dc-43c4-9e30-5a604f3a6500"], Cell[76641, 1995, 502, 11, 34, "Input",ExpressionUUID->"6f9c1b75-b700-4917-8406-bc6f98934b08"], Cell[77146, 2008, 867, 20, 105, "Input",ExpressionUUID->"d8f58621-60ab-477c-908d-3eefba00c346"], Cell[CellGroupData[{ Cell[78038, 2032, 163, 3, 55, "Subsection",ExpressionUUID->"a6e89559-3abc-4ea7-9cd7-886de54a64a0"], Cell[78204, 2037, 795, 25, 80, "Input",ExpressionUUID->"8d91db13-6440-440b-ad81-1babaf487c9f"], Cell[79002, 2064, 1311, 41, 107, "Input",ExpressionUUID->"f7874205-d894-488c-b73f-089b530bbf2c"], Cell[80316, 2107, 1585, 50, 80, "Input",ExpressionUUID->"feb3119b-4554-45c4-93c9-2d66aa2dc400"] }, Open ]] }, Open ]] }, Open ]] }, Open ]] } ] *)