(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 12.2' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 158, 7] NotebookDataLength[ 94342, 2247] NotebookOptionsPosition[ 87618, 2144] NotebookOutlinePosition[ 88113, 2162] CellTagsIndexPosition[ 88070, 2159] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[BoxData[ RowBox[{ RowBox[{"pivots", "[", "A_", "]"}], ":=", RowBox[{"Flatten", "[", RowBox[{ RowBox[{"FirstPosition", "[", "1", "]"}], "/@", RowBox[{"Transpose", "[", "A", "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831194837404834*^9, 3.8311948924696903`*^9}, { 3.831194930347896*^9, 3.831194932848599*^9}}, CellLabel->"In[1]:=",ExpressionUUID->"e1bc883b-2413-4a7d-abe0-4a19eb3f78fd"], Cell[BoxData[ RowBox[{ RowBox[{"pMatrix", "[", "n_", "]"}], ":=", RowBox[{"Table", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Which", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"i", "\[Equal]", "2"}], "&&", RowBox[{"j", "\[Equal]", "1"}]}], "||", RowBox[{ RowBox[{"i", "\[Equal]", "1"}], "&&", RowBox[{"j", "\[Equal]", "2"}]}]}], ",", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"i", "\[Equal]", "j"}], "&&", RowBox[{"i", ">", "2"}]}], ",", "1", ",", "\[IndentingNewLine]", "True", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", " ", "n"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "n"}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831107414093502*^9, 3.83110748040809*^9}, { 3.831107557920609*^9, 3.8311075805621977`*^9}, {3.8311076270925627`*^9, 3.831107722019619*^9}}, CellLabel->"In[2]:=",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"], Cell[BoxData[ RowBox[{ RowBox[{"gramMatrix", "[", "W_", "]"}], ":=", RowBox[{"Simplify", "[", RowBox[{ RowBox[{"Transpose", "[", "W", "]"}], ".", RowBox[{"pMatrix", "[", RowBox[{"Length", "[", "W", "]"}], "]"}], ".", "W"}], "]"}]}]], "Input", CellChangeTimes->{{3.831107486071478*^9, 3.831107546093779*^9}, { 3.831109392242589*^9, 3.831109394639595*^9}, {3.831110190169511*^9, 3.831110193792735*^9}}, CellLabel->"In[3]:=",ExpressionUUID->"54cc4a6c-be37-4091-ac21-3dfd11eb53ea"], Cell[BoxData[ RowBox[{ RowBox[{"linearRelationsMatrix", "[", "G_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"RowReduce", "[", "G", "]"}], "[", RowBox[{"[", RowBox[{"1", ";;", RowBox[{"MatrixRank", "[", "G", "]"}]}], "]"}], "]"}], "//", "Transpose"}]}]], "Input", CellChangeTimes->{{3.831109396818718*^9, 3.831109426888632*^9}}, CellLabel->"In[4]:=",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"], Cell[BoxData[ RowBox[{ RowBox[{"linearRelations", "[", "L_", "]"}], ":=", RowBox[{"Select", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"Equal", "[", RowBox[{ SubscriptBox["b", "i"], ",", RowBox[{ RowBox[{"L", "[", RowBox[{"[", "i", "]"}], "]"}], ".", RowBox[{"Table", "[", RowBox[{ SubscriptBox["b", "i"], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"pivots", "[", "L", "]"}]}], "}"}]}], "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"Length", "[", "L", "]"}]}], "}"}]}], "]"}], ",", RowBox[{ RowBox[{"Not", "[", RowBox[{"BooleanQ", "[", "#", "]"}], "]"}], "&"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831109446192391*^9, 3.831109495064299*^9}, { 3.8311095335606937`*^9, 3.831109534992022*^9}, {3.831109584393684*^9, 3.831109833956565*^9}, {3.8311098747139893`*^9, 3.8311099163122053`*^9}, { 3.831110035487195*^9, 3.83111004405739*^9}, {3.831110077358601*^9, 3.831110081551445*^9}, {3.831194643897842*^9, 3.8311946492229443`*^9}, { 3.831194680087949*^9, 3.831194680680228*^9}, {3.831194956352386*^9, 3.831195002875142*^9}, {3.831205178380069*^9, 3.831205187846324*^9}}, CellLabel->"In[5]:=",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"], Cell[BoxData[ RowBox[{ RowBox[{"linearRelationsFromW", "=", RowBox[{ "linearRelations", "@*", "linearRelationsMatrix", "@*", "gramMatrix"}]}], ";"}]], "Input", CellChangeTimes->{{3.831110103314905*^9, 3.831110162272215*^9}, 3.831206070230084*^9}, CellLabel->"In[6]:=",ExpressionUUID->"c9a1b25a-8cb3-40d1-ac83-1d2405398934"], Cell[BoxData[ RowBox[{ RowBox[{"inverseLinearRelations", "[", "G_", "]"}], ":=", RowBox[{ RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"i", "\[Equal]", "#"}], ",", "1", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"Length", "[", RowBox[{"G", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], "&"}], "/@", RowBox[{"Flatten", "[", RowBox[{ RowBox[{ RowBox[{"FirstPosition", "[", RowBox[{"#", ",", "1"}], "]"}], "&"}], "/@", RowBox[{"(", RowBox[{ RowBox[{"RowReduce", "[", "G", "]"}], "//", RowBox[{"Select", "[", RowBox[{ RowBox[{"Not", "[", RowBox[{"AllTrue", "[", RowBox[{"#", ",", RowBox[{ RowBox[{"#", "\[Equal]", "0"}], "&"}]}], "]"}], "]"}], "&"}], "]"}]}], ")"}]}], "]"}]}]}]], "Input", CellChangeTimes->{{3.831194278291965*^9, 3.831194298458626*^9}, 3.831195204231324*^9}, CellLabel->"In[7]:=",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"], Cell[BoxData[ RowBox[{ RowBox[{"quadraticFormMatrix", "[", RowBox[{"G_", ",", "L_"}], "]"}], ":=", RowBox[{"Inverse", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"G", "[", RowBox[{"[", RowBox[{"i", ",", " ", "j"}], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"pivots", "[", "L", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"pivots", "[", "L", "]"}]}], "}"}]}], "]"}], "]"}]}]], "Input",\ CellChangeTimes->{{3.831195055004586*^9, 3.83119507699967*^9}, { 3.831195107195753*^9, 3.831195121990181*^9}, {3.831195208095559*^9, 3.831195214781535*^9}}, CellLabel->"In[8]:=",ExpressionUUID->"e30807a9-5381-4ad1-b9fd-a6a877ae69fe"], Cell[BoxData[ RowBox[{ RowBox[{"quadraticForm", "[", RowBox[{"Q_", ",", "L_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"v", "=", RowBox[{"Table", "[", RowBox[{ SubscriptBox["b", "i"], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"pivots", "[", "L", "]"}]}], "}"}]}], "]"}]}], "}"}], ",", RowBox[{"Simplify", "[", RowBox[{ RowBox[{"v", ".", "Q", ".", "v"}], "\[Equal]", "0"}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831195241841057*^9, 3.831195289590564*^9}}, CellLabel->"In[9]:=",ExpressionUUID->"d1264330-efcb-4ca7-a1c2-f6744f28eebe"], Cell[BoxData[ RowBox[{ RowBox[{"quadform", "[", "W_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"G", "=", RowBox[{"gramMatrix", "[", "W", "]"}]}], "}"}], ",", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"L", "=", RowBox[{"linearRelationsMatrix", "[", "G", "]"}]}], "}"}], ",", RowBox[{"quadraticForm", "[", RowBox[{ RowBox[{"quadraticFormMatrix", "[", RowBox[{"G", ",", "L"}], "]"}], ",", "L"}], "]"}]}], "]"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831195337159152*^9, 3.831195396279203*^9}}, CellLabel->"In[10]:=",ExpressionUUID->"efd0e321-9f31-4641-bf42-f73e16044635"], Cell[BoxData[ RowBox[{ RowBox[{"quadformFromG", "[", "G_", "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"L", "=", RowBox[{"linearRelationsMatrix", "[", "G", "]"}]}], "}"}], ",", RowBox[{"quadraticForm", "[", RowBox[{ RowBox[{"quadraticFormMatrix", "[", RowBox[{"G", ",", "L"}], "]"}], ",", "L"}], "]"}]}], "]"}]}]], "Input",\ CellChangeTimes->{{3.8312049925958433`*^9, 3.8312050200596113`*^9}}, CellLabel->"In[11]:=",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"], Cell[BoxData[ RowBox[{ RowBox[{"graphFromG", "[", "G_", "]"}], ":=", RowBox[{"PlanarGraph", "[", RowBox[{"AdjacencyGraph", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"#", "\[Equal]", RowBox[{"-", "1"}]}], ",", "1", ",", "0"}], "]"}], "&"}], "/@", "#"}], "&"}], "/@", "G"}], ",", RowBox[{"VertexLabels", "\[Rule]", "\"\\""}]}], "]"}], "]"}]}]], "Input", CellChangeTimes->{{3.8315843493182087`*^9, 3.831584372878718*^9}, { 3.831584545556731*^9, 3.831584563248426*^9}}, CellLabel->"In[12]:=",ExpressionUUID->"948959db-c926-4458-9e45-ef7f3fb99ba5"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"nextCandidate", "[", RowBox[{"s_", ",", "t_", ",", "adj_"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"length", ",", "pos"}], "}"}], ",", RowBox[{ RowBox[{"length", "=", RowBox[{"Length", "[", "adj", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"pos", "=", RowBox[{"Mod", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Position", "[", RowBox[{"adj", ",", "s"}], "]"}], "[", RowBox[{"[", RowBox[{"1", ",", "1"}], "]"}], "]"}], "+", "1"}], ",", "length", ",", "1"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"t", ",", RowBox[{"adj", "[", RowBox[{"[", "pos", "]"}], "]"}]}], "}"}]}]}], "]"}]}], ";"}]], "Input", CellChangeTimes->{3.831210886725911*^9}, CellLabel->"In[13]:=",ExpressionUUID->"e7b8a43b-0fbc-4073-928d-10a091e21dd7"], Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"FindFace", "[", RowBox[{"g_", "?", "PlanarGraphQ"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", "emb", "}"}], ",", RowBox[{ RowBox[{"emb", "=", RowBox[{"GraphEmbedding", "[", RowBox[{"g", ",", "\"\\""}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"FindFace", "[", RowBox[{"g", ",", "emb"}], "]"}]}]}], "]"}]}], ";"}], "\[IndentingNewLine]"}], "\n", RowBox[{ RowBox[{"FindFace", "[", RowBox[{ RowBox[{"g_", "?", "PlanarGraphQ"}], ",", "emb_"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ "m", ",", "orderings", ",", "pAdj", ",", "rightF", ",", "s", ",", "t", ",", "initial", ",", "face"}], "}"}], ",", RowBox[{ RowBox[{"m", "=", RowBox[{"AdjacencyMatrix", "[", "g", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"pAdj", "[", "v", "]"}], "=", RowBox[{"SortBy", "[", RowBox[{ RowBox[{"Pick", "[", RowBox[{ RowBox[{"VertexList", "[", "g", "]"}], ",", RowBox[{"m", "[", RowBox[{"[", "v", "]"}], "]"}], ",", "1"}], "]"}], ",", RowBox[{ RowBox[{"ArcTan", "@@", RowBox[{"(", RowBox[{ RowBox[{"emb", "[", RowBox[{"[", "v", "]"}], "]"}], "-", RowBox[{"emb", "[", RowBox[{"[", "#", "]"}], "]"}]}], ")"}]}], "&"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"v", ",", RowBox[{"VertexList", "[", "g", "]"}]}], "}"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"rightF", "[", "_", "]"}], ":=", "False"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"Reap", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"!", RowBox[{"rightF", "[", "e", "]"}]}], ",", RowBox[{ RowBox[{"s", "=", RowBox[{"e", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"t", "=", RowBox[{"e", "[", RowBox[{"[", "2", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"initial", "=", "s"}], ";", "\[IndentingNewLine]", RowBox[{"face", "=", RowBox[{"{", "s", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"While", "[", RowBox[{ RowBox[{"t", "=!=", "initial"}], ",", RowBox[{ RowBox[{ RowBox[{"rightF", "[", RowBox[{"UndirectedEdge", "[", RowBox[{"s", ",", "t"}], "]"}], "]"}], "=", "True"}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"{", RowBox[{"s", ",", "t"}], "}"}], "=", RowBox[{"nextCandidate", "[", RowBox[{"s", ",", "t", ",", RowBox[{"pAdj", "[", "t", "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"face", "=", RowBox[{"Join", "[", RowBox[{"face", ",", RowBox[{"{", "s", "}"}]}], "]"}]}], ";"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"Sow", "[", "face", "]"}], ";"}]}], "]"}], ",", RowBox[{"{", RowBox[{"e", ",", RowBox[{"EdgeList", "[", "g", "]"}]}], "}"}]}], "]"}], "]"}], "[", RowBox[{"[", RowBox[{"2", ",", "1"}], "]"}], "]"}]}]}], "]"}]}]}], "Input", CellChangeTimes->{{3.8312108953940573`*^9, 3.831210895411563*^9}, 3.8312119634327393`*^9, 3.831542420732052*^9}, CellLabel->"In[14]:=",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"], Cell[BoxData[ RowBox[{ RowBox[{"findGenerators", "[", RowBox[{"faces_", ",", "vertices_", ",", "G_"}], "]"}], ":=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ "face", ",", "otherVertex", ",", "verticesOnFace", ",", "allVertices", ",", "Gp", ",", "P", ",", "Gnew", ",", "L", ",", "Q", ",", "Qform", ",", "sol1", ",", "sol2", ",", "sols", ",", "coeff", ",", "coeffTable", ",", "small", ",", "Li", ",", "P2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"face", "=", RowBox[{"faces", "[", RowBox[{"[", "i", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"verticesOnFace", "=", RowBox[{"Sort", "[", RowBox[{"RandomSample", "[", RowBox[{"face", ",", "3"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"otherVertex", "=", RowBox[{"RandomChoice", "[", RowBox[{"Select", "[", RowBox[{"vertices", ",", RowBox[{ RowBox[{"Not", "[", RowBox[{"MemberQ", "[", RowBox[{"face", ",", "#"}], "]"}], "]"}], "&"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"allVertices", "=", RowBox[{"Append", "[", RowBox[{"verticesOnFace", ",", "otherVertex"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"Transpose", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "vertices", "]"}], "]"}], "[", RowBox[{"[", "#", "]"}], "]"}], "&"}], "/@", RowBox[{"DeleteDuplicates", "[", RowBox[{"Join", "[", RowBox[{"allVertices", ",", "vertices"}], "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Gnew", "=", RowBox[{ RowBox[{"Transpose", "[", "P", "]"}], ".", "G", ".", "P"}]}], ";", "\[IndentingNewLine]", RowBox[{"L", "=", RowBox[{"linearRelationsMatrix", "[", "Gnew", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Gp", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"G", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "allVertices"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Q", "=", RowBox[{"Inverse", "[", "Gp", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Qform", "=", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"#", ".", "Q", ".", "#"}], "&"}], "[", RowBox[{"Table", "[", RowBox[{ SubscriptBox["b", "j"], ",", RowBox[{"{", RowBox[{"j", ",", "allVertices"}], "}"}]}], "]"}], "]"}], ")"}], "\[Equal]", "0"}]}], ";", "\[IndentingNewLine]", RowBox[{"sols", "=", RowBox[{"Expand", "[", RowBox[{"FullSimplify", "[", RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], "[", RowBox[{"[", "2", "]"}], "]"}], "&"}], "/@", RowBox[{"Solve", "[", RowBox[{"Qform", ",", SubscriptBox["b", "otherVertex"]}], "]"}]}], "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"coeff", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"sols", "/.", RowBox[{"Table", "[", RowBox[{ RowBox[{ SubscriptBox["b", "i"], "\[Rule]", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "\[Equal]", "curr"}], ",", "1", ",", "0"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "allVertices"}], "}"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"curr", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"small", "=", RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "allVertices", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"small", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "4"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"MemberQ", "[", RowBox[{"verticesOnFace", ",", RowBox[{"allVertices", "[", RowBox[{"[", "j", "]"}], "]"}]}], "]"}], ",", RowBox[{"coeff", "[", RowBox[{"[", "j", "]"}], "]"}], ",", "0"}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "allVertices", "]"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Li", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "k"}], ",", "1", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "vertices", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"k", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P2", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "k"}], ",", "1", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "vertices", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", RowBox[{"DeleteDuplicates", "[", RowBox[{"Join", "[", RowBox[{"allVertices", ",", "vertices"}], "]"}], "]"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P2", ".", "L", ".", "small", ".", "Li"}]}]}], "\[IndentingNewLine]", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"Length", "[", "faces", "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831211980673108*^9, 3.831212009547978*^9}, { 3.831212047936781*^9, 3.831212064698745*^9}, {3.831212136824675*^9, 3.8312121924739923`*^9}, {3.83121282873549*^9, 3.831212895555662*^9}, { 3.8312129593096933`*^9, 3.831213052703521*^9}, {3.8312133826923237`*^9, 3.831213512078041*^9}, {3.831213579312004*^9, 3.831213607562201*^9}, { 3.8312136458477*^9, 3.8312136689119587`*^9}, {3.831213699813815*^9, 3.831213723704392*^9}, {3.8312138140717983`*^9, 3.831213889152441*^9}, { 3.831213941035733*^9, 3.831213957988277*^9}, {3.831213991504438*^9, 3.831214049771612*^9}, {3.8312142057843103`*^9, 3.831214227198838*^9}, { 3.8313934326708517`*^9, 3.83139343995124*^9}, {3.831393489506013*^9, 3.831393506386162*^9}, {3.831393555227632*^9, 3.8313935602186413`*^9}, { 3.8313936045286083`*^9, 3.83139367389612*^9}, {3.831393815407503*^9, 3.8313939935486803`*^9}, {3.83139404462208*^9, 3.831394092415612*^9}, { 3.831394131767799*^9, 3.831394217388193*^9}, {3.831394341420259*^9, 3.831394342312114*^9}, {3.83139445920255*^9, 3.8313945442248793`*^9}, { 3.8313945973518257`*^9, 3.831394680082652*^9}, {3.8313947347981873`*^9, 3.831394898892132*^9}, {3.83139493417336*^9, 3.831395053557044*^9}, { 3.831395100567893*^9, 3.83139518418989*^9}, {3.831395217466712*^9, 3.831395241186327*^9}, {3.831395355721635*^9, 3.8313954066678057`*^9}, { 3.831395475153723*^9, 3.831395516960009*^9}, {3.83139559485061*^9, 3.8313956385922327`*^9}, {3.831395769312038*^9, 3.8313958340021877`*^9}, { 3.831395865647847*^9, 3.83139610784988*^9}, {3.831396182381921*^9, 3.831396202527211*^9}, {3.8313962730948772`*^9, 3.8313963875560293`*^9}, { 3.831396427697093*^9, 3.8313965616329517`*^9}, {3.831396608167254*^9, 3.83139664360338*^9}, {3.83139670106045*^9, 3.8313967846470547`*^9}, { 3.8313968308609743`*^9, 3.8313969389717007`*^9}, 3.831396972519156*^9, { 3.831397018773802*^9, 3.831397020188629*^9}, {3.831397062011731*^9, 3.831397076917077*^9}, {3.8313971287749977`*^9, 3.8313971288803463`*^9}, { 3.831397158974574*^9, 3.831397164029716*^9}, {3.831451905653893*^9, 3.831451941106399*^9}, {3.8314519809069433`*^9, 3.831452094855884*^9}, { 3.831542443369563*^9, 3.83154246854852*^9}, {3.831542595276044*^9, 3.8315426013894053`*^9}, {3.831542828964487*^9, 3.831542862477805*^9}, 3.8315429215303297`*^9, {3.831543065147149*^9, 3.831543089933201*^9}, { 3.8315431288434877`*^9, 3.831543129636121*^9}, {3.83154323687431*^9, 3.831543260658288*^9}, {3.831543295045744*^9, 3.831543299689423*^9}, 3.831543486496207*^9, {3.831543653211835*^9, 3.831543654095707*^9}, { 3.831544292671633*^9, 3.8315442949499702`*^9}, {3.831544329733664*^9, 3.831544394563963*^9}, {3.831544636528879*^9, 3.831544663053648*^9}, 3.831544723323721*^9, 3.831546276666531*^9, {3.8315463223978786`*^9, 3.831546322569023*^9}, {3.831546446056045*^9, 3.83154644840313*^9}, { 3.8315465437277803`*^9, 3.8315465842454453`*^9}, {3.8315466426699533`*^9, 3.831546646606488*^9}, {3.831546727818715*^9, 3.831546788772341*^9}, { 3.831546839246593*^9, 3.8315468396090813`*^9}, {3.83154706753721*^9, 3.8315471373421164`*^9}, {3.831549700570283*^9, 3.831549703647592*^9}, { 3.8315497447736797`*^9, 3.831549761864801*^9}, {3.831549996792459*^9, 3.831550026202232*^9}, {3.831550732962453*^9, 3.831550735264537*^9}, { 3.8315509704443493`*^9, 3.8315509727254343`*^9}, {3.831551320669722*^9, 3.831551407002722*^9}, 3.831551438305327*^9, {3.8315518862869797`*^9, 3.831551891551553*^9}, {3.831552338431473*^9, 3.8315523578513947`*^9}, { 3.8315524412649384`*^9, 3.831552441791979*^9}, {3.831552847687746*^9, 3.8315528556641293`*^9}, {3.83172514482829*^9, 3.831725228085017*^9}, { 3.831725320892393*^9, 3.8317253386411657`*^9}, {3.8317254340311728`*^9, 3.831725440268997*^9}, {3.8317255156810293`*^9, 3.8317256205301943`*^9}, { 3.831725829008904*^9, 3.831725851322979*^9}, {3.831726730605854*^9, 3.8317267923612432`*^9}, 3.833968804473505*^9}, CellLabel->"In[16]:=",ExpressionUUID->"df61872a-1e93-4b2b-ad66-1c8fee203402"], Cell[BoxData[ RowBox[{ RowBox[{"findGeneratorsN", "[", RowBox[{"faces_", ",", "vertices_", ",", "G_"}], "]"}], ":=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ "face", ",", "otherVertex", ",", "verticesOnFace", ",", "allVertices", ",", "Gp", ",", "P", ",", "Gnew", ",", "L", ",", "Q", ",", "Qform", ",", "sol1", ",", "sol2", ",", "sols", ",", "coeff", ",", "coeffTable", ",", "small", ",", "Li", ",", "P2"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"face", "=", RowBox[{"faces", "[", RowBox[{"[", "i", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"verticesOnFace", "=", RowBox[{"Sort", "[", RowBox[{"RandomSample", "[", RowBox[{"face", ",", "3"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"otherVertex", "=", RowBox[{"RandomChoice", "[", RowBox[{"Select", "[", RowBox[{"vertices", ",", RowBox[{ RowBox[{"Not", "[", RowBox[{"MemberQ", "[", RowBox[{"face", ",", "#"}], "]"}], "]"}], "&"}]}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"allVertices", "=", RowBox[{"Append", "[", RowBox[{"verticesOnFace", ",", "otherVertex"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"Transpose", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "vertices", "]"}], "]"}], "[", RowBox[{"[", "#", "]"}], "]"}], "&"}], "/@", RowBox[{"DeleteDuplicates", "[", RowBox[{"Join", "[", RowBox[{"allVertices", ",", "vertices"}], "]"}], "]"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Gnew", "=", RowBox[{ RowBox[{"Transpose", "[", "P", "]"}], ".", "G", ".", "P"}]}], ";", "\[IndentingNewLine]", RowBox[{"L", "=", RowBox[{"linearRelationsMatrix", "[", "Gnew", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Gp", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"G", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "allVertices"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Q", "=", RowBox[{"Inverse", "[", "Gp", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Qform", "=", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"#", ".", "Q", ".", "#"}], "&"}], "[", RowBox[{"Table", "[", RowBox[{ SubscriptBox["b", "j"], ",", RowBox[{"{", RowBox[{"j", ",", "allVertices"}], "}"}]}], "]"}], "]"}], ")"}], "\[Equal]", "0"}]}], ";", "\[IndentingNewLine]", RowBox[{"sols", "=", RowBox[{"Expand", "[", RowBox[{"FullSimplify", "[", RowBox[{"Total", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"#", "[", RowBox[{"[", "1", "]"}], "]"}], "[", RowBox[{"[", "2", "]"}], "]"}], "&"}], "/@", RowBox[{"NSolve", "[", RowBox[{"Qform", ",", SubscriptBox["b", "otherVertex"]}], "]"}]}], "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"coeff", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"sols", "/.", RowBox[{"Table", "[", RowBox[{ RowBox[{ SubscriptBox["b", "i"], "\[Rule]", RowBox[{"If", "[", RowBox[{ RowBox[{"i", "\[Equal]", "curr"}], ",", "1", ",", "0"}], "]"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "allVertices"}], "}"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"curr", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"small", "=", RowBox[{"IdentityMatrix", "[", RowBox[{"Length", "[", "allVertices", "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"small", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "4"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"If", "[", RowBox[{ RowBox[{"MemberQ", "[", RowBox[{"verticesOnFace", ",", RowBox[{"allVertices", "[", RowBox[{"[", "j", "]"}], "]"}]}], "]"}], ",", RowBox[{"coeff", "[", RowBox[{"[", "j", "]"}], "]"}], ",", "0"}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "allVertices", "]"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Li", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "k"}], ",", "1", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "vertices", "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"k", ",", "allVertices"}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P2", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"j", "\[Equal]", "k"}], ",", "1", ",", "0"}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", RowBox[{"Length", "[", "vertices", "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"k", ",", RowBox[{"DeleteDuplicates", "[", RowBox[{"Join", "[", RowBox[{"allVertices", ",", "vertices"}], "]"}], "]"}]}], "}"}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"P2", ".", "L", ".", "small", ".", "Li"}]}]}], "\[IndentingNewLine]", "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"Length", "[", "faces", "]"}]}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.833981987629899*^9, 3.83398199939977*^9}}, CellLabel->"In[17]:=",ExpressionUUID->"dab3b84f-3f49-42e4-9bc4-79cb6408f946"], Cell[BoxData[ RowBox[{ RowBox[{"findGeneratorsFromG", "[", "G_", "]"}], ":=", RowBox[{"findGeneratorsN", "[", RowBox[{ RowBox[{"FindFace", "[", RowBox[{"PlanarGraph", "[", RowBox[{"AdjacencyGraph", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"#", "\[Equal]", RowBox[{"-", "1"}]}], ",", "1", ",", "0"}], "]"}], "&"}], "/@", "#"}], "&"}], "/@", "G"}], ",", RowBox[{"VertexLabels", "\[Rule]", "\"\\""}]}], "]"}], "]"}], "]"}], ",", RowBox[{"Range", "[", RowBox[{"Length", "[", "G", "]"}], "]"}], ",", "G"}], "]"}]}]], "Input", CellChangeTimes->{{3.831554845925479*^9, 3.8315548977219877`*^9}, 3.833982029038528*^9}, CellLabel->"In[18]:=",ExpressionUUID->"bd52b017-bd99-4bdf-9126-b7c62804c9f2"], Cell[BoxData[ RowBox[{ RowBox[{"search", "[", RowBox[{ "generators_", ",", "current_", ",", "lastgen_", ",", "upperBound_", ",", "faces_"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{"totals", ",", "invalid"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{ RowBox[{"invalid", "[", RowBox[{"\[Sigma]_", ",", "face_"}], "]"}], ":=", RowBox[{ RowBox[{"\[Sigma]", "\[Equal]", "lastgen"}], "||", RowBox[{"AllTrue", "[", RowBox[{ RowBox[{"Delete", "[", RowBox[{ RowBox[{"\[Sigma]", ".", "current"}], ",", RowBox[{ RowBox[{ RowBox[{"{", "#", "}"}], "&"}], "/@", "face"}]}], "]"}], ",", RowBox[{ RowBox[{"#", ">", "upperBound"}], "&"}]}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{ RowBox[{"totals", "[", "i_", "]"}], ":=", RowBox[{"If", "[", RowBox[{ RowBox[{"invalid", "[", RowBox[{ RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", RowBox[{ "faces", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}], "]"}], ",", "0", ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"Length", "[", "current", "]"}], "-", RowBox[{"Length", "[", RowBox[{ "faces", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "]"}], "-", RowBox[{"Length", "[", RowBox[{"Select", "[", RowBox[{ RowBox[{"Delete", "[", RowBox[{"current", ",", RowBox[{ RowBox[{ RowBox[{"{", "#", "}"}], "&"}], "/@", RowBox[{ "faces", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}]}], "]"}], ",", RowBox[{ RowBox[{"#", ">", "upperBound"}], "&"}]}], "]"}], "]"}], "+", RowBox[{"search", "[", RowBox[{"generators", ",", RowBox[{ RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ".", "current"}], ",", RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ",", "upperBound", ",", "faces"}], "]"}]}]}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{"totals", "/@", RowBox[{"Range", "[", RowBox[{"Length", "[", "generators", "]"}], "]"}]}], "]"}]}]}], "]"}]}]], "Input", CellChangeTimes->{{3.831585478390266*^9, 3.831585832096991*^9}, { 3.831585873047202*^9, 3.831585884320414*^9}, {3.8315859333563128`*^9, 3.83158598633525*^9}, {3.831586158378029*^9, 3.831586222152265*^9}, { 3.831586295582384*^9, 3.831586377705759*^9}, {3.8315864822120523`*^9, 3.831586554779951*^9}, {3.8315866296308203`*^9, 3.831586667667411*^9}, { 3.831586741340292*^9, 3.831586755993217*^9}, {3.831592107164525*^9, 3.831592113959847*^9}, {3.831592169716857*^9, 3.831592280561895*^9}, { 3.831593557409717*^9, 3.8315935576894217`*^9}, {3.831593848468913*^9, 3.8315939374159*^9}, {3.831593976921562*^9, 3.831594001541377*^9}, { 3.8315940487580757`*^9, 3.8315940927666388`*^9}, {3.831594365932665*^9, 3.831594522762847*^9}, {3.831594614138864*^9, 3.831594754985476*^9}, { 3.8315949767507057`*^9, 3.831594980589171*^9}, {3.8316319386522493`*^9, 3.8316319392747498`*^9}, {3.831641985178143*^9, 3.831642038615139*^9}, 3.8316436263727818`*^9, {3.831643663092218*^9, 3.8316436694418087`*^9}, { 3.831643837833714*^9, 3.831643845617309*^9}, {3.8316438865181704`*^9, 3.831643933219273*^9}, {3.831643991735036*^9, 3.831644005728479*^9}, { 3.831718518985198*^9, 3.831718538584508*^9}, {3.831718573982415*^9, 3.831718579591817*^9}, {3.831718638646072*^9, 3.83171867240186*^9}, { 3.8317201135527287`*^9, 3.831720118218873*^9}, {3.831720321587966*^9, 3.831720325967662*^9}, {3.831721027895946*^9, 3.831721065838575*^9}, { 3.831721143231716*^9, 3.831721181846493*^9}, {3.831721396838306*^9, 3.83172139923806*^9}, {3.831721668116399*^9, 3.831721676695764*^9}, { 3.831723288861394*^9, 3.831723291074202*^9}, {3.83172431511852*^9, 3.831724317665661*^9}, 3.833891293020659*^9, {3.834269383514792*^9, 3.834269386321598*^9}, {3.834269487189498*^9, 3.8342694873961067`*^9}, { 3.834270103611849*^9, 3.834270107267815*^9}, {3.834270430339264*^9, 3.834270430502697*^9}, {3.834271267146653*^9, 3.834271275112032*^9}, { 3.834351949243196*^9, 3.834351950526677*^9}, {3.834352089916841*^9, 3.834352127810135*^9}}, CellLabel->"In[19]:=",ExpressionUUID->"4186f080-27d0-474f-9433-7cdeb3a7a49d"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"$RecursionLimit", "=", "16384"}]], "Input", CellChangeTimes->{{3.833893222127377*^9, 3.833893227672316*^9}, { 3.83397931096562*^9, 3.833979311902438*^9}, {3.833982525256192*^9, 3.833982529177711*^9}, {3.833982918567665*^9, 3.8339829240001698`*^9}}, CellLabel->"In[20]:=",ExpressionUUID->"a546161f-063b-4b38-811b-1f5d9ac28696"], Cell[BoxData["16384"], "Output", CellChangeTimes->{ 3.8338932281018763`*^9, 3.8339758669967527`*^9, 3.833979312227579*^9, 3.833979916481537*^9, 3.833980236024199*^9, 3.833980842837739*^9, 3.83398098522823*^9, 3.833981016536418*^9, {3.83398252603516*^9, 3.833982529689131*^9}, {3.8339829193261623`*^9, 3.8339829508363667`*^9}, 3.8339830049394903`*^9, 3.833985185839014*^9, {3.833985309697896*^9, 3.833985324982264*^9}, {3.8339855257030573`*^9, 3.8339855467146*^9}, 3.833989922637932*^9, 3.833990186870085*^9, 3.833993648764943*^9, { 3.83399468620287*^9, 3.8339947024536467`*^9}, 3.833995688332788*^9, { 3.833997659712306*^9, 3.833997676964181*^9}, {3.83399771946511*^9, 3.833997735813401*^9}, 3.833997886970297*^9, 3.833998804781659*^9, 3.833998949886093*^9, 3.833999546282991*^9, 3.834002950053997*^9, 3.834008369614998*^9, 3.834008404771652*^9, 3.834012063580451*^9, { 3.8340125211494923`*^9, 3.834012544564479*^9}, {3.834012632134491*^9, 3.834012669541378*^9}, {3.8340129486241903`*^9, 3.834012994884214*^9}, 3.834013025749654*^9, {3.8340516513410587`*^9, 3.834051710003538*^9}, 3.834061107105874*^9, {3.834061368190651*^9, 3.8340614192869053`*^9}, { 3.8340617843815823`*^9, 3.834061797970849*^9}, {3.834065075805954*^9, 3.834065147762154*^9}, {3.8340672561763277`*^9, 3.834067310718713*^9}, { 3.834069699109585*^9, 3.834069709702557*^9}, 3.834092717521625*^9, 3.834097171624065*^9, 3.8341343872984047`*^9, 3.834142620775568*^9, 3.834145530968349*^9, 3.834146073235483*^9, 3.8341809139458323`*^9, 3.834269357761674*^9, 3.8342693933710947`*^9, 3.834269448502894*^9, 3.834269494050521*^9, {3.8342695663389606`*^9, 3.8342696026888247`*^9}, 3.8342701160872383`*^9, 3.834270161194154*^9, 3.834270438333136*^9, 3.834270555594716*^9, {3.834271103264781*^9, 3.834271120536076*^9}, 3.834271489584754*^9, 3.834271596271693*^9, 3.834272147258156*^9, 3.834351698339382*^9, {3.834351996635762*^9, 3.834352017390819*^9}, 3.834363957483852*^9, {3.834364187716065*^9, 3.834364198004562*^9}, 3.8344822107164927`*^9}, CellLabel->"Out[20]=",ExpressionUUID->"01549ef8-b8be-4d3a-8e70-747610dfb968"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"fractalDimensionFromG", "[", RowBox[{"G_", ",", "max_", ",", "delta_", ",", "root_"}], "]"}], ":=", RowBox[{"Block", "[", RowBox[{ RowBox[{"{", RowBox[{ "xs", ",", "ys", ",", "data", ",", "graph", ",", "faces", ",", "sigmas", ",", "nlm", ",", "params"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"xs", "=", RowBox[{"Range", "[", RowBox[{"1", ",", "max", ",", "delta"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"graph", "=", RowBox[{"graphFromG", "[", "G", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"faces", "=", RowBox[{"FindFace", "[", "graph", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"sigmas", "=", RowBox[{"findGeneratorsFromG", "[", "G", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ys", "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"search", "[", RowBox[{"sigmas", ",", "root", ",", RowBox[{"{", "}"}], ",", "#", ",", "faces"}], "]"}], "+", RowBox[{"Length", "[", "root", "]"}]}], "&"}], "/@", "xs"}]}], ";", "\[IndentingNewLine]", RowBox[{"data", "=", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{ "xs", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}], ",", RowBox[{ "ys", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}]}], "}"}], "&"}], "/@", RowBox[{"Range", "[", RowBox[{"Length", "[", "ys", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"nlm", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"data", ",", RowBox[{"a", " ", SuperscriptBox["x", "b"]}], ",", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}], ",", "x"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"params", "=", RowBox[{"nlm", "[", "\"\\"", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"b", "/.", "params"}]}]}], "\[IndentingNewLine]", "]"}]}]], "Input", CellChangeTimes->{{3.8339647725688353`*^9, 3.8339649328744087`*^9}, { 3.833965051157412*^9, 3.8339650578368483`*^9}, {3.833965560813403*^9, 3.8339655739990377`*^9}, {3.833965620539852*^9, 3.833965639062742*^9}, { 3.833965942784672*^9, 3.833965996602522*^9}, {3.8342709119109173`*^9, 3.8342709184846773`*^9}, {3.834271399281299*^9, 3.834271400142085*^9}}, CellLabel->"In[21]:=",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"], Cell[BoxData[ RowBox[{ RowBox[{"pyramidG", "[", "n_", "]"}], ":=", RowBox[{"Table", "[", RowBox[{ RowBox[{"Which", "[", RowBox[{ RowBox[{ RowBox[{"i", "\[Equal]", "0"}], "&&", RowBox[{"j", "\[Equal]", "0"}]}], ",", "1", ",", RowBox[{ RowBox[{"i", "\[Equal]", "0"}], "||", RowBox[{"j", "\[Equal]", "0"}]}], ",", RowBox[{"-", "1"}], ",", "True", ",", RowBox[{"1", "-", FractionBox[ RowBox[{"2", SuperscriptBox[ RowBox[{"Sin", "[", FractionBox[ RowBox[{ RowBox[{"Abs", "[", RowBox[{"i", "-", "j"}], "]"}], "\[Pi]"}], "n"], "]"}], "2"]}], SuperscriptBox[ RowBox[{"Sin", "[", FractionBox["\[Pi]", "n"], "]"}], "2"]]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "0", ",", "n"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "0", ",", "n"}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.833978075492923*^9, 3.833978098104927*^9}, { 3.833978140873678*^9, 3.833978187704298*^9}, {3.833979750071292*^9, 3.833979764905096*^9}, {3.833980891992284*^9, 3.833980904095957*^9}}, CellLabel->"In[22]:=",ExpressionUUID->"3db5443f-dda7-4082-8ab7-96e274634389"], Cell[BoxData[ RowBox[{ RowBox[{"pyramidFractalDimension", "[", RowBox[{"n_", ",", "max_", ",", "delta_"}], "]"}], ":=", RowBox[{"fractalDimensionFromG", "[", RowBox[{ RowBox[{"N", "[", RowBox[{"pyramidG", "[", "n", "]"}], "]"}], ",", "max", ",", "delta", ",", RowBox[{"N", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"i", "\[Equal]", RowBox[{"n", "+", "1"}]}], ",", RowBox[{"-", "1"}], ",", FractionBox[ RowBox[{ RowBox[{"Sec", "[", FractionBox["\[Pi]", "n"], "]"}], "+", RowBox[{"Tan", "[", FractionBox["\[Pi]", "n"], "]"}]}], RowBox[{"Tan", "[", FractionBox["\[Pi]", "n"], "]"}]]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", RowBox[{"n", "+", "1"}]}], "}"}]}], "]"}], "]"}]}], "]"}]}]], "Input",\ CellChangeTimes->{{3.833978967161902*^9, 3.8339789914381647`*^9}, { 3.833979205542704*^9, 3.833979255368734*^9}, {3.833979399981943*^9, 3.833979410979437*^9}, {3.8339798534902363`*^9, 3.833979853676499*^9}, { 3.8339800331837673`*^9, 3.833980033963599*^9}, {3.833981434488759*^9, 3.8339814414612226`*^9}, {3.833981948527481*^9, 3.8339819534472733`*^9}}, CellLabel->"In[23]:=",ExpressionUUID->"52eb731d-d72b-4ff7-afc4-5691e9750e37"], Cell[BoxData[ RowBox[{"(*", RowBox[{"Timing", "[", RowBox[{"pyramidFractalDimension", "[", RowBox[{"11", ",", "100000", ",", "10000"}], "]"}], "]"}], "*)"}]], "Input", CellChangeTimes->CompressedData[" 1:eJwd0n0sFHAYB/BD4U6qq5atWDRRXMqdtyZEqKEipbJQImGlN2Je0oqd5kYp 1WW6lv5IZ4xZYqFy3tbUKMWYU3fn8lZeKi9Jv+/zx2+fP357nt9vz/O1iEw4 GK3L4XD82YFSu0K9V/mjnjJLZ30Y3uPIgy7liWT3JjcvOCzX94EtZQFHYc1M DrlrSBMF93OHyQ9zs7kwyddaAieV+6qgTbCKjBSNKqDQwrwZXm5oHIN/S0fI TG/BNExPkvyBa3kPdOvRp6mdVD6RGUDf9AoyJGSNMdzuJiZNSk1LoMjalnxW kMVvwH81Fath+/tlFjA3rtQKruybc4a9obtdYPdCpRuU9gvcYZE2akcjU2N7 jRSYH46D4sxY0kQnL/I17vOKyRjjthuwtryL1Fb9FL1FneofGb5YFw9VPb2k e+ixanjpVyjpNLPvJdSXB5KK6R/CJmaTWE8E/Yqm7sJ696WF0OxR5RYF6o++ IfvUUQ5Qf1HHCWYd6PeBMS3XfeGSOm4yVBXuJOM6m2pgh/ojudXw8/VmZlfs OGk3GN8LQz1SyZsVUscW5skgOWlzo7cGVn7VkrbfO4StmI/tFzJrvntjG3Pv 2W/kofS5sHb00wyFQ+Higv075roajhBm8qLj4Pjf4ARYn5ieDP3E2gwYvqxa BgtPW5fA1glhKZTwnpM5nc1OfcirnZrUmHhmD+D9Pd7k9gZBHsxI20FOao22 fcP+XeTkYMTFERiRlkQu58gsVci14Cl5azHHB6Yk3SNtAiUpkFdVRM765XfA M8qH5LjisYGaeUdZRorSYq/C824p5H3+vTUa5DJISiaumjeFXlKuGbxc/WLT ELPRtZnMllhthQNjItL0U22Ilvkutf8ITJv3NRzG/HWOkAYDFwImmYEbxKSh nCuFkXw+edthQg2tfv4mw5TxoimmvyyF1FrpFkAvHz6pibdYP81csdmeLE5e 2wotFzaSMstzjb+YV1xlpMepL2MGt0Y9YxWDJHfh+BIuc+B+AhkVXTdhxDwz xJmCv+1PhBkzH5blkx0O5QWwpFZD/gdS9J8/ "], CellLabel->"In[24]:=",ExpressionUUID->"00d846ff-ba2d-4cd3-a367-6099b9094d1e"], Cell[BoxData[ RowBox[{ RowBox[{"G", "=", RowBox[{"RootApproximant", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"1.0000000000000004`", ",", RowBox[{"-", "4.603875471609728`"}], ",", RowBox[{"-", "17.195669358089372`"}], ",", RowBox[{"-", "27.293504037134028`"}], ",", RowBox[{"-", "27.293504037134024`"}], ",", RowBox[{"-", "17.195669358089397`"}], ",", RowBox[{"-", "4.603875471609722`"}], ",", RowBox[{"-", "1.0000000000000415`"}], ",", RowBox[{"-", "1.0000000000000464`"}], ",", RowBox[{"-", "11.097834679044736`"}], ",", RowBox[{"-", "23.68962856552439`"}], ",", RowBox[{"-", "29.29350403713411`"}], ",", RowBox[{"-", "23.689628565524348`"}], ",", RowBox[{"-", "11.097834679044773`"}], ",", RowBox[{"-", "1.0000000000000546`"}], ",", RowBox[{"-", "2.1099162641748395`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "4.603875471609728`"}], ",", "0.9999999999999993`", ",", RowBox[{"-", "4.603875471609711`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "27.293504037133978`"}], ",", RowBox[{"-", "27.29350403713407`"}], ",", RowBox[{"-", "17.19566935808935`"}], ",", RowBox[{"-", "11.09783467904471`"}], ",", RowBox[{"-", "1.0000000000000389`"}], ",", RowBox[{"-", "1.0000000000000369`"}], ",", RowBox[{"-", "11.097834679044713`"}], ",", RowBox[{"-", "23.689628565524337`"}], ",", RowBox[{"-", "29.293504037134017`"}], ",", RowBox[{"-", "23.689628565524426`"}], ",", RowBox[{"-", "1.0000000000000546`"}], ",", RowBox[{"-", "2.109916264174834`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "17.195669358089372`"}], ",", RowBox[{"-", "4.603875471609711`"}], ",", "0.9999999999999978`", ",", RowBox[{"-", "4.603875471609712`"}], ",", RowBox[{"-", "17.19566935808932`"}], ",", RowBox[{"-", "27.293504037134067`"}], ",", RowBox[{"-", "27.29350403713402`"}], ",", RowBox[{"-", "23.689628565524316`"}], ",", RowBox[{"-", "11.097834679044697`"}], ",", RowBox[{"-", "1.0000000000000435`"}], ",", RowBox[{"-", "1.0000000000000424`"}], ",", RowBox[{"-", "11.097834679044714`"}], ",", RowBox[{"-", "23.689628565524323`"}], ",", RowBox[{"-", "29.293504037134156`"}], ",", RowBox[{"-", "1.0000000000000537`"}], ",", RowBox[{"-", "2.109916264174835`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "27.293504037134028`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "4.603875471609712`"}], ",", "0.999999999999999`", ",", RowBox[{"-", "4.603875471609698`"}], ",", RowBox[{"-", "17.195669358089347`"}], ",", RowBox[{"-", "27.29350403713398`"}], ",", RowBox[{"-", "29.293504037133978`"}], ",", RowBox[{"-", "23.68962856552428`"}], ",", RowBox[{"-", "11.097834679044709`"}], ",", RowBox[{"-", "1.0000000000000397`"}], ",", RowBox[{"-", "1.0000000000000369`"}], ",", RowBox[{"-", "11.09783467904469`"}], ",", RowBox[{"-", "23.68962856552439`"}], ",", RowBox[{"-", "1.0000000000000524`"}], ",", RowBox[{"-", "2.1099162641748315`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "27.293504037134024`"}], ",", RowBox[{"-", "27.293504037133978`"}], ",", RowBox[{"-", "17.19566935808932`"}], ",", RowBox[{"-", "4.603875471609698`"}], ",", "0.9999999999999971`", ",", RowBox[{"-", "4.603875471609718`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "23.689628565524277`"}], ",", RowBox[{"-", "29.293504037133978`"}], ",", RowBox[{"-", "23.689628565524316`"}], ",", RowBox[{"-", "11.097834679044704`"}], ",", RowBox[{"-", "1.000000000000044`"}], ",", RowBox[{"-", "1.0000000000000373`"}], ",", RowBox[{"-", "11.097834679044743`"}], ",", RowBox[{"-", "1.0000000000000517`"}], ",", RowBox[{"-", "2.109916264174833`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "17.195669358089397`"}], ",", RowBox[{"-", "27.29350403713407`"}], ",", RowBox[{"-", "27.293504037134067`"}], ",", RowBox[{"-", "17.195669358089347`"}], ",", RowBox[{"-", "4.603875471609718`"}], ",", "1.000000000000002`", ",", RowBox[{"-", "4.60387547160972`"}], ",", RowBox[{"-", "11.097834679044714`"}], ",", RowBox[{"-", "23.689628565524355`"}], ",", RowBox[{"-", "29.29350403713411`"}], ",", RowBox[{"-", "23.689628565524387`"}], ",", RowBox[{"-", "11.09783467904475`"}], ",", RowBox[{"-", "1.0000000000000386`"}], ",", RowBox[{"-", "1.000000000000049`"}], ",", RowBox[{"-", "1.000000000000056`"}], ",", RowBox[{"-", "2.1099162641748386`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "4.603875471609722`"}], ",", RowBox[{"-", "17.19566935808935`"}], ",", RowBox[{"-", "27.29350403713402`"}], ",", RowBox[{"-", "27.29350403713398`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "4.60387547160972`"}], ",", "0.9999999999999964`", ",", RowBox[{"-", "1.0000000000000377`"}], ",", RowBox[{"-", "11.09783467904471`"}], ",", RowBox[{"-", "23.689628565524345`"}], ",", RowBox[{"-", "29.293504037134056`"}], ",", RowBox[{"-", "23.689628565524348`"}], ",", RowBox[{"-", "11.097834679044695`"}], ",", RowBox[{"-", "1.000000000000048`"}], ",", RowBox[{"-", "1.0000000000000544`"}], ",", RowBox[{"-", "2.109916264174834`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1.0000000000000415`"}], ",", RowBox[{"-", "11.09783467904471`"}], ",", RowBox[{"-", "23.689628565524316`"}], ",", RowBox[{"-", "29.293504037133978`"}], ",", RowBox[{"-", "23.689628565524277`"}], ",", RowBox[{"-", "11.097834679044714`"}], ",", RowBox[{"-", "1.0000000000000377`"}], ",", "1.0000000000000029`", ",", RowBox[{"-", "4.6038754716097054`"}], ",", RowBox[{"-", "17.19566935808932`"}], ",", RowBox[{"-", "27.293504037133985`"}], ",", RowBox[{"-", "27.29350403713398`"}], ",", RowBox[{"-", "17.195669358089283`"}], ",", RowBox[{"-", "4.603875471609719`"}], ",", RowBox[{"-", "2.1099162641748332`"}], ",", RowBox[{"-", "1.0000000000000515`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1.0000000000000464`"}], ",", RowBox[{"-", "1.0000000000000389`"}], ",", RowBox[{"-", "11.097834679044697`"}], ",", RowBox[{"-", "23.68962856552428`"}], ",", RowBox[{"-", "29.293504037133978`"}], ",", RowBox[{"-", "23.689628565524355`"}], ",", RowBox[{"-", "11.09783467904471`"}], ",", RowBox[{"-", "4.6038754716097054`"}], ",", "0.9999999999999983`", ",", RowBox[{"-", "4.603875471609701`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "27.293504037133978`"}], ",", RowBox[{"-", "27.293504037133946`"}], ",", RowBox[{"-", "17.195669358089383`"}], ",", RowBox[{"-", "2.109916264174833`"}], ",", RowBox[{"-", "1.000000000000051`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "11.097834679044736`"}], ",", RowBox[{"-", "1.0000000000000369`"}], ",", RowBox[{"-", "1.0000000000000435`"}], ",", RowBox[{"-", "11.097834679044709`"}], ",", RowBox[{"-", "23.689628565524316`"}], ",", RowBox[{"-", "29.29350403713411`"}], ",", RowBox[{"-", "23.689628565524345`"}], ",", RowBox[{"-", "17.19566935808932`"}], ",", RowBox[{"-", "4.603875471609701`"}], ",", "1.`", ",", RowBox[{"-", "4.603875471609716`"}], ",", RowBox[{"-", "17.19566935808934`"}], ",", RowBox[{"-", "27.29350403713399`"}], ",", RowBox[{"-", "27.293504037134106`"}], ",", RowBox[{"-", "2.1099162641748364`"}], ",", RowBox[{"-", "1.0000000000000524`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "23.68962856552439`"}], ",", RowBox[{"-", "11.097834679044713`"}], ",", RowBox[{"-", "1.0000000000000424`"}], ",", RowBox[{"-", "1.0000000000000397`"}], ",", RowBox[{"-", "11.097834679044704`"}], ",", RowBox[{"-", "23.689628565524387`"}], ",", RowBox[{"-", "29.293504037134056`"}], ",", RowBox[{"-", "27.293504037133985`"}], ",", RowBox[{"-", "17.195669358089315`"}], ",", RowBox[{"-", "4.603875471609716`"}], ",", "0.9999999999999998`", ",", RowBox[{"-", "4.60387547160971`"}], ",", RowBox[{"-", "17.195669358089326`"}], ",", RowBox[{"-", "27.293504037134106`"}], ",", RowBox[{"-", "2.1099162641748364`"}], ",", RowBox[{"-", "1.0000000000000524`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "29.29350403713411`"}], ",", RowBox[{"-", "23.689628565524337`"}], ",", RowBox[{"-", "11.097834679044714`"}], ",", RowBox[{"-", "1.0000000000000369`"}], ",", RowBox[{"-", "1.000000000000044`"}], ",", RowBox[{"-", "11.09783467904475`"}], ",", RowBox[{"-", "23.689628565524348`"}], ",", RowBox[{"-", "27.29350403713398`"}], ",", RowBox[{"-", "27.293504037133978`"}], ",", RowBox[{"-", "17.19566935808934`"}], ",", RowBox[{"-", "4.60387547160971`"}], ",", "0.9999999999999984`", ",", RowBox[{"-", "4.603875471609714`"}], ",", RowBox[{"-", "17.195669358089404`"}], ",", RowBox[{"-", "2.109916264174836`"}], ",", RowBox[{"-", "1.0000000000000533`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "23.689628565524348`"}], ",", RowBox[{"-", "29.293504037134017`"}], ",", RowBox[{"-", "23.689628565524323`"}], ",", RowBox[{"-", "11.09783467904469`"}], ",", RowBox[{"-", "1.0000000000000373`"}], ",", RowBox[{"-", "1.0000000000000386`"}], ",", RowBox[{"-", "11.097834679044695`"}], ",", RowBox[{"-", "17.195669358089283`"}], ",", RowBox[{"-", "27.293504037133946`"}], ",", RowBox[{"-", "27.29350403713399`"}], ",", RowBox[{"-", "17.195669358089326`"}], ",", RowBox[{"-", "4.603875471609714`"}], ",", "1.0000000000000047`", ",", RowBox[{"-", "4.60387547160972`"}], ",", RowBox[{"-", "2.109916264174833`"}], ",", RowBox[{"-", "1.0000000000000515`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "11.097834679044773`"}], ",", RowBox[{"-", "23.689628565524426`"}], ",", RowBox[{"-", "29.293504037134156`"}], ",", RowBox[{"-", "23.68962856552439`"}], ",", RowBox[{"-", "11.097834679044743`"}], ",", RowBox[{"-", "1.000000000000049`"}], ",", RowBox[{"-", "1.000000000000048`"}], ",", RowBox[{"-", "4.603875471609719`"}], ",", RowBox[{"-", "17.195669358089383`"}], ",", RowBox[{"-", "27.293504037134106`"}], ",", RowBox[{"-", "27.293504037134106`"}], ",", RowBox[{"-", "17.195669358089404`"}], ",", RowBox[{"-", "4.60387547160972`"}], ",", "1.0000000000000004`", ",", RowBox[{"-", "2.109916264174844`"}], ",", RowBox[{"-", "1.0000000000000555`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1.0000000000000546`"}], ",", RowBox[{"-", "1.0000000000000546`"}], ",", RowBox[{"-", "1.0000000000000537`"}], ",", RowBox[{"-", "1.0000000000000524`"}], ",", RowBox[{"-", "1.0000000000000517`"}], ",", RowBox[{"-", "1.000000000000056`"}], ",", RowBox[{"-", "1.0000000000000544`"}], ",", RowBox[{"-", "2.1099162641748332`"}], ",", RowBox[{"-", "2.109916264174833`"}], ",", RowBox[{"-", "2.1099162641748364`"}], ",", RowBox[{"-", "2.1099162641748364`"}], ",", RowBox[{"-", "2.109916264174836`"}], ",", RowBox[{"-", "2.109916264174833`"}], ",", RowBox[{"-", "2.109916264174844`"}], ",", "1.`", ",", RowBox[{"-", "1.3418303776543883`"}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2.1099162641748395`"}], ",", RowBox[{"-", "2.109916264174834`"}], ",", RowBox[{"-", "2.109916264174835`"}], ",", RowBox[{"-", "2.1099162641748315`"}], ",", RowBox[{"-", "2.109916264174833`"}], ",", RowBox[{"-", "2.1099162641748386`"}], ",", RowBox[{"-", "2.109916264174834`"}], ",", RowBox[{"-", "1.0000000000000515`"}], ",", RowBox[{"-", "1.000000000000051`"}], ",", RowBox[{"-", "1.0000000000000524`"}], ",", RowBox[{"-", "1.0000000000000524`"}], ",", RowBox[{"-", "1.0000000000000533`"}], ",", RowBox[{"-", "1.0000000000000515`"}], ",", RowBox[{"-", "1.0000000000000555`"}], ",", RowBox[{"-", "1.3418303776543883`"}], ",", "0.9999999999999996`"}], "}"}]}], "}"}], "]"}]}], ";"}]], "Input", CellChangeTimes->{{3.8341807402994127`*^9, 3.834180742133628*^9}, { 3.834181255097064*^9, 3.834181261469574*^9}, 3.8342265115681334`*^9, { 3.834269547654948*^9, 3.83426955234289*^9}, {3.834279263308406*^9, 3.834279266598548*^9}, 3.834312777485221*^9}, CellLabel->"In[25]:=",ExpressionUUID->"6704429c-f8d8-488f-aa44-b58e4afb791d"], Cell[BoxData[ RowBox[{ RowBox[{"root", "=", RowBox[{"-", RowBox[{"{", RowBox[{ RowBox[{"-", "2.6755033759230464`"}], ",", RowBox[{"-", "2.6755033759230358`"}], ",", RowBox[{"-", "2.6755033759230473`"}], ",", RowBox[{"-", "2.6755033759230344`"}], ",", RowBox[{"-", "2.6755033759230398`"}], ",", RowBox[{"-", "2.6755033759230433`"}], ",", RowBox[{"-", "3.71077955633303`"}], ",", RowBox[{"-", "3.7107795563330153`"}], ",", RowBox[{"-", "3.7107795563330184`"}], ",", RowBox[{"-", "3.71077955633302`"}], ",", RowBox[{"-", "3.7107795563330255`"}], ",", RowBox[{"-", "3.710779556333014`"}], ",", "0.6213743677192812`", ",", RowBox[{"-", "1.6093357755815325`"}]}], "}"}]}]}], ";"}]], "Input", CellChangeTimes->{{3.834180875764398*^9, 3.834180877609824*^9}, 3.834181270520502*^9, 3.83422655699443*^9, {3.8342695416310997`*^9, 3.83426954395999*^9}, {3.8342792723452053`*^9, 3.8342792750702457`*^9}}, CellLabel->"In[26]:=",ExpressionUUID->"1eabb843-0fcd-48c2-8ba6-c1a8012517bf"], Cell[BoxData[ RowBox[{"(*", RowBox[{"fractalDimensionFromG", "[", RowBox[{"G", ",", "100000", ",", "5000", ",", "root"}], "]"}], "*)"}]], "Input", CellChangeTimes->CompressedData[" 1:eJxTTMoPSmViYGCQBGIQbcVkM4V34htH44urpoFojaM8C0D0BPZ5i0D0oq6r t0D00+02t0H0uvfuU/iAtO2HxWDaT7z6B4j+t6oHTD8PsWIRANJHHpwE08e/ lHGC6EX2jWD6WLcVP4j+vb9aAET/b1/8DUR/LHoCplfxzykSAdmTfrAYRDP8 1VURA9Jxtk5gumSqUasckH4T5AOmtbbtXQSiLdJ3LwXRrSrcV0F0u3g6mA6K e9kiD/KX9JxWEL3ms/UEPSDNJXwDTIt4L9MyBtJnRIS0QXSCltgnEyD9rD0V TJcKCB42BdIV1xvA9Emb+mOWQHpa7FcwPWPLnCueQFos+ymYzr/WvsEPZF7+ 2o0g+rXFW/YiIG32UpkDRAeoPTQG0bstvExAtNU+HpUKIM3ikwumAUXbxEc= "], CellLabel->"In[27]:=",ExpressionUUID->"93b323a4-3961-4489-aad0-08a79152d39c"], Cell[BoxData[ RowBox[{ RowBox[{"W", "=", GridBox[{ {"0", "0", "0", RowBox[{"-", "1"}]}, {"2", "0", "0", "1"}, {"0", "3", "0", "1"}, {"2", "3", SqrtBox["3"], "2"} }]}], ";"}]], "Input", CellChangeTimes->{{3.8342676567311163`*^9, 3.83426770251457*^9}, { 3.83436362090779*^9, 3.834363621444234*^9}}, CellLabel->"In[28]:=",ExpressionUUID->"8ff466ea-3410-450e-bffc-4a293b4ee96b"], Cell[BoxData[ RowBox[{ RowBox[{"P", "=", GridBox[{ {"0", RowBox[{ RowBox[{"-", "1"}], "/", "2"}], "0", "0"}, { RowBox[{ RowBox[{"-", "1"}], "/", "2"}], "0", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }]}], ";"}]], "Input", CellChangeTimes->{{3.8342676843163633`*^9, 3.8342677012142773`*^9}}, CellLabel->"In[29]:=",ExpressionUUID->"dbc4c4c2-1c52-463f-a6ed-8ebf8e2999c5"], Cell[BoxData[ RowBox[{ RowBox[{"G", "=", GridBox[{ {"1", RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "2"}]}, { RowBox[{"-", "1"}], "1", RowBox[{"-", "2"}], RowBox[{"-", "1"}]}, { RowBox[{"-", "1"}], RowBox[{"-", "2"}], "1", RowBox[{"-", "1"}]}, { RowBox[{"-", "2"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], "1"} }]}], ";"}]], "Input", CellChangeTimes->{{3.834255719098699*^9, 3.834255752266445*^9}, { 3.834255803667136*^9, 3.834255822215041*^9}, 3.834267713596407*^9, { 3.834363641553152*^9, 3.834363648776113*^9}}, CellLabel->"In[30]:=",ExpressionUUID->"6e850424-7b33-4d48-ad3f-a19322864464"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"W", ".", "P", ".", RowBox[{"Transpose", "[", "W", "]"}]}], "//", "MatrixForm"}]], "Input", CellChangeTimes->{{3.8343633434683943`*^9, 3.8343633944968452`*^9}}, CellLabel->"In[31]:=",ExpressionUUID->"41f244bb-1e4e-4e83-bfe8-1040dd285f02"], Cell[BoxData[ TagBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", RowBox[{"-", "1"}], RowBox[{"-", "1"}], RowBox[{"-", "2"}]}, { RowBox[{"-", "1"}], "1", RowBox[{"-", "2"}], RowBox[{"-", "1"}]}, { RowBox[{"-", "1"}], RowBox[{"-", "2"}], "1", RowBox[{"-", "1"}]}, { RowBox[{"-", "2"}], RowBox[{"-", "1"}], RowBox[{"-", "1"}], "1"} }, GridBoxAlignment->{"Columns" -> {{Center}}, "Rows" -> {{Baseline}}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}}], "\[NoBreak]", ")"}], Function[BoxForm`e$, MatrixForm[BoxForm`e$]]]], "Output", CellChangeTimes->{{3.834363345042426*^9, 3.834363394907709*^9}, 3.834363624185574*^9, 3.8343639801334887`*^9, 3.834364198424225*^9, 3.8344822111507607`*^9}, CellLabel-> "Out[31]//MatrixForm=",ExpressionUUID->"e582e1b7-3a92-42e5-9860-\ 07dc5edd51c3"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"v", "=", RowBox[{"Table", "[", RowBox[{ SubscriptBox["b", "i"], ",", RowBox[{"{", RowBox[{"i", ",", "4"}], "}"}]}], "]"}]}]], "Input", CellChangeTimes->{{3.834267747292341*^9, 3.8342677548359013`*^9}}, CellLabel->"In[32]:=",ExpressionUUID->"76c80b68-6d78-48f5-ad70-c8ee2c958376"], Cell[BoxData[ RowBox[{"{", RowBox[{ SubscriptBox["b", "1"], ",", SubscriptBox["b", "2"], ",", SubscriptBox["b", "3"], ",", SubscriptBox["b", "4"]}], "}"}]], "Output", CellChangeTimes->{ 3.834267755304275*^9, 3.834269358083054*^9, 3.834269393686844*^9, 3.8342694488183613`*^9, 3.834269494359353*^9, {3.8342695664079933`*^9, 3.8342696027466908`*^9}, 3.834270116138488*^9, 3.834270161252562*^9, 3.8342704383920507`*^9, 3.83427055565105*^9, {3.8342711033095303`*^9, 3.834271120588587*^9}, 3.834271489634482*^9, 3.834271596319798*^9, 3.834272147330011*^9, 3.83435169877804*^9, {3.834351997024363*^9, 3.83435201778999*^9}, 3.834363031990286*^9, 3.8343639822501802`*^9, 3.834364198444326*^9, 3.834482211167481*^9}, CellLabel->"Out[32]=",ExpressionUUID->"d97b2070-ad71-4943-811d-dbb00b08a905"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"eq", "=", RowBox[{ RowBox[{"Simplify", "[", RowBox[{"v", ".", RowBox[{"Inverse", "[", "G", "]"}], ".", "v"}], "]"}], "\[Equal]", "0"}]}]], "Input", CellChangeTimes->{{3.834267725468601*^9, 3.8342677925075703`*^9}}, CellLabel->"In[33]:=",ExpressionUUID->"8b9344c9-3e4c-41cb-86ac-5ca45403afc3"], Cell[BoxData[ RowBox[{ RowBox[{ FractionBox["1", "3"], " ", RowBox[{"(", RowBox[{ SubsuperscriptBox["b", "1", "2"], "+", SubsuperscriptBox["b", "2", "2"], "-", RowBox[{"2", " ", SubscriptBox["b", "1"], " ", RowBox[{"(", RowBox[{ SubscriptBox["b", "2"], "+", SubscriptBox["b", "3"]}], ")"}]}], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SubscriptBox["b", "3"], "-", SubscriptBox["b", "4"]}], ")"}], "2"], "-", RowBox[{"2", " ", SubscriptBox["b", "2"], " ", SubscriptBox["b", "4"]}]}], ")"}]}], "\[Equal]", "0"}]], "Output", CellChangeTimes->{{3.834267728369829*^9, 3.834267792813405*^9}, 3.834269358105122*^9, 3.8342693937074413`*^9, 3.8342694488390083`*^9, 3.834269494380106*^9, {3.834269566434243*^9, 3.834269602772138*^9}, 3.834270116164339*^9, 3.834270161279118*^9, 3.8342704384210176`*^9, 3.83427055567581*^9, {3.834271103323432*^9, 3.834271120603005*^9}, 3.8342714896514177`*^9, 3.8342715963354807`*^9, 3.834272147359429*^9, 3.834351698797674*^9, {3.834351997045382*^9, 3.834352017818926*^9}, 3.8343630336046457`*^9, 3.834363655137488*^9, 3.834363983393931*^9, 3.834364198463523*^9, 3.834482211190282*^9}, CellLabel->"Out[33]=",ExpressionUUID->"1f518cc9-445b-457c-87bb-e970a9f63962"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Total", "[", RowBox[{ RowBox[{"Solve", "[", RowBox[{"eq", ",", SubscriptBox["b", "4"]}], "]"}], "/.", RowBox[{ RowBox[{"{", RowBox[{ SubscriptBox["b", "4"], "\[Rule]", "x_"}], "}"}], "\[Rule]", "x"}]}], "]"}]], "Input", CellChangeTimes->{{3.83426789441687*^9, 3.834267939586699*^9}, { 3.8342679727473183`*^9, 3.8342680273972597`*^9}, {3.834363714474595*^9, 3.834363717250361*^9}, {3.834363752813319*^9, 3.834363812626932*^9}}, CellLabel->"In[34]:=",ExpressionUUID->"16cecdaa-b71e-4f1c-95f2-3546d887a495"], Cell[BoxData[ RowBox[{ RowBox[{"2", " ", SubscriptBox["b", "2"]}], "+", RowBox[{"2", " ", SubscriptBox["b", "3"]}]}]], "Output", CellChangeTimes->{{3.834267898318562*^9, 3.834267905504777*^9}, 3.8342679411798773`*^9, {3.834267976190343*^9, 3.834268028031088*^9}, 3.834269358160029*^9, 3.834269393760006*^9, 3.8342694488916893`*^9, 3.834269494434766*^9, {3.834269566488118*^9, 3.834269602825595*^9}, 3.834270116221366*^9, 3.834270161336067*^9, 3.834270438474659*^9, 3.8342705557299023`*^9, 3.83427070617946*^9, {3.834271103366624*^9, 3.834271120649811*^9}, 3.834271489700316*^9, 3.834271596381638*^9, 3.834272147424893*^9, 3.834351698900364*^9, {3.834351997068961*^9, 3.8343520178647337`*^9}, 3.834363718053323*^9, {3.834363758388579*^9, 3.834363781827297*^9}, 3.834363813182411*^9, 3.834363984591229*^9, 3.834364198514433*^9, 3.834482211280281*^9}, CellLabel->"Out[34]=",ExpressionUUID->"f281d64e-2bd2-4404-a12b-91c481932e4f"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"sigmas", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{GridBox[{ { RowBox[{"-", "1"}], "2", "2", "0"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"2", RowBox[{"-", "1"}], "0", "2"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"2", "0", RowBox[{"-", "1"}], "2"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"0", "2", "2", RowBox[{"-", "1"}]} }]}], "\[IndentingNewLine]", "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.834268212750614*^9, 3.834268282815816*^9}, { 3.834363829310417*^9, 3.834363843669476*^9}}, CellLabel->"In[35]:=",ExpressionUUID->"9a6a433f-918e-46fb-8cf5-5ce633ab5b0d"], Cell[BoxData[ RowBox[{ RowBox[{"faces", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3"}], "}"}]}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.8342682912805243`*^9, 3.8342683139154463`*^9}}, CellLabel->"In[36]:=",ExpressionUUID->"b35724fd-29ad-42fa-a49d-7bf98b91f121"], Cell[BoxData[ RowBox[{ RowBox[{"root", "=", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "4", ",", "5", ",", "9"}], "}"}]}], ";"}]], "Input", CellChangeTimes->{{3.834269271082727*^9, 3.834269280209474*^9}, { 3.834269615697873*^9, 3.834269616050098*^9}, 3.8342700328283663`*^9, { 3.83427028137157*^9, 3.834270281646906*^9}, {3.834270382691121*^9, 3.834270384742227*^9}, {3.8342706358639393`*^9, 3.834270637482791*^9}, { 3.8342717509835978`*^9, 3.83427175115452*^9}, {3.834272002011801*^9, 3.834272002098583*^9}, {3.83436385669696*^9, 3.834363858881136*^9}, { 3.8343646210101*^9, 3.834364623031375*^9}, {3.834482222055552*^9, 3.834482227036398*^9}}, CellLabel->"In[51]:=",ExpressionUUID->"adf87a8c-7800-4d56-a340-7526895affee"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Total", "[", RowBox[{ RowBox[{"sigmas", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ".", "v"}], "]"}]], "Input", CellChangeTimes->{{3.8342701786590567`*^9, 3.8342701920132732`*^9}, { 3.834270300677595*^9, 3.8342703127835407`*^9}, {3.834270596130591*^9, 3.834270633252564*^9}, {3.834270774793049*^9, 3.834270817557818*^9}}, CellLabel->"In[38]:=",ExpressionUUID->"37633a3e-93f6-4e02-89c2-f022303230da"], Cell[BoxData[ RowBox[{ RowBox[{"-", SubscriptBox["b", "1"]}], "+", RowBox[{"3", " ", SubscriptBox["b", "2"]}], "+", RowBox[{"3", " ", SubscriptBox["b", "3"]}], "+", SubscriptBox["b", "4"]}]], "Output", CellChangeTimes->{{3.834270183924911*^9, 3.834270192553357*^9}, 3.834270283582943*^9, 3.834270313878557*^9, 3.834270390043499*^9, 3.834270438523443*^9, {3.834270555771576*^9, 3.834270639760768*^9}, { 3.8342707696259623`*^9, 3.834270817902754*^9}, {3.8342711033983183`*^9, 3.834271120685095*^9}, 3.834271489740806*^9, 3.834271596418852*^9, 3.834272147466762*^9, 3.83435169892546*^9, {3.834351997102436*^9, 3.834352017902173*^9}, 3.8343638625127087`*^9, 3.8343641985475082`*^9, 3.834482211308651*^9}, CellLabel->"Out[38]=",ExpressionUUID->"f32c4a39-1ea0-4bb6-92bb-6c5bd406b5f7"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"eq", "/.", RowBox[{"{", RowBox[{ RowBox[{ SubscriptBox["b", "1"], "\[Rule]", RowBox[{"-", "2"}]}], ",", RowBox[{ SubscriptBox["b", "2"], "\[Rule]", "4"}], ",", RowBox[{ SubscriptBox["b", "3"], "\[Rule]", "5"}]}], "}"}]}], "//", "Simplify"}]], "Input", CellChangeTimes->{{3.834270320892424*^9, 3.8342703454042892`*^9}, { 3.8342706766721563`*^9, 3.834270680336699*^9}, {3.834363001714438*^9, 3.8343630041165047`*^9}, {3.834363044982485*^9, 3.8343630450946198`*^9}, { 3.834363182295018*^9, 3.834363249513712*^9}}, CellLabel->"In[39]:=",ExpressionUUID->"4ad53bef-81a3-4ded-a9a0-c0233561a7e5"], Cell[BoxData[ RowBox[{ SubscriptBox["b", "4"], "\[Equal]", "9"}]], "Output", CellChangeTimes->{{3.834270321514536*^9, 3.834270345732245*^9}, 3.8342704385506983`*^9, 3.834270555797867*^9, {3.834270658610314*^9, 3.834270680693759*^9}, 3.83427075479714*^9, {3.834271103411821*^9, 3.8342711207011223`*^9}, 3.834271489756778*^9, 3.834271596436777*^9, 3.834272147490357*^9, 3.834351698940927*^9, {3.834351997122982*^9, 3.8343520179283743`*^9}, 3.834363005076951*^9, {3.834363037375724*^9, 3.83436304561241*^9}, {3.834363182886771*^9, 3.8343632500565157`*^9}, 3.834363852750724*^9, 3.834364198566584*^9, 3.834364495261963*^9, 3.8344822113242693`*^9}, CellLabel->"Out[39]=",ExpressionUUID->"f657ef8e-52a6-4528-993a-bd1335363ffa"] }, Open ]], Cell[BoxData[ RowBox[{"(*", RowBox[{"search", "[", RowBox[{"sigmas", ",", RowBox[{"N", "[", "root", "]"}], ",", RowBox[{"-", "1"}], ",", "20"}], "]"}], "*)"}]], "Input", CellChangeTimes->{{3.834269253093897*^9, 3.834269268235035*^9}, { 3.83426931485015*^9, 3.834269326281529*^9}, {3.834269440249044*^9, 3.834269442877322*^9}, {3.834269575859881*^9, 3.834269598361561*^9}, { 3.834270027915841*^9, 3.834270030553297*^9}, {3.834270155311832*^9, 3.8342701572128067`*^9}, {3.8342703979803762`*^9, 3.834270400145377*^9}, { 3.834270559892991*^9, 3.834270561761071*^9}, {3.834271100563821*^9, 3.8342711165751047`*^9}, {3.8342714656515923`*^9, 3.834271485643083*^9}, { 3.834271537404784*^9, 3.8342715396864367`*^9}, {3.83427159034447*^9, 3.834271592149164*^9}, {3.834272087424869*^9, 3.834272111364039*^9}}, CellLabel->"In[40]:=",ExpressionUUID->"46f7ba91-5bac-4ae7-9a54-138e9ec6b60d"], Cell[BoxData[ RowBox[{"(*", RowBox[{ RowBox[{"sigmas", "=", RowBox[{"{", "\[IndentingNewLine]", RowBox[{GridBox[{ { RowBox[{"-", "1"}], "2", "2", "2"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"2", RowBox[{"-", "1"}], "2", "2"}, {"0", "0", "1", "0"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"2", "2", RowBox[{"-", "1"}], "2"}, {"0", "0", "0", "1"} }], ",", GridBox[{ {"1", "0", "0", "0"}, {"0", "1", "0", "0"}, {"0", "0", "1", "0"}, {"2", "2", "2", RowBox[{"-", "1"}]} }]}], "\[IndentingNewLine]", "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"faces", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "3", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3"}], "}"}]}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"root", "=", RowBox[{"{", RowBox[{ RowBox[{"-", "6"}], ",", "11", ",", "14", ",", "23"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"Timing", "[", RowBox[{ RowBox[{"search", "[", RowBox[{"sigmas", ",", RowBox[{"N", "[", "root", "]"}], ",", RowBox[{"{", "}"}], ",", "100000", ",", "faces"}], "]"}], "+", RowBox[{"Length", "[", "root", "]"}]}], "]"}]}], "*)"}]], "Input", CellChangeTimes->{{3.834270459190027*^9, 3.834270465193511*^9}, { 3.8342710715935173`*^9, 3.834271093607176*^9}, {3.834271316240868*^9, 3.834271321333003*^9}, {3.834271369315226*^9, 3.83427138415939*^9}, { 3.8342714577679443`*^9, 3.834271469770496*^9}, {3.834351709540537*^9, 3.8343517221320677`*^9}, 3.8343518549794073`*^9, {3.8343519213016357`*^9, 3.8343519374352407`*^9}, {3.834352192269598*^9, 3.834352205076268*^9}, { 3.834352403363192*^9, 3.834352415336894*^9}, 3.8343524567740088`*^9, 3.834352907817636*^9, 3.834352960448945*^9, {3.8343530134223633`*^9, 3.8343530172572937`*^9}, {3.834364165786512*^9, 3.8343641678676987`*^9}}, CellLabel->"In[41]:=",ExpressionUUID->"ea692d6b-a3f1-4695-a513-eaef5a64e60d"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"sigmas", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ".", "root"}]], "Input", CellChangeTimes->{{3.834364309198806*^9, 3.834364315630615*^9}, { 3.834364536335041*^9, 3.834364588811516*^9}, {3.834364936155011*^9, 3.834364962698073*^9}, {3.834365049261941*^9, 3.834365056740116*^9}, { 3.834482247335332*^9, 3.8344822647451897`*^9}}, CellLabel->"In[59]:=",ExpressionUUID->"97404788-a3ac-4fd1-83db-41988432c19c"], Cell[BoxData[ RowBox[{"{", RowBox[{"20", ",", "4", ",", "5", ",", "9"}], "}"}]], "Output", CellChangeTimes->{ 3.8343643160127068`*^9, 3.8343645404411592`*^9, {3.834364572595468*^9, 3.834364589345014*^9}, {3.834364929126811*^9, 3.83436496307482*^9}, { 3.834365050324903*^9, 3.834365057204047*^9}, 3.8344822113732147`*^9, { 3.8344822424974823`*^9, 3.83448226518806*^9}}, CellLabel->"Out[59]=",ExpressionUUID->"a7002fed-b093-472a-bbbb-ebc8229073ed"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"sigmas", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ".", RowBox[{"sigmas", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ".", RowBox[{"sigmas", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ".", "root"}], "//", "Total"}]], "Input", CellChangeTimes->{{3.8343649661668367`*^9, 3.8343650190653057`*^9}, { 3.834365063719788*^9, 3.834365066037496*^9}}, CellLabel->"In[43]:=",ExpressionUUID->"dadcc3c4-6364-42df-b84b-b8d72943df2b"], Cell[BoxData["11"], "Output", CellChangeTimes->{{3.834364973587739*^9, 3.834365019369627*^9}, 3.8343650663826017`*^9, 3.83448221142877*^9}, CellLabel->"Out[43]=",ExpressionUUID->"58d3d53f-f227-41ce-9a8a-dca7360934db"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Total", "[", "root", "]"}]], "Input", CellChangeTimes->{{3.834364511566435*^9, 3.83436451570404*^9}}, CellLabel->"In[44]:=",ExpressionUUID->"1d37e3b6-66ba-4472-a743-e93622c6ac9c"], Cell[BoxData["9"], "Output", CellChangeTimes->{{3.834364516240282*^9, 3.8343645216357203`*^9}, 3.834482211449671*^9}, CellLabel->"Out[44]=",ExpressionUUID->"6eaa965f-e656-4ed0-b759-4f1b341fa927"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Total", "[", RowBox[{ RowBox[{"sigmas", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ".", RowBox[{"sigmas", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ".", RowBox[{"sigmas", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ".", "root"}], "]"}]], "Input", CellChangeTimes->{{3.8343526322227297`*^9, 3.834352641100721*^9}, { 3.834363996621307*^9, 3.834363999587277*^9}, {3.834364225310771*^9, 3.8343643000517597`*^9}, {3.8343645048417253`*^9, 3.834364559595419*^9}, { 3.834364599161187*^9, 3.834364611580153*^9}}, CellLabel->"In[45]:=",ExpressionUUID->"bc7704dc-2d4f-4d6e-be25-437b7990d177"], Cell[BoxData["15"], "Output", CellChangeTimes->{{3.83435263841041*^9, 3.834352641587645*^9}, 3.834352704802144*^9, {3.834363994381441*^9, 3.834364000105105*^9}, { 3.8343641985951557`*^9, 3.834364300431389*^9}, {3.834364505914947*^9, 3.8343645599497337`*^9}, {3.834364601241448*^9, 3.8343646119022827`*^9}, 3.834482211466435*^9}, CellLabel->"Out[45]=",ExpressionUUID->"9b807560-20bc-4a7e-bebd-7453d5203f23"] }, Open ]], Cell[BoxData[ RowBox[{"(*", RowBox[{ RowBox[{"search", "[", RowBox[{ "generators_", ",", "current_", ",", "lastgen_", ",", "upperBound_"}], "]"}], ":=", "\[IndentingNewLine]", RowBox[{"Total", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ".", "current"}], ")"}], "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], "\[GreaterEqual]", "upperBound"}], "||", RowBox[{ RowBox[{"Total", "[", RowBox[{ RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ".", "current"}], "]"}], "\[LessEqual]", RowBox[{"Total", "[", "current", "]"}]}]}], ",", "0", ",", RowBox[{"1", "+", RowBox[{"search", "[", RowBox[{"generators", ",", RowBox[{ RowBox[{ "generators", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], ".", "current"}], ",", "i", ",", "upperBound"}], "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "4"}], "}"}]}], "]"}], "]"}]}], "*)"}]], "Input", CellChangeTimes->{{3.834271163271529*^9, 3.834271246051111*^9}, { 3.8342712903246737`*^9, 3.834271310062496*^9}, {3.834271341473411*^9, 3.8342713492127743`*^9}, {3.8342715319702*^9, 3.834271533730276*^9}, { 3.8342719293657618`*^9, 3.834271947818203*^9}, {3.834272078815785*^9, 3.834272081519147*^9}, {3.8342721236037807`*^9, 3.83427214226362*^9}, { 3.834351990869299*^9, 3.834351993528885*^9}}, CellLabel->"In[46]:=",ExpressionUUID->"9feb2ec0-647e-4872-9907-b92e6d4a628f"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"sigmas", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ".", "root"}]], "Input", CellChangeTimes->{{3.834272021760499*^9, 3.83427203146054*^9}, 3.834364154564042*^9}, CellLabel->"In[47]:=",ExpressionUUID->"336edb4a-23ed-42b9-b860-d4165f74f6b8"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "5", ",", "5"}], "}"}]], "Output", CellChangeTimes->{{3.83427202674335*^9, 3.834272031860688*^9}, { 3.834272147704256*^9, 3.8342721600061007`*^9}, 3.8343516990324917`*^9, { 3.8343519972905912`*^9, 3.834352019090838*^9}, 3.8343641986173077`*^9, 3.834482211493958*^9}, CellLabel->"Out[47]=",ExpressionUUID->"971b3d0b-d403-46b7-ae1b-695a880c1b54"] }, Open ]], Cell[BoxData[ RowBox[{"(*", RowBox[{"search", "[", RowBox[{"sigmas", ",", RowBox[{"N", "[", "root", "]"}], ",", RowBox[{"{", "}"}], ",", "10", ",", "faces"}], "]"}], "*)"}]], "Input", CellChangeTimes->{{3.834363921051414*^9, 3.834363950761215*^9}, { 3.834364012856628*^9, 3.834364015468774*^9}, {3.834364134655746*^9, 3.834364136951743*^9}}, CellLabel->"In[48]:=",ExpressionUUID->"5943882e-64ac-4901-a919-bda1a8692bcf"], Cell[BoxData[ RowBox[{"(*", RowBox[{ RowBox[{"max", "=", "100"}], ";", "\[IndentingNewLine]", RowBox[{"delta", "=", "10"}], ";", "\[IndentingNewLine]", RowBox[{"xs", "=", RowBox[{"Range", "[", RowBox[{"1", ",", "max", ",", "delta"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"ys", "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"search", "[", RowBox[{"sigmas", ",", RowBox[{"N", "[", "root", "]"}], ",", RowBox[{"-", "1"}], ",", "#"}], "]"}], "+", RowBox[{"Length", "[", "root", "]"}]}], "&"}], "/@", "xs"}]}], ";", "\[IndentingNewLine]", RowBox[{"data", "=", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"xs", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}], ",", RowBox[{ "ys", "\[LeftDoubleBracket]", "#", "\[RightDoubleBracket]"}]}], "}"}], "&"}], "/@", RowBox[{"Range", "[", RowBox[{"Length", "[", "ys", "]"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"nlm", "=", RowBox[{"NonlinearModelFit", "[", RowBox[{"data", ",", RowBox[{"a", " ", SuperscriptBox["x", "b"]}], ",", RowBox[{"{", RowBox[{"a", ",", "b"}], "}"}], ",", "x"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"params", "=", RowBox[{"nlm", "[", "\"\\"", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"b", "/.", "params"}]}], "*)"}]], "Input", CellChangeTimes->{{3.83427225142885*^9, 3.834272331149933*^9}, 3.8342725088235283`*^9, {3.834272547381021*^9, 3.834272547477632*^9}, { 3.834351693602374*^9, 3.8343516954988422`*^9}, {3.83436389691505*^9, 3.83436390716508*^9}, {3.8343641398377953`*^9, 3.8343641416802073`*^9}}, CellLabel->"In[49]:=",ExpressionUUID->"856a8716-587a-4b7a-b789-b38a63f87ec8"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"nlm", "[", "\"\\"", "]"}]], "Input", CellChangeTimes->{{3.834272427241466*^9, 3.8342724326668386`*^9}}, CellLabel->"In[50]:=",ExpressionUUID->"96291bb6-d846-4545-8cd6-2eed026c7e30"], Cell[BoxData[ RowBox[{"nlm", "[", "\<\"RSquared\"\>", "]"}]], "Output", CellChangeTimes->{ 3.834272432969537*^9, 3.834278750219996*^9, 3.834351699058116*^9, { 3.8343519973195133`*^9, 3.834352019121767*^9}, 3.83436419864568*^9, 3.8344822115283613`*^9}, CellLabel->"Out[50]=",ExpressionUUID->"543bb6c3-d112-4d49-aa4f-d5cad3332b8a"] }, Open ]] }, WindowSize->{1425., 776.25}, WindowMargins->{{7.5, Automatic}, {7.5, Automatic}}, TaggingRules->{ "WelcomeScreenSettings" -> {"FEStarting" -> False}, "TryRealOnly" -> False}, FrontEndVersion->"12.2 for Linux x86 (64-bit) (December 12, 2020)", StyleDefinitions->"Default.nb", ExpressionUUID->"e8622aad-0bd2-483b-a68b-2a26bc5485be" ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[558, 20, 418, 9, 29, "Input",ExpressionUUID->"e1bc883b-2413-4a7d-abe0-4a19eb3f78fd"], Cell[979, 31, 1053, 27, 92, "Input",ExpressionUUID->"025b5df5-f2a6-4cee-a294-e76ee16e74d4"], Cell[2035, 60, 509, 11, 29, "Input",ExpressionUUID->"54cc4a6c-be37-4091-ac21-3dfd11eb53ea"], Cell[2547, 73, 439, 11, 29, "Input",ExpressionUUID->"d3298122-6e10-4115-8e61-a949acba4e08"], Cell[2989, 86, 1406, 33, 51, "Input",ExpressionUUID->"4e2a5664-aeb5-4dfb-88fb-7e7839ba2141"], Cell[4398, 121, 342, 8, 29, "Input",ExpressionUUID->"c9a1b25a-8cb3-40d1-ac83-1d2405398934"], Cell[4743, 131, 1140, 33, 29, "Input",ExpressionUUID->"30b57c08-a123-4e7d-9b0a-b512fcfecee8"], Cell[5886, 166, 740, 20, 29, "Input",ExpressionUUID->"e30807a9-5381-4ad1-b9fd-a6a877ae69fe"], Cell[6629, 188, 671, 19, 29, "Input",ExpressionUUID->"d1264330-efcb-4ca7-a1c2-f6744f28eebe"], Cell[7303, 209, 708, 19, 29, "Input",ExpressionUUID->"efd0e321-9f31-4641-bf42-f73e16044635"], Cell[8014, 230, 548, 14, 29, "Input",ExpressionUUID->"810323e6-91cb-44f2-ad55-323fbec422eb"], Cell[8565, 246, 702, 19, 29, "Input",ExpressionUUID->"948959db-c926-4458-9e45-ef7f3fb99ba5"], Cell[9270, 267, 996, 28, 71, "Input",ExpressionUUID->"e7b8a43b-0fbc-4073-928d-10a091e21dd7"], Cell[10269, 297, 3990, 106, 298, "Input",ExpressionUUID->"5cb4f612-3c02-42ac-ad57-4fb2daf3366b"], Cell[14262, 405, 10810, 230, 422, "Input",ExpressionUUID->"df61872a-1e93-4b2b-ad66-1c8fee203402"], Cell[25075, 637, 6823, 176, 422, "Input",ExpressionUUID->"dab3b84f-3f49-42e4-9bc4-79cb6408f946"], Cell[31901, 815, 912, 24, 29, "Input",ExpressionUUID->"bd52b017-bd99-4bdf-9126-b7c62804c9f2"], Cell[32816, 841, 4816, 102, 133, "Input",ExpressionUUID->"4186f080-27d0-474f-9433-7cdeb3a7a49d"], Cell[CellGroupData[{ Cell[37657, 947, 357, 5, 29, "Input",ExpressionUUID->"a546161f-063b-4b38-811b-1f5d9ac28696"], Cell[38017, 954, 2190, 31, 33, "Output",ExpressionUUID->"01549ef8-b8be-4d3a-8e70-747610dfb968"] }, Open ]], Cell[40222, 988, 2560, 62, 242, "Input",ExpressionUUID->"3971d33a-d19f-42ea-9b17-0801f7a59659"], Cell[42785, 1052, 1277, 34, 66, "Input",ExpressionUUID->"3db5443f-dda7-4082-8ab7-96e274634389"], Cell[44065, 1088, 1383, 34, 65, "Input",ExpressionUUID->"52eb731d-d72b-4ff7-afc4-5691e9750e37"], Cell[45451, 1124, 1379, 26, 29, "Input",ExpressionUUID->"00d846ff-ba2d-4cd3-a367-6099b9094d1e"], Cell[46833, 1152, 14056, 288, 876, "Input",ExpressionUUID->"6704429c-f8d8-488f-aa44-b58e4afb791d"], Cell[60892, 1442, 1086, 22, 71, "Input",ExpressionUUID->"1eabb843-0fcd-48c2-8ba6-c1a8012517bf"], Cell[61981, 1466, 707, 15, 29, "Input",ExpressionUUID->"93b323a4-3961-4489-aad0-08a79152d39c"], Cell[62691, 1483, 419, 12, 82, "Input",ExpressionUUID->"8ff466ea-3410-450e-bffc-4a293b4ee96b"], Cell[63113, 1497, 436, 13, 78, "Input",ExpressionUUID->"dbc4c4c2-1c52-463f-a6ed-8ebf8e2999c5"], Cell[63552, 1512, 718, 23, 78, "Input",ExpressionUUID->"6e850424-7b33-4d48-ad3f-a19322864464"], Cell[CellGroupData[{ Cell[64295, 1539, 278, 5, 29, "Input",ExpressionUUID->"41f244bb-1e4e-4e83-bfe8-1040dd285f02"], Cell[64576, 1546, 1082, 35, 95, "Output",ExpressionUUID->"e582e1b7-3a92-42e5-9860-07dc5edd51c3"] }, Open ]], Cell[CellGroupData[{ Cell[65695, 1586, 327, 8, 29, "Input",ExpressionUUID->"76c80b68-6d78-48f5-ad70-c8ee2c958376"], Cell[66025, 1596, 836, 16, 33, "Output",ExpressionUUID->"d97b2070-ad71-4943-811d-dbb00b08a905"] }, Open ]], Cell[CellGroupData[{ Cell[66898, 1617, 339, 8, 29, "Input",ExpressionUUID->"8b9344c9-3e4c-41cb-86ac-5ca45403afc3"], Cell[67240, 1627, 1350, 31, 48, "Output",ExpressionUUID->"1f518cc9-445b-457c-87bb-e970a9f63962"] }, Open ]], Cell[CellGroupData[{ Cell[68627, 1663, 575, 14, 29, "Input",ExpressionUUID->"16cecdaa-b71e-4f1c-95f2-3546d887a495"], Cell[69205, 1679, 982, 17, 33, "Output",ExpressionUUID->"f281d64e-2bd2-4404-a12b-91c481932e4f"] }, Open ]], Cell[70202, 1699, 997, 31, 143, "Input",ExpressionUUID->"9a6a433f-918e-46fb-8cf5-5ce633ab5b0d"], Cell[71202, 1732, 541, 14, 29, "Input",ExpressionUUID->"b35724fd-29ad-42fa-a49d-7bf98b91f121"], Cell[71746, 1748, 773, 15, 29, "Input",ExpressionUUID->"adf87a8c-7800-4d56-a340-7526895affee"], Cell[CellGroupData[{ Cell[72544, 1767, 453, 8, 29, "Input",ExpressionUUID->"37633a3e-93f6-4e02-89c2-f022303230da"], Cell[73000, 1777, 831, 17, 33, "Output",ExpressionUUID->"f32c4a39-1ea0-4bb6-92bb-6c5bd406b5f7"] }, Open ]], Cell[CellGroupData[{ Cell[73868, 1799, 686, 17, 29, "Input",ExpressionUUID->"4ad53bef-81a3-4ded-a9a0-c0233561a7e5"], Cell[74557, 1818, 758, 12, 33, "Output",ExpressionUUID->"f657ef8e-52a6-4528-993a-bd1335363ffa"] }, Open ]], Cell[75330, 1833, 916, 15, 29, "Input",ExpressionUUID->"46f7ba91-5bac-4ae7-9a54-138e9ec6b60d"], Cell[76249, 1850, 2447, 63, 205, "Input",ExpressionUUID->"ea692d6b-a3f1-4695-a513-eaef5a64e60d"], Cell[CellGroupData[{ Cell[78721, 1917, 467, 8, 29, "Input",ExpressionUUID->"97404788-a3ac-4fd1-83db-41988432c19c"], Cell[79191, 1927, 464, 8, 56, "Output",ExpressionUUID->"a7002fed-b093-472a-bbbb-ebc8229073ed"] }, Open ]], Cell[CellGroupData[{ Cell[79692, 1940, 529, 11, 29, "Input",ExpressionUUID->"dadcc3c4-6364-42df-b84b-b8d72943df2b"], Cell[80224, 1953, 223, 3, 33, "Output",ExpressionUUID->"58d3d53f-f227-41ce-9a8a-dca7360934db"] }, Open ]], Cell[CellGroupData[{ Cell[80484, 1961, 205, 3, 29, "Input",ExpressionUUID->"1d37e3b6-66ba-4472-a743-e93622c6ac9c"], Cell[80692, 1966, 201, 3, 33, "Output",ExpressionUUID->"6eaa965f-e656-4ed0-b759-4f1b341fa927"] }, Open ]], Cell[CellGroupData[{ Cell[80930, 1974, 679, 13, 29, "Input",ExpressionUUID->"bc7704dc-2d4f-4d6e-be25-437b7990d177"], Cell[81612, 1989, 423, 6, 33, "Output",ExpressionUUID->"9b807560-20bc-4a7e-bebd-7453d5203f23"] }, Open ]], Cell[82050, 1998, 1885, 46, 51, "Input",ExpressionUUID->"9feb2ec0-647e-4872-9907-b92e6d4a628f"], Cell[CellGroupData[{ Cell[83960, 2048, 297, 6, 29, "Input",ExpressionUUID->"336edb4a-23ed-42b9-b860-d4165f74f6b8"], Cell[84260, 2056, 434, 8, 33, "Output",ExpressionUUID->"971b3d0b-d403-46b7-ae1b-695a880c1b54"] }, Open ]], Cell[84709, 2067, 444, 9, 29, "Input",ExpressionUUID->"5943882e-64ac-4901-a919-bda1a8692bcf"], Cell[85156, 2078, 1859, 48, 176, "Input",ExpressionUUID->"856a8716-587a-4b7a-b789-b38a63f87ec8"], Cell[CellGroupData[{ Cell[87040, 2130, 218, 3, 29, "Input",ExpressionUUID->"96291bb6-d846-4545-8cd6-2eed026c7e30"], Cell[87261, 2135, 341, 6, 33, "Output",ExpressionUUID->"543bb6c3-d112-4d49-aa4f-d5cad3332b8a"] }, Open ]] } ] *)