(* Content-type: application/vnd.wolfram.mathematica *) (*** Wolfram Notebook File ***) (* http://www.wolfram.com/nb *) (* CreatedBy='Mathematica 8.0' *) (*CacheID: 234*) (* Internal cache information: NotebookFileLineBreakTest NotebookFileLineBreakTest NotebookDataPosition[ 157, 7] NotebookDataLength[ 458547, 12870] NotebookOptionsPosition[ 419850, 11918] NotebookOutlinePosition[ 438248, 12242] CellTagsIndexPosition[ 438205, 12239] WindowFrame->Normal*) (* Beginning of Notebook Content *) Notebook[{ Cell[CellGroupData[{ Cell["ALGHCAtest.nb", "Title", PageWidth->WindowWidth], Cell["Validation of ALGHCA.nb", "Subtitle", PageWidth->WindowWidth], Cell["\<\ R.H.Beresford. Sept. 2011 using ALGHCA on MMA8, Dell1525 Updated May 2012.\ \>", "Subsubtitle", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"NotebookFileName", "[", "]"}], " ", RowBox[{"(*", RowBox[{"14.34", " ", RowBox[{ RowBox[{"2", "/", "5"}], "/", "2012"}]}], "*)"}]}]], "Input", CellID->29643164], Cell[BoxData["\<\"C:\\\\Users\\\\Roger\\\\A2012\\\\4Apr\\\\ALGHCAtest.nb\"\>"]\ , "Output"] }, Open ]], Cell[BoxData["Exit"], "Input"], Cell["\<\ Run Package ALGHCA.m from 8.0 ExtraPackages. Needs db96.txt to run Section 8.\ \>", "Text"], Cell[CellGroupData[{ Cell["THESIS.", "Section", PageWidth->PaperWidth, CellMargins->{{Inherited, -104.188}, {Inherited, Inherited}}, FontFamily->"Arial"], Cell[TextData[{ "Negative, real, complex, quaternionic and octonionic numbers, subtraction, \ and the signs {+, \[ImaginaryI], -, -\[ImaginaryI]}, constitute a degenerate \ subset of mathematics that is restricted to even symmetry. Algebraic loops \ (quasi-groups with 1) are created without using division, negation or \ subtraction, so they define general multiplication for Natural, Rational, and \ \[OpenCurlyDoubleQuote]Primal\[CloseCurlyDoubleQuote] (continuous, absolute, \ half line) unsigned numbers. They provide Cayley tables for the \ multiplication of \[OpenCurlyDoubleQuote]vecs\[CloseCurlyDoubleQuote], sets \ of {direction, unsigned coefficient} pairs. Signs can only be defined for \ loops having C", StyleBox["r", FontSlant->"Italic"], " (the cyclic group with ", StyleBox["r", FontSlant->"Italic"], " elements) as a central subgroup; these can be \ \[OpenCurlyDoubleQuote]folded\[CloseCurlyDoubleQuote] to introduce ", StyleBox["r", FontSlant->"Italic"], "\[CloseCurlyQuote]th roots of unity as \[OpenCurlyDoubleQuote]generalised \ signs\[CloseCurlyDoubleQuote]. Folding converts loops (with one operation, \ multiply) into algebras with generalised addition/subtraction as a second \ operation; vecs fold to vectors. Real and complex numbers are the result of \ 2- & 4-folding.\nFrobenius [4] showed that associative loops (i.e. groups) \ conserve their determinants (up to a sign) on vector multiplication. This \ symmetry-conserving property is possessed by all associative (group) and a \ few non-associative (octonionic \[DoubleStruckCapitalO]) Moufang loops, and \ by algebras folded from conservative loops. Vectors in these algebras have \ multiplicative inverses that split into partial fractions with determinant \ factors as numerators. \nI propose the name \[OpenCurlyDoubleQuote]hoops\ \[CloseCurlyDoubleQuote] for these symmetry-conserving \ partial-fraction-division algebras. I call the factors \ \[OpenCurlyDoubleQuote]sizes\[CloseCurlyDoubleQuote] and the list of \ conserved sizes the \[OpenCurlyDoubleQuote]shape\[CloseCurlyDoubleQuote] of a \ vector. Noether\[CloseCurlyQuote]s theorem (conserved symmetries generate \ particles and forces) implies that hoops are relevant to physics. \ Anti-symmetric hoops are the Clifford (Geometric) algebras that generalise \ many concepts to any number of dimensions. \[DoubleStruckCapitalR], \ \[DoubleStruckCapitalC], \[DoubleStruckCapitalH], \[DoubleStruckCapitalO], \ Pauli, and even-order Cliffords are degenerate algebras with a single size.\n\ When two vectors have disparate zero sizes, their product loses any sizes \ that are only present in one multiplicand - it is \ \[OpenCurlyDoubleQuote]projected\[CloseCurlyDoubleQuote] onto a sub-algebra \ of reduced symmetry. To maintain the key conservation property, lost sizes \ are \[OpenCurlyDoubleQuote]ejected\[CloseCurlyDoubleQuote] as (left or right) \ remainders. Multiplication (and division, which is multiplication by an \ inverse vector) can create a product and two remainders. This implements \ \[OpenCurlyDoubleQuote]vector-division-by-zero\[CloseCurlyDoubleQuote]; the \ zero is \[OpenCurlyDoubleQuote]factored-out\[CloseCurlyDoubleQuote] of the \ determinant.\nDifferent algebras (of the same length) conserve different (but \ overlapping) sets of conserved properties. The analogies with particle \ physics, where different forces conserve overlapping sets of properties and \ where particle interactions generate symmetry-conserving sets of \ \[OpenCurlyDoubleQuote]product + remainder\[CloseCurlyDoubleQuote] particles, \ have yet to be explored.\nThese concepts were developed empirically in the \ mathematica package ALGHCA.m, but have (for groups) a theoretical basis in \ Representation Theory. Every ", StyleBox["m", FontSlant->"Italic"], "\[CloseCurlyQuote]th order group has an irreducible matrix representation \ (abbreviated to \[OpenCurlyDoubleQuote]irrep\[CloseCurlyDoubleQuote]) \ involving the ", StyleBox["m", FontSlant->"Italic"], "\[CloseCurlyQuote]th root of unity as a generalised sign. Each size \ correspomds to one irrep, and hoop properties result from matrix \ multiplication of irreps (or their inverses) mapped with vectors. Projection \ corresponds to defining the inverse of a singular irrep as zero.\nSeveral ", StyleBox["Mathematica", FontSlant->"Italic"], " Demonstrations develop Loops and Hoops; A compact {<400 lines) Sage \ program develops the key properties of hoop algebras." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell[" Introduction.", "Section", PageWidth->PaperWidth, CellMargins->{{Inherited, -104.188}, {Inherited, Inherited}}, FontFamily->"Arial"], Cell[TextData[{ "\tThe ALGHCA package [1] develops Algebraic Loops, Groups (associative \ loops), symmetry-conserving generalized-sign vector-division \ \[OpenCurlyDoubleQuote]Hoop\[CloseCurlyDoubleQuote] Algebras & Clifford \ (anti-commutative hoop) Algebras. Noether\[CloseCurlyQuote]s theorem \ (conserved symmetries generate particles and forces) implies that hoops are \ relevant to physics.\n\tAlgebraic Loops (quasigroups with a 1) [2] define \ closed binary multiplication of pairs of un-signed elements. Each element is \ a \[OpenCurlyDoubleQuote]direction\[CloseCurlyDoubleQuote]. Loops also act as \ Cayley tables for the Cayley multiplication of \[OpenCurlyDoubleQuote]vecs\ \[CloseCurlyDoubleQuote], sets of magnitudes (unsigned coefficients) with \ associated directions.\n\tNegation, signs, subtraction and (signed) vectors \ are all concepts that arise from the unstated \[OpenCurlyDoubleQuote]minus 1 \ exists and is unique\[CloseCurlyDoubleQuote] axioms that are implicit in most \ of the mathematics literature. Generalized signs result from \ \[OpenCurlyDoubleQuote]folding\[CloseCurlyDoubleQuote] (equivalencing, \ collapsing) algebraic loops. Real numbers are equivalence relationships [3] \ on pairs of magnitudes with positive and negative directions, whilst complex \ numbers are equivalence relationships on four directions, {+,\[ImaginaryI], \ -, -\[ImaginaryI]}. Generalised signs are powers of ", StyleBox["r", FontSlant->"Italic"], "\[CloseCurlyQuote]th roots of unity. They are created when a loop is folded \ over a central subgroup Cr (the ", StyleBox["r", FontSlant->"Italic"], "\[CloseCurlyQuote]th cyclic group) and are more general than cyclotomic \ numbers, which ar projections onto the complex plane.\n\tLoops are created \ here as preferred-isomorph \[OpenCurlyDoubleQuote]protoloop\ \[CloseCurlyDoubleQuote] Cayley index-tables (shuffling the indices creates \ isomorphic tables without affecting the invariant properties of the loop). \ Folding introduces signs and \[OpenCurlyDoubleQuote]additive elimination\ \[CloseCurlyDoubleQuote] (generalized subtraction). The ", StyleBox["r", FontSlant->"Italic"], "-fold symmetry is then expressed by generalized signs (powers of ", StyleBox["r\[CloseCurlyQuote]", FontSlant->"Italic"], "th roots of unity). This second operation converts the loop into an \ algebra, and collapses a vec of length ", StyleBox["m", FontSlant->"Italic"], " to a vector of length ", StyleBox["m/r", FontSlant->"Italic"], ". Note that r=2 and 4 give real and complex vectors and algebras. Algebras \ with more than one cyclic central subgroup can be \ \[OpenCurlyDoubleQuote]multi-folded\[CloseCurlyDoubleQuote] to a compact \ representation with several sets of signs. Subtraction is the ", StyleBox["r", FontSlant->"Italic"], "=2 case of \[OpenCurlyDoubleQuote]additive elimination\ \[CloseCurlyDoubleQuote]; the sum of all ", StyleBox["r", FontSlant->"Italic"], " roots of zero is equivalenced to zero by ", StyleBox["r", FontSlant->"Italic"], "-folding. (Note. ", StyleBox["Mathematica", FontSlant->"Italic"], " uses ", StyleBox["Fold", FontSlant->"Italic"], " for something different, i.e. the last element of ", StyleBox["FoldList[...].", FontSlant->"Italic"], ")\n\tSome loop algebras conserve the determinant of the multiplication \ table on vector multiplication. Frobenius [4] showed that all associative \ loops (groups) had this property; it is also possessed by a few octonionic \ (square associative or alternative) Moufang Loops. I propose the name \ \[OpenCurlyDoubleQuote]hoops\[CloseCurlyDoubleQuote] for these conservative \ loops and the corresponding algebras. The property survives folding. Each \ determinant factor is a \[OpenCurlyDoubleQuote]size\[CloseCurlyDoubleQuote] \ or symmetry that is conserved on hoop multiplication. Writing Det[A] for the \ determinant of the table mapped with vector A, Det[AB] = \ \[PlusMinus]Det[A]Det[B]. I call the list of factors (discounting \ multiplicity) the \[OpenCurlyDoubleQuote]shape\[CloseCurlyDoubleQuote] of the \ vector.\n\tHoops also have a vector-division property. Every vector has a \ multiplicative inverse in a hoop of the same length. The inverse can be \ expressed as a partial fraction with each size providing a denominator \ (Cramer\[CloseCurlyQuote]s method). Implementing this is restricted to small \ hoops by the difficulty of inverting symbolic tables larger than about 16\ \[Cross]16. Fortunately, representation theory shows that, for group tables, \ the inverse is the sum of the inverses of the \ \[OpenCurlyDoubleQuote]irreducible affording matrix representations\ \[CloseCurlyDoubleQuote] (abbreviated here to \[OpenCurlyDoubleQuote]irreps\ \[CloseCurlyDoubleQuote]) [5],[6]. Irreps can been calculated for much larger \ groups. Over 1000 are are supplied in an external file, as lists of small \ matrices involving polynomials in ", StyleBox["s", FontSlant->"Italic"], ", where ", Cell[BoxData[ FormBox[ SuperscriptBox["s", StyleBox["mm", FontSlant->"Italic"]], TraditionalForm]]], " = 1 and ", StyleBox["mm", FontSlant->"Italic"], " is the hoop length. Abelian hoops are represented by lists of lists of \ matrices of size 1\[Cross]1 or 2\[Cross]2. Non-Abelian hoops have repeated \ factors that are represented by matrices of sizes equal to their \ multiplicity. In all cases, the real factors of the determinant can be found \ (for a real vector) from specified combinations (supplied as ", StyleBox["smReal", FontSlant->"Italic"], ") of irreps.\n\tClifford (Geometric) [7-14] algebras are the \ anti-commutative subset of hoops. Their distinctive features are introduced \ briefly here; several implementations (each with its own jargon) are \ available in the literature for them. They simplify and unify many aspects of \ multi-dimensional graphics, mathematics and physics, by splitting vectors \ into scalars, bivectors, trivectors, pseudoscalars, etc.\n\tALGHCA includes \ data based on the GAP atlas of finite groups, together with procedures to \ create, manipulate, and identify most groups and hoops with up to 96 elements \ (a few larger tables are included). The nomenclature is based the GAP system \ (simplified and freed from many ambiguities), and not that of ", StyleBox["Mathematica", FontSlant->"Italic"], "\[CloseCurlyQuote]s FiniteGroupData. (\[OpenCurlyDoubleQuote]C1\ \[CloseCurlyDoubleQuote], \[OpenCurlyDoubleQuote]C2\[CloseCurlyDoubleQuote], \ \[OpenCurlyDoubleQuote]C3\[CloseCurlyDoubleQuote] & \[OpenCurlyDoubleQuote]C4\ \[CloseCurlyDoubleQuote] are the only names in common.) \n\tThere are two \ databases. One, db96, describes 1013 groups as irreducible representation \ matrices. It is an external file occupying many megabytes. It is accessed by \ small suite of programmes that relate it to the main package. GAP\ \[CloseCurlyQuote]s SmallGroup(m,n) file is represented by the (Notebook \ format) ", StyleBox["sgm_n.txt", FontSlant->"Italic"], " file. (This is replaced by a much smaller version, db36, in the \ development package.) \n\tThe other database contains over 900 loops, groups, \ and hoops. It is sufficiently compact to be stored internally as ", StyleBox["loop[[mm,nn]]", FontSlant->"Italic"], ", where ", StyleBox["mm", FontSlant->"Italic"], " is the loop length and ", StyleBox["nn", FontSlant->"Italic"], " is an index. Groups are listed first, and SmallGroup(mm,nn) in the GAP \ Atlas is stored as ", StyleBox["loop[[mm,nn]]", FontSlant->"Italic"], ". These groups are followed by various loops, hoops, and Clifford \ (Geometric) algebras of the same length in arbitrary order.\n\tEach entry \ starts with an identification string (examples \[OpenCurlyDoubleQuote]C4\ \[CloseCurlyDoubleQuote], \[OpenCurlyDoubleQuote]C5n\[CloseCurlyDoubleQuote], \ \[OpenCurlyDoubleQuote]g", StyleBox["mmnn", FontSlant->"Italic"], "\[CloseCurlyDoubleQuote], \ \[OpenCurlyDoubleQuote]A4\[CloseCurlyDoubleQuote], \ \[OpenCurlyDoubleQuote]CL31\[CloseCurlyDoubleQuote]), followed by some \ information that allows the identification of most associative or \ conservative Cayley tables. The rest of the entry provides \ \[OpenCurlyDoubleQuote]incantations\[CloseCurlyDoubleQuote] that create the \ appropriate Cayley index table. The first effective incantation (some are \ nulls) provides the \[OpenCurlyDoubleQuote]protoloop\[CloseCurlyDoubleQuote]. \ Incantations create Cayley index-tables in many ways, using routines ", StyleBox["ca, co, cd, cLoop, fold, gd, ge, ma, md, mp, mg, ms, msi, pe, \ sgroup & ts", FontSlant->"Italic"], ". (See ", StyleBox["Usage", FontSlant->"Italic"], " for details.) All this information can be accessed via ", StyleBox["gd[]", FontSlant->"Italic"], " or ", StyleBox["gd[identifier]", FontSlant->"Italic"], ", where ", StyleBox["identifier", FontSlant->"Italic"], " can be ", StyleBox["mm,nn ", FontSlant->"Italic"], "or an identification string.\n\tHoops have extra information", StyleBox[" ", FontSlant->"Italic"], "stored in ", StyleBox["sd[identifier]", FontSlant->"Italic"], ". This first defines ", StyleBox["el", FontSlant->"Italic"], ", a list of element names such as {\[OSlash], \[DoubleStruckA], \ \[DoubleStruckA]2, \[DoubleStruckB], \[DoubleStruckA]\[DoubleStruckB], \ \[DoubleStruckA]2\[DoubleStruckB]}. Double-struck characters are used for \ elements, to avoid confusion with ordinary symbols. The first element is \ always \[OSlash], the neutral element; \[DoubleStruckA], \[DoubleStruckB] \ etc. are the generators (roots of unity) for \[OpenCurlyDoubleQuote]PC\ \[CloseCurlyDoubleQuote] (polycyclic) groups. The only non-polycyclic group \ in the package, A5 (which is \[OpenCurlyDoubleQuote]simple\ \[CloseCurlyDoubleQuote]), has permutations as element names. The symbolic \ factors of the hoop determinant are \[OpenCurlyDoubleQuote]sizes\ \[CloseCurlyDoubleQuote] (polynomials in terms of element names) that are \ conserved on multiplication/division. Linear factors are also conserved on \ addition and splitting. The list of sizes is called the \ \[OpenCurlyDoubleQuote]shape\[CloseCurlyDoubleQuote].\n\tThe two databases \ usually create different group isomorphs for a given group, with different \ elements ", StyleBox["el", FontSlant->"Italic"], " & ", StyleBox["gapel", FontSlant->"Italic"], " corresponding to different generator orderings. Hoops of a given length \ are arranged so that shared sizes have identical formulations in terms of ", StyleBox["el ", FontSlant->"Italic"], "whilst ", StyleBox["gape", FontSlant->"Italic"], "l is arranged to simplify folding.\n\tHoop algebras are implemented via two \ general procedures, ", StyleBox["hoopTimes[V1,V2,gg_:gLoop]", FontSlant->"Italic"], " and ", StyleBox["hoopInverse[V1]", FontSlant->"Italic"], " (extended versions ", StyleBox["gapTimes, gapInverse", FontSlant->"Italic"], " or ", StyleBox["cTimes, cInverse", FontSlant->"Italic"], " etc. handle gap and Clifford data). Here ", StyleBox["gg_:gLoop", FontSlant->"Italic"], " is a quasigroup Cayley table, with the \[OpenCurlyDoubleQuote]active loop\ \[CloseCurlyDoubleQuote] ", StyleBox["gLoop", FontSlant->"Italic"], " as the default case. Every vector ", StyleBox["V", FontSlant->"Italic"], " has a multiplicative (left) inverse, so division is always possible via ", StyleBox["hoopTimes[ hoopInverse[ V1],V2]", FontSlant->"Italic"], ". If two \[OpenCurlyDoubleQuote]disparate\[CloseCurlyDoubleQuote] vectors \ have different sizes that are zero, these sizes are lost from the product or \ dividend, which is thereby \[OpenCurlyDoubleQuote]projected\ \[CloseCurlyDoubleQuote] into an algebra of lower symmetry. This implements \ \[OpenCurlyDoubleQuote]vector-division-by-zero\[CloseCurlyDoubleQuote]. Size \ conservation (the property that defines a hoop ) is maintained by \ \[OpenCurlyDoubleQuote]ejecting\[CloseCurlyDoubleQuote] these sizes as left \ or right remainders. A*B=AB+Rr+Rl. Consequently AiAB+Rl recovers B and \ ABBi+Rr recovers A. Different algebras (of the same length) conserve \ different (but overlapping) sets of conserved properties. The analogy with \ particle physics, where different forces conserve overlapping sets of \ properties, has yet to be explored.\n\tAbelian hoops have polar duals; \ Cartesian coordinate can be interchanged with {offset, radius, angle} \ coordinates. Linear sizes are offsets (which are zero in small algebras such \ as \[DoubleStruckCapitalC]); each quadratic size provides a squared radius \ and an angle. (Higher-order sizes do not occur in abelian hoops.) If the \ product of all (non-zero) sizes is constrained to be 1, the result is an \ \[OpenCurlyDoubleQuote]orbit\[CloseCurlyDoubleQuote] with a representation as \ a set of symmetric multi-phase sinusoids. As non-Abelian hoops have repeated \ non-linear sizes, their shapes have too few degrees of freedom to give \ revertible polar duals - uncertainty is introduced via a Lie algebra." }], "Text"], Cell[TextData[{ "These concepts were developed using ", StyleBox["Mathematica", FontSlant->"Italic"], " and are demonstrated below. The basic concepts (multiplication, division, \ size conservation) were translated into GAP and demonstrated in the GAPForum \ in 2000 [15] and Sci.Physics 2001 [16]. [17] and [18] are ", StyleBox["Mathematica", FontSlant->"Italic"], " Demonstrations. These were all ignored, presumably because they lacked a \ rigorous mathematical derivation. A colleague (Graham Gerrard 2010) developed \ this derivation (for associative hoops) in terms of group representation \ theory. He found that \[OpenCurlyDoubleQuote]Irreducible Affording \ Representations\[CloseCurlyDoubleQuote] [21] were matrix representations of \ my \[OpenCurlyDoubleQuote]sizes\[CloseCurlyDoubleQuote]. Mapping a vector \ onto them allowed the replication of my operations. Vector inversion could be \ simplified to the summation of the inverse matrices. This overcomes a major \ problem with ", StyleBox["hoopInverse", FontSlant->"Italic"], " - the need to factorise the symbolic inverse. (Obtaining these factors is \ tedious for 16x16 tables, and impractible for most larger tables.) Gerrard \ generated a 25MB Mathematica compatible database for most groups of length up \ to 96. This is reproduced (with permission) as part of the package, together \ with (in section 10.16 of the package) routines to access and employ it. It \ is validated and demonstrated in Sections 5-7 of this notebook. As GAP is \ restricted to rational and cyclotomic numbers (making no use of real or \ complex numbers), ", StyleBox["Mathematica", FontSlant->"Italic"], " is needed to handle the full range of hoop algebras.\nGerrard is \ developing a compact Sage[22] Hoops package using the Python language. This \ gives access to the GAP [5] system and includes a version of db96. Indices \ start at 0 (not 1) and multiplication tables are matrices (unit diagonal \ isomorphs) instead of Cayley quasigroups (with identical first row and \ column) to allow fast inversion over cyclotomic fields. (Cayley \ multiplication should be more effective for long real vectors.)" }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["1. Hoop Data Validation.", "Section", PageWidth->WindowWidth, FontFamily->"Arial"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold", FontSlant->"Plain"], StyleBox[" A series of tests validate all the data and generation rules in \ the ALGHCA (short for AlgebraicLoops, Groups, Hoops, Cliffords Algebras) \ package. Tables with protoloops (preferred isomorphs) are first identified \ and counted; over 900 protoloops are generated and identified (840 uniquely). \ Clifford and generalized Cayley-Dickson algebras are tested. Many signed \ tables (loops \[OpenCurlyDoubleQuote]folded\[CloseCurlyDoubleQuote] so that a \ symmetry is represented by generalised signs) are listed. All the generator & \ matrix generator rules (\[OpenCurlyDoubleQuote]incantations\ \[CloseCurlyDoubleQuote] for tables) are tested. No significant errors were \ found in the current version; if any are found in copies, they must arise \ from transcription errors. Mathematica users should download (into the \ ExtraPackages file), run, save and close the ALGHCA package and save file \ db96.doc, from ", FontSlant->"Plain"], StyleBox[ButtonBox["http://library.wolfram.com/infocenter/MathSource/4894/", BaseStyle->"Hyperlink", ButtonData:>{ URL["http://library.wolfram.com/infocenter/MathSource/4894/"], None}], FontSlant->"Plain"], StyleBox[" and then use <"Plain"] }], "Text", PageWidth->PaperWidth, FontSlant->"Italic"], Cell[TextData[{ "Tested with ", StyleBox["Mathematica", FontSlant->"Italic"], " 8.04 on a Dell Inspiron 1525 using Windows Vista.\n\nAlmost all groups \ with up to 81 elements (plus a few larger examples) are incorporated in the \ ", StyleBox["loop[[m,n]]", FontSlant->"Italic"], " database, though some may not be uniquely identified. The ", StyleBox["db96", FontSlant->"Italic"], " database already includes all groups (but nothing else) up to size 90, \ plus size many of order 96. Different isomorphs are usually created by the \ two databases. (The much shorter ", StyleBox["db36", FontSlant->"Italic"], " is used during development.)" }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"(*", " ", RowBox[{ RowBox[{ "These", " ", "results", " ", "are", " ", "for", " ", "Dell", " ", "1525"}], ",", " ", RowBox[{"ALGHCA", ".", "m"}], ",", " ", RowBox[{"M8", ".04", " ", RowBox[{ RowBox[{"1", "/", "May"}], "/", "2012"}]}]}], "*)"}]], "Input"], Cell[CellGroupData[{ Cell["\<\ 1.1 Validation of all 911 Protoloops.\ \>", "Subsection", PageWidth->WindowWidth], Cell["\<\ \tTest 1 counts the loops in the database, finding that all are created as a \ protoloop.\ \>", "Text", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell["\<\ Test 1. Report Loops with (910) & without (0) Protoloops.\ \>", "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"np", "=", "0"}], ";", RowBox[{"noc", "=", "0"}], ";", RowBox[{"lp", "=", RowBox[{ RowBox[{"Length", "[", "loop", "]"}], "-", "1"}]}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"noc", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}], "===", "\"\\""}], "&&", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "5"}], "]"}], "]"}], "===", RowBox[{"{", "}"}]}], "&&", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "7"}], "]"}], "]"}], "===", RowBox[{"{", "}"}]}], "&&", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "8"}], "]"}], "]"}], "===", RowBox[{"{", "}"}]}], "&&", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "9"}], "]"}], "]"}], "===", RowBox[{"{", "}"}]}], "&&", RowBox[{ RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n"}], "]"}], "]"}], "]"}], "<", "10"}]}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], ",", "\"\< has no protoloop\>\""}], "}"}], "]"}], ",", RowBox[{"np", "++"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"m", ",", "lp"}], "}"}]}], "]"}], ";", RowBox[{"{", RowBox[{ "noc", ",", "\"\\"", ",", "np", ",", "\"\\""}], "}"}]}]], "Input", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{"{", RowBox[{ "910", ",", "\<\"loops \"\>", ",", "910", ",", "\<\"with protoloops\"\>"}], "}"}]], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "Test 2 Loops without simple prescriptions (i.e. ", StyleBox["ca, co, cd, cLoop, or sLoop", FontSlant->"Italic"], ")." }], "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[BoxData[ RowBox[{ RowBox[{"unp", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"noc", "=", "0"}], ";", RowBox[{"lp", "=", RowBox[{ RowBox[{"Length", "[", "loop", "]"}], "-", "1"}]}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "\[NotEqual]", RowBox[{"{", "}"}]}], ",", RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"noc", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}], "===", "\"\\""}], ",", RowBox[{"AppendTo", "[", RowBox[{"unp", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}]}], "}"}]}], "]"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}]}], "]"}], ",", RowBox[{"{", RowBox[{"m", ",", "1", ",", "lp"}], "}"}]}], "]"}], ";", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{"Length", "[", "unp", "]"}], ",", "\"\< tables without simple prescriptions\>\""}], "}"}], "]"}], ";"}]], "Input", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{ RowBox[{ "Print", "[", "\"\\"", "]"}], ";", RowBox[{"tbl", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"unp", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"unp", "[", RowBox[{"[", RowBox[{"i", "+", "24"}], "]"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"i", ",", "24"}], "}"}]}], "]"}]}], ";", RowBox[{"tbl", "//", "tf"}]}]], "Input", PageWidth->WindowWidth] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "1.2 Validation of first available prescription Rules.", StyleBox[" SLOW, 20 mins.", FontColor->RGBColor[1, 0, 0]] }], "Subsection", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell["Test 3. Correctness of first available prescriptions.", "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[TextData[{ "\tmp", StyleBox[" uses the first available prescription to create a table. The ", FontSlant->"Plain"], "id", StyleBox[" test calculates a generalized table signature ", FontSlant->"Plain"], "dico", StyleBox[" (diagonal count), which is unique for about 75% of hoops. \ Additional tests then separate most of the remaining cases. An error is \ reported if the correct ", FontSlant->"Plain"], "id", StyleBox[" is not found. Cases with \"?\" or \"CL\" in the name are not \ reported as they are either loops for which I have not found a discriminating \ test or Clifford isotopes. Set ", FontSlant->"Plain"], "pr", StyleBox["=1 to track progress.", FontSlant->"Plain"] }], "Text", PageWidth->WindowWidth, FontSlant->"Italic"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"pr", "=", "0"}], RowBox[{"(*", " ", RowBox[{"set", " ", "to", " ", "1", " ", "for", " ", "diagnostics"}], " ", "*)"}], ";", RowBox[{"presco", "=", "0"}], ";", RowBox[{"lp", "=", RowBox[{ RowBox[{"Length", "[", "loop", "]"}], "-", "1"}]}], ";", RowBox[{"unc", "=", "0"}], ";", RowBox[{"Timing", "[", "\[IndentingNewLine]", RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"lm", "=", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m1", "]"}], "]"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"m2", "=", RowBox[{"{", RowBox[{"m1", ",", "n1"}], "}"}]}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"pr", ">", "0"}], ",", RowBox[{"Print", "[", "m2", "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"res", "=", RowBox[{"id", "[", RowBox[{"test", "=", RowBox[{"mp", "[", "m2", "]"}]}], "]"}]}], ";", RowBox[{"tst", "=", RowBox[{"gd", "[", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"mm", ",", "nn"}], "}"}], "\[Equal]", "m2"}], ",", RowBox[{"presco", "++"}], ",", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"error", " ", "or", " ", "non"}], "-", RowBox[{"unique", "?"}]}], "*)"}], "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"StringFreeQ", "[", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m1", ",", "n1"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], " ", ",", "\"\\""}], "]"}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ "\"\\"", ",", "tst", ",", "\"\\"", ",", RowBox[{"gd", "[", RowBox[{"m1", ",", "n1"}], "]"}], ",", "res", ",", RowBox[{"{", RowBox[{"mm", ",", "nn"}], "}"}], ",", "m1"}], "}"}], "]"}], ",", RowBox[{"unc", "++"}]}], "]"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"n1", ",", "lm"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m1", ",", "1", ",", "lp"}], "}"}]}], "]"}], "]"}]}], "\[IndentingNewLine]", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ "presco", ",", "\"\< correct prescriptions.\\nLast mm,nn=\>\"", ",", "m2", ",", "\"\\"", ",", "unc"}], "}"}], "]"}]}], "Input", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{"{", RowBox[{"1063.069`", ",", "Null"}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"846", ",", "\<\" correct prescriptions.\\nLast mm,nn=\"\>", ",", RowBox[{"{", RowBox[{"168", ",", "1"}], "}"}], ",", "\<\"non-unique identifications\"\>", ",", "64"}], "}"}]], "Print"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "1.3 Validation of 553 ma (Matrix generator) Rules. ", StyleBox["SLOW 7 mins.", FontColor->RGBColor[1, 0, 0]] }], "Subsection", PageWidth->WindowWidth], Cell[TextData[{ "ALGHCA includes an arbitrary collection of 2x2, 3x3, & 4x4 \ \[OpenCurlyDoubleQuote]unitary monomial matrices\[CloseCurlyDoubleQuote], u2, \ u3, & u4, that were developed to allow the creation of groups with matrices \ as element using procedures ", StyleBox["ma, ms, msi, mg", FontSlant->"Italic"], ". Many of these matrices use \[OpenCurlyDoubleQuote]roots of unity\ \[CloseCurlyDoubleQuote] (rofu) as elements. I define \[DoubleStruckCapitalJ] \ & \[DoubleStruckCapitalY] as cube roots, \[DoubleStruckK] & \[DoubleStruckM] \ as negations, and \[DoubleStruckCapitalX] as another fourth root (i.e. \ \[OpenCurlyDoubleQuote]-\[OpenCurlyDoubleQuote] and \[OpenCurlyDoubleQuote]\ \[ImaginaryI] are not unique.) \[OpenCurlyDoubleQuote]findROU[M,1]\ \[CloseCurlyDoubleQuote] is used to set ", StyleBox["rofu", FontSlant->"Italic"], " to reduce these roots to their main range. The databank ", StyleBox["loop[[mm,nn]]", FontSlant->"Italic"], " includes lists of indices that create the loop from sets of u2, u3, or u4 \ matrices, as items loop[[m,n, {7, 8, & 9}]], . These were built some years \ ago, and are in ad-hoc order. Such incantations have not been found for all \ hoops." }], "Text"], Cell[CellGroupData[{ Cell["Test 3. Known matrix generators for hoops of a given length.", \ "Subsubsection"], Cell[TextData[{ "Set up a test for matrix generators of length ", StyleBox["mm1", FontSlant->"Italic"], " by first finding the number of loops of that length:-" }], "Text", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"mm1", "=", "3"}], ";"}], RowBox[{"(*", RowBox[{ RowBox[{"Initialise", " ", "to", " ", "mm"}], "-", "1"}], "*)"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"mm1", "++"}], ",", RowBox[{ RowBox[{"nn1", "=", "1"}], ";", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "mm1", "]"}], "]"}], "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"3", ",", "10"}], "}"}]], "Output"] }, Open ]], Cell[TextData[{ "Repeated use of the next cell tests all available matrix incantations for \ hoops of size", StyleBox[" mm1", FontSlant->"Italic"], ". It automatically increments ", StyleBox["nn1", FontSlant->"Italic"], " and ", StyleBox["mm1.", FontSlant->"Italic"] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"nn1", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"nn1", ">", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "mm1", "]"}], "]"}], "]"}]}], ",", RowBox[{ RowBox[{"mm1", "++"}], ";", RowBox[{"nn1", "=", "1"}]}]}], "]"}], ";", RowBox[{"gd", "[", RowBox[{"mm1", ",", "nn1"}], "]"}]}], "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"mm1", ",", "nn1", ",", "7"}], "]"}], "]"}], "!=", RowBox[{"{", "}"}]}], "||", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"mm1", ",", "nn1", ",", "8"}], "]"}], "]"}], "!=", RowBox[{"{", "}"}]}], "||", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"mm1", ",", "nn1", ",", "9"}], "]"}], "]"}], "!=", RowBox[{"{", "}"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"id", "[", RowBox[{"tst2", "=", RowBox[{"mp", "[", RowBox[{ RowBox[{"{", RowBox[{"mm1", ",", "nn1"}], "}"}], ",", "2"}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"id", "[", RowBox[{"tst3", "=", RowBox[{"mp", "[", RowBox[{ RowBox[{"{", RowBox[{"mm1", ",", "nn1"}], "}"}], ",", "3"}], "]"}]}], "]"}], ",", RowBox[{"id", "[", RowBox[{"tst4", "=", RowBox[{"mp", "[", RowBox[{ RowBox[{"{", RowBox[{"mm1", ",", "nn1"}], "}"}], ",", "4"}], "]"}]}], "]"}]}], "}"}]}], "]"}]}], "Input", PageWidth->PaperWidth], Cell[BoxData[ RowBox[{"{", RowBox[{"4", ",", "2", ",", RowBox[{"{", RowBox[{"\<\"C2C2\"\>", ",", RowBox[{"{", "4.`", "}"}], ",", "0", ",", "\<\"co[C2,C2]\"\>", ",", RowBox[{"{", RowBox[{"2", ",", "2"}], "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "1", ",", "4", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "4", ",", "3"}], "}"}]}], "}"}]}], "}"}]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C2C2\"\>", ",", "\<\"C2C2\"\>", ",", "\<\"C2C2\"\>"}], "}"}]], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "Test 3a. u2 Matrix ", StyleBox["ma", FontSlant->"Italic"], " validation & listing." }], "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "1", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "2", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "3", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "4", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "5", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "6", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "7", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "8", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "9", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "10", "}"}], ",", "u2"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n11\>\"", ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "11", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "12", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "13", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "14", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "15", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "16", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "17", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "18", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "19", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "20", "}"}], ",", "u2"}], "]"}], "]"}], ",", "\n", "\"\<\\n21\>\"", ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "21", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "22", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "23", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "24", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "25", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "26", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "27", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "28", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "29", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "32", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "33", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "34", "}"}], ",", "u2"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"mg", "[", RowBox[{ RowBox[{"{", "35", "}"}], ",", "u2"}], "]"}], "]"}]}], "}"}], " "}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C18\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C3\"\>", ",", "\<\"\\n11\"\>", ",", "\<\"C3\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C5\"\>", ",", "\<\"C6\"\>", ",", "\<\"C6\"\>", ",", "\<\"\\n21\"\>", ",", "\<\"C7\"\>", ",", "\<\"C8\"\>", ",", "\<\"C9\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C8\"\>", ",", "\<\"C6\"\>", ",", "\<\"C3\"\>", ",", "\<\"C4\"\>", ",", "\<\"C8\"\>"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"pr", "=", "1"}], ";", RowBox[{"maco", "=", "0"}], ";", RowBox[{"macn", "=", "0"}], ";", RowBox[{"u2e", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"toty", "=", "0"}], ";", RowBox[{"totn", "=", "0"}], ";", RowBox[{"lp", "=", RowBox[{ RowBox[{"Length", "[", "loop", "]"}], "-", "1"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"tst", "=", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "7"}], "]"}], "]"}]}], ")"}], "\[NotEqual]", RowBox[{"{", "}"}]}], ",", RowBox[{ RowBox[{"test", "=", RowBox[{"mp", "[", RowBox[{"m", ",", "n", ",", "2"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"id", "[", "test", "]"}], ";", RowBox[{"m0", "=", "mm"}], ";", RowBox[{"n0", "=", "nn"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"mm", ",", "nn"}], "}"}], "===", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}]}], ",", RowBox[{"maco", "++"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"StringFreeQ", "[", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], " ", ",", "\"\\""}], "]"}], ",", RowBox[{ RowBox[{"macn", "++"}], ";", RowBox[{"u2e", "=", RowBox[{"{", RowBox[{"tst", ",", "u2e"}], "}"}]}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"pr", ">", "0"}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"gd", "[", RowBox[{"m0", ",", "n0"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "]"}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], "\[IndentingNewLine]", ",", RowBox[{"{", RowBox[{"m", ",", "2", ",", "lp"}], "}"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"totn", "+=", "macn"}], ";", RowBox[{"toty", "+=", "maco"}], ";", RowBox[{"Print", "[", RowBox[{ "maco", ",", "\"\< correct \>\"", ",", "macn", ",", "\"\< wrong \>\"", ",", RowBox[{"Tally", "[", RowBox[{"Flatten", "[", "u2e", "]"}], "]"}]}], "]"}]}]}], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"12", ",", "13", ",", RowBox[{"{", RowBox[{"\<\"C24r\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1.`"}], ",", SubscriptBox["1", "11"], ",", "66"}], "}"}], ",", "0", ",", "\<\"ts[mp[{24,2},1]]\"\>", ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", RowBox[{"10", ",", "29"}], "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", "\<\"fold[mp[24,2]][[1]]\"\>"}], "}"}]}], "}"}], ",", "\<\"\\n\"\>", ",", RowBox[{"{", RowBox[{"12", ",", "12", ",", RowBox[{"{", RowBox[{"\<\"C3iC8r\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "3"}], ",", SubscriptBox["1", "6"], ",", "3", ",", "54"}], "}"}], ",", "0", ",", "\<\"ts[mp[{24,1},1]]\"\>", ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", RowBox[{"10", ",", "29"}], "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", "\<\"fold[mp[24,1]][[1]]\"\>"}], "}"}]}], "}"}]}], "}"}]], "Print"], Cell[BoxData[ InterpretationBox[ RowBox[{ "211", "\[InvisibleSpace]", "\<\" correct \"\>", "\[InvisibleSpace]", "1", "\[InvisibleSpace]", "\<\" wrong \"\>", "\[InvisibleSpace]", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"10", ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{"29", ",", "1"}], "}"}]}], "}"}]}], SequenceForm[211, " correct ", 1, " wrong ", {{10, 1}, {29, 1}}], Editable->False]], "Print"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "Test 3b. u3 Matrix ", StyleBox["ma", FontSlant->"Italic"], " validation & listing." }], "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"id", "[", RowBox[{"ma", "[", RowBox[{"{", RowBox[{"u3", "[", RowBox[{"[", "1", "]"}], "]"}], "}"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "2", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "3", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "4", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "5", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "6", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "7", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "8", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "9", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "10", "}"}], ",", "u3"}], "]"}], "]"}], ",", "\"\<\\n11\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "11", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "12", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "13", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "14", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "15", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "16", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "17", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "18", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ma", "[", RowBox[{"{", RowBox[{"u3", "[", RowBox[{"[", "19", "]"}], "]"}], "}"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "20", "}"}], ",", "u3"}], "]"}], "]"}], ",", "\n", "\"\<\\n21\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "21", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ma", "[", RowBox[{"{", RowBox[{"u3", "[", RowBox[{"[", "22", "]"}], "]"}], "}"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "23", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "24", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "25", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "26", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "27", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "28", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "29", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "30", "}"}], ",", "u3"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n31\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "31", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "32", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "33", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "34", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "35", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "36", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ma", "[", RowBox[{"{", RowBox[{"u3", "[", RowBox[{"[", "37", "]"}], "]"}], "}"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "38", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "39", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "40", "}"}], ",", "u3"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n41\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "41", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "42", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "43", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "44", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "45", "}"}], ",", "u3"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "46", "}"}], ",", "u3"}], "]"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C3\"\>", ",", "\<\"C3\"\>", ",", "\<\"C3\"\>", ",", "\<\"\\n11\"\>", ",", "\<\"C3\"\>", ",", "\<\"C3\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C5\"\>", ",", "\<\"C3C2c\"\>", ",", "\<\"C3C2c\"\>", ",", "\<\"C6\"\>", ",", "\<\"C3C2c\"\>", ",", "\<\"\\n21\"\>", ",", "\<\"C3C2c\"\>", ",", "\<\"C6\"\>", ",", "\<\"C3C2c\"\>", ",", "\<\"C7\"\>", ",", "\<\"C8\"\>", ",", "\<\"C8\"\>", ",", "\<\"C8\"\>", ",", "\<\"C9\"\>", ",", "\<\"C10c\"\>", ",", "\<\"C14c\"\>", ",", "\<\"\\n31\"\>", ",", "\<\"C18c\"\>", ",", "\<\"C3\"\>", ",", "\<\"C9\"\>", ",", "\<\"C4\"\>", ",", "\<\"C3\"\>", ",", "\<\"C4\"\>", ",", "\<\"C10\"\>", ",", "\<\"C2\"\>", ",", "\<\"C4\"\>", ",", "\<\"C2\"\>", ",", "\<\"\\n41\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"Cl3r\"\>", ",", "\<\"Cl3r\"\>"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"pr", "=", "1"}], ";", RowBox[{"maco", "=", "0"}], ";", RowBox[{"macn", "=", "0"}], ";", RowBox[{"u3e", "=", RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"tst", "=", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "8"}], "]"}], "]"}]}], ")"}], "\[NotEqual]", RowBox[{"{", "}"}]}], ",", RowBox[{ RowBox[{"test", "=", RowBox[{"mp", "[", RowBox[{"m", ",", "n", ",", "3"}], "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"id", "[", "test", "]"}], ";", RowBox[{"m0", "=", "mm"}], ";", RowBox[{"n0", "=", "nn"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"mm", ",", "nn"}], "}"}], "\[Equal]", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}]}], ",", RowBox[{"maco", "++"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"StringFreeQ", "[", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], " ", ",", "\"\\""}], "]"}], ",", RowBox[{ RowBox[{"macn", "++"}], ";", RowBox[{"u3e", "=", RowBox[{"{", RowBox[{"tst", ",", "u3e"}], "}"}]}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"pr", ">", "0"}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"gd", "[", RowBox[{"m0", ",", "n0"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", "]"}]}]}], "]"}]}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m", ",", "2", ",", "77"}], "}"}]}], "]"}], ";", RowBox[{"totn", "+=", "macn"}], ";", RowBox[{"toty", "+=", "maco"}], ";", RowBox[{"Print", "[", RowBox[{ "maco", ",", "\"\< correct \>\"", ",", "macn", ",", "\"\< wrong \>\"", ",", RowBox[{"Tally", "[", RowBox[{"Flatten", "[", "u3e", "]"}], "]"}]}], "]"}]}]}], "Input"], Cell[BoxData[ InterpretationBox[ RowBox[{ "169", "\[InvisibleSpace]", "\<\" correct \"\>", "\[InvisibleSpace]", "0", "\[InvisibleSpace]", "\<\" wrong \"\>", "\[InvisibleSpace]", RowBox[{"{", "}"}]}], SequenceForm[169, " correct ", 0, " wrong ", {}], Editable->False]], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[TextData[{ "Test 3c. u4 Matrix ", StyleBox["ma", FontSlant->"Italic"], " validation & listing." }], "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "1", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "2", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "3", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "4", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "5", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "6", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "7", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "8", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "9", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "10", "}"}], ",", "u4"}], "]"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "11", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "12", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "13", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "14", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "15", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "16", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "17", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "18", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "19", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "20", "}"}], ",", "u4"}], "]"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "21", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "22", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "23", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "24", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "25", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "26", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "27", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "28", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "29", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "30", "}"}], ",", "u4"}], "]"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "31", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "32", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "33", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "34", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "35", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "36", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "37", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "38", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "39", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "40", "}"}], ",", "u4"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n\>\"", ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "41", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "42", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "43", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "44", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "45", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "46", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "47", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "48", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "49", "}"}], ",", "u4"}], "]"}], "]"}], ",", RowBox[{"id", "[", RowBox[{"ms", "[", RowBox[{ RowBox[{"{", "50", "}"}], ",", "u4"}], "]"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C3\"\>", ",", "\<\"C3\"\>", ",", "\<\"C3\"\>", ",", "\<\"\\n\"\>", ",", "\<\"C3\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C5\"\>", ",", "\<\"C6\"\>", ",", "\<\"C6\"\>", ",", "\<\"C7\"\>", ",", "\<\"\\n\"\>", ",", "\<\"C8\"\>", ",", "\<\"C8\"\>", ",", "\<\"C9\"\>", ",", "\<\"C10\"\>", ",", "\<\"C10c\"\>", ",", "\<\"Cl3r\"\>", ",", "\<\"Cl3r\"\>", ",", "\<\"C15\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"\\n\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C2\"\>", ",", "\<\"C6\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C4\"\>", ",", "\<\"Unrecognised\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"C2\"\>", ",", "\<\"\\n\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C2\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C2\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C4c\"\>", ",", "\<\"C2\"\>"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"pr", "=", "1"}], RowBox[{"(*", " ", "u4", "*)"}], ";", RowBox[{"maco", "=", "0"}], ";", RowBox[{"macn", "=", "0"}], ";", RowBox[{"u4e", "=", RowBox[{"{", "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", "\[IndentingNewLine]", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"tst", "=", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "9"}], "]"}], "]"}]}], ")"}], "\[NotEqual]", RowBox[{"{", "}"}]}], ",", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"pr", ">", "1"}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{"m", ",", "n", ",", "tst"}], "}"}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"(*", RowBox[{ RowBox[{"If", " ", "signed"}], ",", " ", RowBox[{"use", " ", "ms"}]}], "*)"}], RowBox[{"mt", "=", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "2", ",", "1"}], "]"}], "]"}], ">", "0"}], ",", "mg", ",", "ms"}], "]"}]}], ";", RowBox[{"test", "=", RowBox[{"mt", "[", RowBox[{"tst", ",", "u4"}], "]"}]}], ";", RowBox[{"id", "[", "test", "]"}], ";", RowBox[{"m0", "=", "mm"}], ";", RowBox[{"n0", "=", "nn"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"mm", ",", "nn"}], "}"}], "\[Equal]", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}]}], ",", RowBox[{"maco", "++"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"StringFreeQ", "[", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m1", ",", "n1"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], " ", ",", "\"\\""}], "]"}], ",", RowBox[{ RowBox[{"macn", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"pr", ">", "0"}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], ",", "\"\<\\n\>\"", ",", RowBox[{"gd", "[", RowBox[{"m0", ",", "n0"}], "]"}]}], "}"}], "]"}]}], "]"}]}]}], "]"}]}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m", ",", "2", ",", "77"}], "}"}]}], "]"}], ";", RowBox[{"totn", "+=", "macn"}], ";", RowBox[{"toty", "+=", "maco"}], ";", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ "maco", ",", "\"\< correct \>\"", ",", "macn", ",", "\"\< wrong\>\"", ",", RowBox[{"Tally", "[", RowBox[{"Flatten", "[", "u4e", "]"}], "]"}], ",", "\"\\"", ",", "toty", ",", "totn"}], "}"}], "]"}]}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ "173", ",", "\<\" correct \"\>", ",", "0", ",", "\<\" wrong\"\>", ",", RowBox[{"{", "}"}], ",", "\<\"Totals \"\>", ",", "553", ",", "1"}], "}"}]], "Print"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 1.4 Validation 31 of Generalised Cayley-Dickson Doubling procedures.\ \>", "Subsection", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell["Test 4a. Cayley-Dickson validation & listing.", "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell["\<\ The Cayley-Dickson doubling procedure creates non-commutative Quaternions \ from complex numbers (folded C4), and non-associative Octonions from \ Quaternions. Further doubling produces uninteresting Sedenions etc. The \ original procedure involved gammas (generators) that square to -1. Here, they \ are generalized to allow gammas that square to +1. Starting with the matrix \ {{1}} (unsigned \[OpenCurlyDoubleQuote]primal\[CloseCurlyDoubleQuote] \ numbers) gives reals (with subtraction but with loss of unique roots), \ complex (with polynomial solutions but with loss of order), quaternion (with \ loss of commutativity), octonion (with loss of associativity). Further \ generalizations start from other matrices, and create a few more non-trivial \ algebras.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"cdcases", "=", "0"}], ";", RowBox[{"cdd", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Take", "[", RowBox[{ RowBox[{"Characters", "[", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}], "]"}], ",", "2"}], "]"}], "==", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}], ",", RowBox[{ RowBox[{"cdcases", "++"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}]}], "}"}]}], "]"}]}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"idc", "[", "]"}], "\[NotEqual]", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}]}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], "]"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"m", ",", "33"}], "}"}]}], "]"}], ";", RowBox[{"{", RowBox[{"cdcases", ",", "\"\< have valid cd prescriptions\>\""}], "}"}]}]], "Input", PageWidth->WindowWidth, FontFamily->"Courier New"], Cell[BoxData[ RowBox[{"{", RowBox[{"31", ",", "\<\" have valid cd prescriptions\"\>"}], "}"}]], "Output"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", "}"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", "}"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", "}"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", "}"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cdd", ",", RowBox[{"{", "}"}]}], "]"}], ";", RowBox[{"tbl", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"cdd", "[", RowBox[{"[", "i", "]"}], "]"}], ",", RowBox[{"cdd", "[", RowBox[{"[", RowBox[{"i", "+", "11"}], "]"}], "]"}], ",", RowBox[{"cdd", "[", RowBox[{"[", RowBox[{"i", "+", "22"}], "]"}], "]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"i", ",", "11"}], "}"}]}], "]"}]}], ";", RowBox[{"tbl", "//", "tf"}]}]], "Input", PageWidth->WindowWidth], Cell[TextData[{ "\t Alt12n is retained as an example of the non-conservative loops that can \ be created by CD doubling. Candidates for inclusion in the database should be \ checked by the following routine. The example is not conservative, \ associative, or Moufang, though it is shown to have the same ", StyleBox["dico", FontSlant->"Italic"], " as Q8C2M:-" }], "Text", PageWidth->WindowWidth], Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{ RowBox[{"cd", "[", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "1"}], "}"}], "]"}], ",", "C2"}], "]"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"indexTableQ", "[", "tst", "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"idc", "[", "tst", "]"}], ",", RowBox[{"associativeQ", "[", "tst", "]"}], ",", RowBox[{"alternativeQ", "[", "tst", "]"}], ",", RowBox[{"MoufangQ", "[", "tst", "]"}], ",", RowBox[{"dico", "[", "tst", "]"}]}], "}"}]}], "]"}]}], "Input", PageWidth->WindowWidth], Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", RowBox[{"tst", "=", RowBox[{"mp", "[", "\"\\"", "]"}]}], "]"}], ";"}], "\n", RowBox[{"If", "[", RowBox[{ RowBox[{"indexTableQ", "[", "tst", "]"}], ",", RowBox[{"{", RowBox[{ RowBox[{"idc", "[", "tst", "]"}], ",", RowBox[{"associativeQ", "[", "tst", "]"}], ",", RowBox[{"alternativeQ", "[", "tst", "]"}], ",", RowBox[{"MoufangQ", "[", "tst", "]"}], ",", RowBox[{"dico", "[", "tst", "]"}]}], "}"}]}], "]"}]}], "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 1.5 Validation of 11 Moufang Doubling procedures.\ \>", "Subsection", PageWidth->WindowWidth], Cell[TextData[{ "The ", StyleBox["Loops", FontSlant->"Italic"], " section of the GAP guide describes a procedure that generates \ non-associative Moufang Loops. This is used here in 11 cases. All are found \ and correctly identified. Loops with names ending in ", StyleBox["n", FontSlant->"Italic"], " are not conservative." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"mdcases", "=", "0"}], ";", RowBox[{"mdd", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"Characters", "[", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}], "\[Equal]", "\"\\""}], ",", RowBox[{ RowBox[{"mdcases", "++"}], ";", RowBox[{"AppendTo", "[", RowBox[{"mdd", ",", RowBox[{"{", RowBox[{"m", ",", "n", ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}], ",", RowBox[{"M", "=", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}]}]}], "}"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"Mi", "=", RowBox[{"id", "[", RowBox[{"ToExpression", "[", "M", "]"}], "]"}]}], ")"}], "\[NotEqual]", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}]}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{"m", ",", "n", ",", "Mi", ",", RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}]}], "}"}], "]"}]}], "]"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m", ",", "2", ",", "128"}], "}"}]}], "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{"mdcases", ",", "\"\< have valid md prescriptions\>\""}], "}"}], "\[IndentingNewLine]", RowBox[{"Column", "[", "mdd", "]"}]}], "Input", PageWidth->WindowWidth, FontFamily->"Courier New"], Cell[BoxData[ RowBox[{"{", RowBox[{"36", ",", "17", ",", "\<\"D18Mn?\"\>", ",", RowBox[{"{", RowBox[{"36", ",", "17", ",", RowBox[{"{", RowBox[{"\<\"E18Mn?\"\>", ",", RowBox[{"{", RowBox[{"28", ",", SubscriptBox["1", "8"]}], "}"}], ",", "0", ",", "\<\"md[co[C3,ca[6,5],2]]\"\>", ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "}"}]}], "}"}]}], "}"}]], "Print"], Cell[BoxData[ RowBox[{"{", RowBox[{"11", ",", "\<\" have valid md prescriptions\"\>"}], "}"}]], "Output"], Cell[BoxData[ TagBox[GridBox[{ { RowBox[{"{", RowBox[{"12", ",", "6", ",", "\<\"S3Mn\"\>", ",", "\<\"md[S3]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{"16", ",", "16", ",", "\<\"D8Mn\"\>", ",", "\<\"md[D8]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{"16", ",", "17", ",", "\<\"Q8M\"\>", ",", "\<\"md[Q8]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{ "28", ",", "5", ",", "\<\"D14Mn\"\>", ",", "\<\"md[ca[14,13]]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{ "32", ",", "60", ",", "\<\"P16M\"\>", ",", "\<\"md[co[P4,C4],{1,10,11,12,5,14,15,16,9,2,3,4,13,6,7,8}]\"\>"}]\ , "}"}]}, { RowBox[{"{", RowBox[{ "32", ",", "61", ",", "\<\"C8pC2M\"\>", ",", "\<\"md[co[ca[8],C2,4],{1,6,3,8,5,2,7,4,13,14,15,16,9,10,11,12}]\"\ \>"}], "}"}]}, { RowBox[{"{", RowBox[{ "32", ",", "62", ",", "\<\"KiC4M\"\>", ",", "\<\"md[co[C2C2,C4,2],{1,4,3,2,7,8,5,6,9,12,11,10,15,16,13,14}]\"\ \>"}], "}"}]}, { RowBox[{"{", RowBox[{ "32", ",", "63", ",", "\<\"Q8C2M\"\>", ",", "\<\"md[co[Q8,C2]]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{ "36", ",", "15", ",", "\<\"D18Mn?\"\>", ",", "\<\"md[ca[18,17]]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{ "36", ",", "16", ",", "\<\"D3C3Mn\"\>", ",", "\<\"md[co[S3,C3]]\"\>"}], "}"}]}, { RowBox[{"{", RowBox[{ "36", ",", "17", ",", "\<\"E18Mn?\"\>", ",", "\<\"md[co[C3,ca[6,5],2]]\"\>"}], "}"}]} }, GridBoxAlignment->{"Columns" -> {{Left}}}, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Column"]], "Output"] }, Open ]], Cell[TextData[{ "The unresolved pair have the same ", StyleBox["dico", FontSlant->"Italic"], ", but different ", StyleBox["trico", FontSlant->"Italic"], ":-" }], "Text"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"trico", "[", RowBox[{"md", "[", RowBox[{"ca", "[", RowBox[{"18", ",", "17"}], "]"}], "]"}], "]"}], ",", RowBox[{"trico", "[", RowBox[{"md", "[", RowBox[{"co", "[", RowBox[{"C3", ",", RowBox[{"ca", "[", RowBox[{"6", ",", "5"}], "]"}], ",", "2"}], "]"}], "]"}], "]"}]}], "}"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell[TextData[{ "1.6 Validation of 766 Relator Rules. ", StyleBox["SLOW, 24 mins.", FontColor->RGBColor[1, 0, 0]] }], "Subsection", PageWidth->WindowWidth], Cell[TextData[{ "Prime-length groups are Cyclic, and their elements can be created as powers \ of the appropriate prime root of unity. All but one (A5) of the non-prime \ groups in this database are polycyclic (\[OpenCurlyDoubleQuote]PC\ \[CloseCurlyDoubleQuote]); they can be created by direct or indirect \ composition of a set of generators (cyclic groups). I use {\[DoubleStruckA],\ \[DoubleStruckB],..,\[DoubleStruckG]) as generators, being the roots of unity \ whose powers are specified in loop[[mm,nn,5]]. Direct compositions are \ Abelian, so each element (apart from the neutral element, which I label \ \[OSlash]) can be given a lex-ordered label. Indirect compositions are \ non-Abelian, and require the specification of some relationships in \ loop[[mm,nn,6]]. Thus loop[[12,3]] (A4) includes {3,2,2},{\[DoubleStruckB]\ \[DoubleStruckA]->\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC],\ \[DoubleStruckC]\[DoubleStruckA]->\[DoubleStruckA]\[DoubleStruckB]}; \ \[DoubleStruckA] is a cube root whilst \[DoubleStruckB] and \[DoubleStruckC] \ are square roots of unity.\nThese incantations do not give unique Cayley \ tables. The database order can be described as \ \[OpenCurlyDoubleQuote]combined reducing prime \ factors\[CloseCurlyDoubleQuote] ; this ensures that sizes that are common to \ several hoops will be identical. One convention uses a different order, \ \[OpenCurlyDoubleQuote]prime factors only\[CloseCurlyDoubleQuote]. db96 (or \ db36 initially) puts central subgroups at the end; the order can be found by ", StyleBox["fromdb[mm,nn]; {gapName, gapGens ,gapRels}", FontSlant->"Italic"], ". GAP creates canonical Cayley tables for loops - the smallest when the \ Cayley table is expressed as a flattened list. The next cell shows the GAP \ and ", StyleBox["loop", FontSlant->"Italic"], " incantations for the 5 12-element groups." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{"{", "\"\\"", "}"}], "\[IndentingNewLine]", RowBox[{"Grid", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"fromdb", "[", RowBox[{"12", ",", "i"}], "]"}], ";", RowBox[{"{", RowBox[{"gapName", ",", "gapGens", ",", "gapRels", ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"12", ",", "i", ",", "1"}], "]"}], "]"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"12", ",", "i", ",", "5"}], "]"}], "]"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"12", ",", "i", ",", "6"}], "]"}], "]"}]}], "}"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "5"}], "}"}]}], "]"}], "]"}]}], "Input"], Cell[BoxData[ RowBox[{"{", "\<\"gapName dbGens dbRelators HoopName HoopGens \ HoopRelators\"\>", "}"}]], "Output"], Cell[BoxData[ TagBox[GridBox[{ {"\<\"C3iC4\"\>", RowBox[{"{", RowBox[{"2", ",", "3", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckB]\"\>"}]}], "}"}], "\<\"C3iC4\"\>", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], RowBox[{"{", RowBox[{ "\[DoubleStruckB]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]2\[DoubleStruckB]"}], "}"}]}, {"\<\"C12\"\>", RowBox[{"{", RowBox[{"2.`", ",", "3.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], "}"}], "\<\"C12\"\>", RowBox[{"{", RowBox[{"3", ",", "4"}], "}"}], RowBox[{"{", "}"}]}, {"\<\"A4\"\>", RowBox[{"{", RowBox[{"3", ",", "2", ",", "2"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckA]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}]}], "}"}], "\<\"A4\"\>", RowBox[{"{", RowBox[{"3", ",", "2", ",", "2"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{ "\[DoubleStruckB]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]"}], ",", RowBox[{ "\[DoubleStruckC]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]\[DoubleStruckB]"}]}], "}"}]}, {"\<\"D12\"\>", RowBox[{"{", RowBox[{"2", ",", "3", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckB]\"\>"}], "}"}], "\<\"D12\"\>", RowBox[{"{", RowBox[{"3", ",", "2", ",", "2"}], "}"}], RowBox[{"{", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckA]2\[DoubleStruckB]\"\>"}], "}"}]}, {"\<\"C6xC2\"\>", RowBox[{"{", RowBox[{"2", ",", "2.`", ",", "3.`"}], "}"}], RowBox[{"{", "}"}], "\<\"C6C2\"\>", RowBox[{"{", RowBox[{"3", ",", "2", ",", "2"}], "}"}], RowBox[{"{", "}"}]} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"] }, Open ]], Cell["\<\ Warning - gapName has redundant x elements and can be ambiguous. It does not \ distinguish between different indirect compositions - as shown by three \ occurences of C8:C4 and two of (C8xC2):C2 in the first 14 32-element groups:-\ \ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Grid", "[", RowBox[{"Table", "[", RowBox[{ RowBox[{ RowBox[{"fromdb", "[", RowBox[{"32", ",", "i"}], "]"}], ";", RowBox[{"{", RowBox[{"gapName", ",", "gapGens", ",", "gapRels"}], "}"}]}], ",", RowBox[{"{", RowBox[{"i", ",", "14"}], "}"}]}], "]"}], "]"}]], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"\<\"C32\"\>", RowBox[{"{", RowBox[{"2.`", ",", "2.`", ",", "2.`", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckB]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C4xC2jC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C8xC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2.`", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckB]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C8jC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C2xC2iC8\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}]}], "}"}]}, {"\<\"C4xC2iC2iC2\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckD]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C8iC2iC2\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckD]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C2kC4xC2iC2\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckD]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"D8iC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckC]\[DoubleStruckD]\"\>"}]}], "}"}]}, {"\<\"Q8iC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckC]\[DoubleStruckD]\"\>"}]}], "}"}]}, {"\<\"C4xC4jC2\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckB]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckB]\[DoubleStruckC]\[DoubleStruckE]\"\>"}]}], "}"}]}, {"\<\"C4iC8\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2.`", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckD]\[DoubleStruckD]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}]}], "}"}]}, {"\<\"Q8jC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckD]\"\>"}]}], "}"}]}, {"\<\"C8iC4\"\>", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2.`"}], "}"}], RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckE]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckB]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckC]\"\>", "\[Rule]", "\<\"\[DoubleStruckD]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckC]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckC]\[DoubleStruckD]\"\>"}]}], "}"}]} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"] }, Open ]], Cell["Test 7. Relator rules validation.", "Text", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"ung", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"totl", "=", "1"}], ";", RowBox[{"relco", "=", "0"}], ";", RowBox[{"lp", "=", RowBox[{ RowBox[{"Length", "[", "loop", "]"}], "-", "1"}]}], ";"}], "\n", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"totl", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "5"}], "]"}], "]"}], "===", RowBox[{"{", "}"}]}], ",", RowBox[{"AppendTo", "[", RowBox[{"ung", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"relco", "++"}]}], "]"}]}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"m", ",", "2", ",", "lp"}], "}"}]}], "]"}], ";", RowBox[{"Print", "[", RowBox[{ "totl", ",", "\"\< loops, \>\"", ",", " ", "relco", ",", "\"\< with relators.\>\""}], "]"}], ";", RowBox[{"Print", "[", RowBox[{ RowBox[{"Length", "[", "ung", "]"}], " ", "\"\< tables without generation rules.\>\""}], "]"}], ";"}], "\n", RowBox[{"Print", "[", RowBox[{ RowBox[{"Length", "[", RowBox[{"unpg", "=", RowBox[{"Intersection", "[", RowBox[{"unp", ",", "ung"}], "]"}]}], "]"}], " ", "\"\< tables without prescription or generation rules.\>\""}], "]"}]}], "Input", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ InterpretationBox[ RowBox[{ "910", "\[InvisibleSpace]", "\<\" loops, \"\>", "\[InvisibleSpace]", "766", "\[InvisibleSpace]", "\<\" with relators.\"\>"}], SequenceForm[910, " loops, ", 766, " with relators."], Editable->False]], "Print"], Cell[BoxData[ RowBox[{"143", " ", "\<\" tables without generation rules.\"\>"}]], "Print"], Cell[BoxData[ RowBox[{"2", " ", "\<\" tables without prescription or generation rules.\"\>"}]], "Print"] }, Open ]] }, Open ]], Cell["\<\ The unprescribed tables have matrix or permutation incantations.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{ RowBox[{"pr", "=", "0"}], ";", RowBox[{"genco", "=", "0"}], ";", RowBox[{"tt", "=", RowBox[{"AbsoluteTime", "[", "]"}]}], ";"}], RowBox[{"(*", StyleBox[" ", FontColor->RGBColor[1, 0, 0]], StyleBox[ RowBox[{"Checks", " ", "all", " ", RowBox[{"ge", "[", "]"}], " ", RowBox[{"cases", "."}]}], FontColor->GrayLevel[0.5]], StyleBox[" ", FontColor->GrayLevel[0.5]], StyleBox["*)", FontColor->GrayLevel[0.5]]}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{"pr", "==", "1"}], ",", RowBox[{"Print", "[", RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "]"}]}], "]"}], ";", "\[IndentingNewLine]", RowBox[{"If", "[", "\[InvisibleSpace]", RowBox[{ RowBox[{ RowBox[{"Position", "[", RowBox[{"ung", ",", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}]}], "]"}], "===", RowBox[{"{", "}"}]}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"gi", "=", RowBox[{"id", "[", RowBox[{"mp", "[", RowBox[{ RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], ",", "1"}], "]"}], "]"}]}], ")"}], "\[NotEqual]", RowBox[{"(", RowBox[{"gj", "=", RowBox[{ RowBox[{"gd", "[", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}]}], ")"}]}], "&&", RowBox[{"StringFreeQ", "[", RowBox[{ RowBox[{ RowBox[{"gd", "[", RowBox[{"m", ",", "n"}], "]"}], "[", RowBox[{"[", RowBox[{"3", ",", "1"}], "]"}], "]"}], " ", ",", "\"\\""}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Print", "[", RowBox[{"{", RowBox[{"gi", ",", "gj", ",", "m", ",", "n"}], "}"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"genco", "++"}], ";", RowBox[{"latest", "=", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}]}]}]}], "]"}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"m", ",", "2", ",", "lp"}], "}"}]}], "]"}], "//", "Timing"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ "genco", ",", "\"\< Loops correctly generated and uniquely identified\>\""}], "}"}], "\[IndentingNewLine]", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"AbsoluteTime", "[", "]"}], "-", "tt"}], ",", "\"\\"", ",", "latest"}], "}"}], "]"}]}], "Input", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Unrecognised\"\>", ",", "\<\"C7S3\"\>", ",", "42", ",", "3"}], "}"}]], "Print"], Cell[BoxData[ RowBox[{"{", RowBox[{"1309.004`", ",", "Null"}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ "765", ",", "\<\" Loops correctly generated and uniquely identified\"\>"}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ "1314.2874`10.570235337856793", ",", "\<\"actual seconds.\\nLast correct mm,nn=\"\>", ",", RowBox[{"{", RowBox[{"104", ",", "1"}], "}"}]}], "}"}]], "Print"] }, Open ]], Cell[TextData[{ "Occasionally, my computer reports a valid incantation as \ \[OpenCurlyDoubleQuote]Unrecognized\[CloseCurlyDoubleQuote]; retesting \ confirms that the incantation is correct. Many ", StyleBox["mm", FontSlant->"Italic"], "-element Clifford algebras are isotopes (different foldings of the same 2", StyleBox["mm", FontSlant->"Italic"], "-element group) so they are not distinguished by ", StyleBox["id ", FontSlant->"Italic"], " and are not reported. loop[[64]] includes all 251 groups, but 14 are not \ uniquely identified. Many sets of groups with over 64 elements have the same \ dico, and only a few are distinguished by the current set of tests. \ loop[[80]] omits 52 groups, loop[[96]] omits 160. (Section 5 accesses all of \ them via db96.)" }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 1.7. Signed Table Generation, fold.\ \>", "Subsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[TextData[{ "The ", StyleBox["toSignedTable", FontSlant->"Italic"], " (or ", StyleBox["ts", FontSlant->"Italic"], ") procedure folds loops to signed Cayley multiplication tables \ heuristically. The elements must be correctly ordered. The ", StyleBox["fold", FontSlant->"Italic"], " procedure (G. Gerrard 2012) is general; it finds all possible folds for \ any quasigroup table. The ", StyleBox["loop[[]]", FontSlant->"Italic"], " data includes many examples. There should be a way to create folded tables \ from ", StyleBox["irrep", FontSlant->"Italic"], " & ", StyleBox["gapGens", FontSlant->"Italic"], " (which shows the foldable factors as real, rather than integer, entries). \ This needs further work" }], "Text"], Cell[TextData[{ "The second ", StyleBox["fold", FontSlant->"Italic"], " argument lists the factors of the order that are to be tested if the table \ has a center. Some cases are signed. Cases with no center, or no signed \ folds, are omitted." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"tst", "=", RowBox[{"fold", "[", RowBox[{ RowBox[{"mp", "[", RowBox[{"{", RowBox[{"24", ",", "2"}], "}"}], "]"}], ",", RowBox[{"{", "2", "}"}]}], "]"}]}], ";", RowBox[{"g2", "=", RowBox[{"tst", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"id", "[", "g2", "]"}], ",", RowBox[{"g2", "//", "tf"}]}], "}"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"tst", "=", RowBox[{"fold", "[", RowBox[{ RowBox[{"mp", "[", RowBox[{"{", RowBox[{"24", ",", "2"}], "}"}], "]"}], ",", RowBox[{"{", "3", "}"}]}], "]"}]}], ";", RowBox[{"g3", "=", RowBox[{"tst", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"id", "[", "g3", "]"}], ",", RowBox[{"g3", "//", "tf"}]}], "}"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"tst", "=", RowBox[{"fold", "[", RowBox[{ RowBox[{"mp", "[", RowBox[{"{", RowBox[{"24", ",", "2"}], "}"}], "]"}], ",", RowBox[{"{", "4", "}"}]}], "]"}]}], ";", RowBox[{"g4", "=", RowBox[{"tst", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"id", "[", "g4", "]"}], ",", RowBox[{"g4", "//", "tf"}]}], "}"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"tst", "=", RowBox[{"fold", "[", RowBox[{ RowBox[{"mp", "[", RowBox[{"{", RowBox[{"24", ",", "2"}], "}"}], "]"}], ",", RowBox[{"{", "6", "}"}]}], "]"}]}], ";", RowBox[{"g6", "=", RowBox[{"tst", "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"id", "[", "g6", "]"}], ",", RowBox[{"g6", "//", "tf"}]}], "}"}]}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C24r\"\>", ",", TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"}, {"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}]}, {"3", "4", "5", "6", "7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}]}, {"4", "5", "6", "7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}]}, {"5", "6", "7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}]}, {"6", "7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}]}, {"7", "8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}]}, {"8", "9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}], RowBox[{"-", "7"}]}, {"9", "10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}], RowBox[{"-", "7"}], RowBox[{"-", "8"}]}, {"10", "11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}], RowBox[{"-", "7"}], RowBox[{"-", "8"}], RowBox[{"-", "9"}]}, {"11", "12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}], RowBox[{"-", "7"}], RowBox[{"-", "8"}], RowBox[{"-", "9"}], RowBox[{"-", "10"}]}, {"12", RowBox[{"-", "1"}], RowBox[{"-", "2"}], RowBox[{"-", "3"}], RowBox[{"-", "4"}], RowBox[{"-", "5"}], RowBox[{"-", "6"}], RowBox[{"-", "7"}], RowBox[{"-", "8"}], RowBox[{"-", "9"}], RowBox[{"-", "10"}], RowBox[{"-", "11"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Unrecognised\"\>", ",", TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "2", "3", "4", "5", "6", "7", "8"}, {"2", "3", "4", "5", "6", "7", "8", "\[DoubleStruckCapitalJ]"}, {"3", "4", "5", "6", "7", "8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}]}, {"4", "5", "6", "7", "8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"3", " ", "\[DoubleStruckCapitalJ]"}]}, {"5", "6", "7", "8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"3", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"4", " ", "\[DoubleStruckCapitalJ]"}]}, {"6", "7", "8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"3", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"4", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"5", " ", "\[DoubleStruckCapitalJ]"}]}, {"7", "8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"3", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"4", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"5", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"6", " ", "\[DoubleStruckCapitalJ]"}]}, {"8", "\[DoubleStruckCapitalJ]", RowBox[{"2", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"3", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"4", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"5", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"6", " ", "\[DoubleStruckCapitalJ]"}], RowBox[{"7", " ", "\[DoubleStruckCapitalJ]"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Unrecognised\"\>", ",", TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "2", "3", "4", "5", "6"}, {"2", "3", "4", "5", "6", "\[ImaginaryI]"}, {"3", "4", "5", "6", "\[ImaginaryI]", RowBox[{"2", " ", "\[ImaginaryI]"}]}, {"4", "5", "6", "\[ImaginaryI]", RowBox[{"2", " ", "\[ImaginaryI]"}], RowBox[{"3", " ", "\[ImaginaryI]"}]}, {"5", "6", "\[ImaginaryI]", RowBox[{"2", " ", "\[ImaginaryI]"}], RowBox[{"3", " ", "\[ImaginaryI]"}], RowBox[{"4", " ", "\[ImaginaryI]"}]}, {"6", "\[ImaginaryI]", RowBox[{"2", " ", "\[ImaginaryI]"}], RowBox[{"3", " ", "\[ImaginaryI]"}], RowBox[{"4", " ", "\[ImaginaryI]"}], RowBox[{"5", " ", "\[ImaginaryI]"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Unrecognised\"\>", ",", TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"1", "2", "3", "4"}, {"2", "3", "4", "\[DoubleStruckH]"}, {"3", "4", "\[DoubleStruckH]", RowBox[{"2", " ", "\[DoubleStruckH]"}]}, {"4", "\[DoubleStruckH]", RowBox[{"2", " ", "\[DoubleStruckH]"}], RowBox[{"3", " ", "\[DoubleStruckH]"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Brute-force determinant factorisation fails for tables of order 12 or \ greater, but is demonstrated for the smaller folded tables:-\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"m", "=", "8"}], ";", RowBox[{"A", "=", RowBox[{"Table", "[", RowBox[{ RowBox[{"RandomReal", "[", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", "2"}], "}"}], "]"}], ",", RowBox[{"{", RowBox[{"i", ",", "m"}], "}"}]}], "]"}]}], ";", RowBox[{"Expand", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{"g4", ",", "A"}], "]"}], "]"}], "/.", RowBox[{"findROU", "[", "g4", "]"}]}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{"g4", ",", RowBox[{"{", RowBox[{ "\[OSlash]", ",", "a", ",", "b", ",", "c", ",", "d", ",", "e"}], "}"}]}], "]"}], "]"}], "/.", RowBox[{"findROU", "[", "g4", "]"}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"-", RowBox[{"(", RowBox[{ SuperscriptBox["a", "2"], "-", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["b", "2"]}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", "a", " ", "c"}], "-", SuperscriptBox["c", "2"], "+", RowBox[{"2", " ", "b", " ", "d"}], "+", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["d", "2"]}], "-", RowBox[{"2", " ", "a", " ", "e"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", "c", " ", "e"}], "+", SuperscriptBox["e", "2"], "-", RowBox[{"2", " ", "b", " ", "\[OSlash]"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", "d", " ", "\[OSlash]"}], "+", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "2"]}]}], ")"}]}], " ", RowBox[{"(", RowBox[{ SuperscriptBox["a", "4"], "+", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["b", "2"]}], "-", SuperscriptBox["b", "4"], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["a", "3"], " ", "c"}], "+", RowBox[{"4", " ", "a", " ", SuperscriptBox["b", "2"], " ", "c"}], "-", RowBox[{"3", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["c", "2"]}], "-", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["b", "2"], " ", SuperscriptBox["c", "2"]}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", "a", " ", SuperscriptBox["c", "3"]}], "+", SuperscriptBox["c", "4"], "-", RowBox[{"2", " ", SuperscriptBox["a", "2"], " ", "b", " ", "d"}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["b", "3"], " ", "d"}], "-", RowBox[{ "4", " ", "\[ImaginaryI]", " ", "a", " ", "b", " ", "c", " ", "d"}], "-", RowBox[{"4", " ", "b", " ", SuperscriptBox["c", "2"], " ", "d"}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["d", "2"]}], "+", RowBox[{"3", " ", SuperscriptBox["b", "2"], " ", SuperscriptBox["d", "2"]}], "+", RowBox[{"2", " ", "a", " ", "c", " ", SuperscriptBox["d", "2"]}], "+", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["c", "2"], " ", SuperscriptBox["d", "2"]}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", "b", " ", SuperscriptBox["d", "3"]}], "-", SuperscriptBox["d", "4"], "+", RowBox[{"2", " ", SuperscriptBox["a", "3"], " ", "e"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", "a", " ", SuperscriptBox["b", "2"], " ", "e"}], "+", RowBox[{"2", " ", SuperscriptBox["b", "2"], " ", "c", " ", "e"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["c", "3"], " ", "e"}], "-", RowBox[{"8", " ", "a", " ", "b", " ", "d", " ", "e"}], "+", RowBox[{ "4", " ", "\[ImaginaryI]", " ", "b", " ", "c", " ", "d", " ", "e"}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", "a", " ", SuperscriptBox["d", "2"], " ", "e"}], "+", RowBox[{"4", " ", "c", " ", SuperscriptBox["d", "2"], " ", "e"}], "+", RowBox[{"3", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["e", "2"]}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["b", "2"], " ", SuperscriptBox["e", "2"]}], "-", RowBox[{"3", " ", SuperscriptBox["c", "2"], " ", SuperscriptBox["e", "2"]}], "-", RowBox[{"2", " ", "b", " ", "d", " ", SuperscriptBox["e", "2"]}], "-", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["d", "2"], " ", SuperscriptBox["e", "2"]}], "+", RowBox[{"2", " ", "a", " ", SuperscriptBox["e", "3"]}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", "c", " ", SuperscriptBox["e", "3"]}], "+", SuperscriptBox["e", "4"], "-", RowBox[{"4", " ", SuperscriptBox["a", "2"], " ", "b", " ", "\[OSlash]"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["b", "3"], " ", "\[OSlash]"}], "+", RowBox[{ "4", " ", "\[ImaginaryI]", " ", "a", " ", "b", " ", "c", " ", "\[OSlash]"}], "-", RowBox[{"2", " ", "b", " ", SuperscriptBox["c", "2"], " ", "\[OSlash]"}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["a", "2"], " ", "d", " ", "\[OSlash]"}], "+", RowBox[{"8", " ", "a", " ", "c", " ", "d", " ", "\[OSlash]"}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["c", "2"], " ", "d", " ", "\[OSlash]"}], "-", RowBox[{"2", " ", SuperscriptBox["d", "3"], " ", "\[OSlash]"}], "-", RowBox[{"4", " ", "a", " ", "b", " ", "e", " ", "\[OSlash]"}], "+", RowBox[{ "8", " ", "\[ImaginaryI]", " ", "b", " ", "c", " ", "e", " ", "\[OSlash]"}], "-", RowBox[{ "4", " ", "\[ImaginaryI]", " ", "a", " ", "d", " ", "e", " ", "\[OSlash]"}], "+", RowBox[{"4", " ", "c", " ", "d", " ", "e", " ", "\[OSlash]"}], "+", RowBox[{"2", " ", "b", " ", SuperscriptBox["e", "2"], " ", "\[OSlash]"}], "-", RowBox[{"4", " ", "\[ImaginaryI]", " ", "d", " ", SuperscriptBox["e", "2"], " ", "\[OSlash]"}], "-", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"3", " ", SuperscriptBox["b", "2"], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"2", " ", "a", " ", "c", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"2", " ", "\[ImaginaryI]", " ", SuperscriptBox["c", "2"], " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"3", " ", SuperscriptBox["d", "2"], " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4", " ", "\[ImaginaryI]", " ", "a", " ", "e", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"2", " ", "c", " ", "e", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"\[ImaginaryI]", " ", SuperscriptBox["e", "2"], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"2", " ", "\[ImaginaryI]", " ", "b", " ", SuperscriptBox["\[OSlash]", "3"]}], "-", RowBox[{"2", " ", "d", " ", SuperscriptBox["\[OSlash]", "3"]}], "-", SuperscriptBox["\[OSlash]", "4"]}], ")"}]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{"g6", ",", RowBox[{"{", RowBox[{"\[OSlash]", ",", "a", ",", "b", ",", "c"}], "}"}]}], "]"}], "]"}], "/.", RowBox[{"findROU", "[", "g6", "]"}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox["c", "4"], "-", RowBox[{ SuperscriptBox["b", "4"], " ", "\[DoubleStruckH]"}], "+", RowBox[{"4", " ", "a", " ", SuperscriptBox["b", "2"], " ", "c", " ", "\[DoubleStruckH]"}], "-", RowBox[{"2", " ", SuperscriptBox["a", "2"], " ", SuperscriptBox["c", "2"], " ", "\[DoubleStruckH]"}], "-", RowBox[{"4", " ", "b", " ", SuperscriptBox["c", "2"], " ", "\[OSlash]", " ", "\[DoubleStruckH]"}], "+", RowBox[{ SuperscriptBox["a", "4"], " ", SuperscriptBox["\[DoubleStruckH]", "2"]}], "-", RowBox[{"4", " ", SuperscriptBox["a", "2"], " ", "b", " ", "\[OSlash]", " ", SuperscriptBox["\[DoubleStruckH]", "2"]}], "+", RowBox[{"2", " ", SuperscriptBox["b", "2"], " ", SuperscriptBox["\[OSlash]", "2"], " ", SuperscriptBox["\[DoubleStruckH]", "2"]}], "+", RowBox[{"4", " ", "a", " ", "c", " ", SuperscriptBox["\[OSlash]", "2"], " ", SuperscriptBox["\[DoubleStruckH]", "2"]}], "-", RowBox[{ SuperscriptBox["\[OSlash]", "4"], " ", SuperscriptBox["\[DoubleStruckH]", "3"]}]}]], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 2. Hoop Multiplication, Size Conservation, Division, Remainders.\ \>", "Section", PageWidth->WindowWidth], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " Hoops are defined as algebras that conserve the conjugate factors of their \ symbolic multiplication table as \[OpenCurlyDoubleQuote]sizes\ \[CloseCurlyDoubleQuote] or \[OpenCurlyDoubleQuote]symmetries\ \[CloseCurlyDoubleQuote] when multiplying vectors. Most hoops have more than \ one real size. (Degenerate monosized hoops include \[DoubleStruckCapitalR], \ \[DoubleStruckCapitalC], \[DoubleStruckCapitalH], \[DoubleStruckCapitalO], \ Pauli algebra, and even-order Clifford algebras). The essential feature of a \ hoop algebra is that the sizes are conserved on both multiplication and \ division even when some sizes are zero. Multiplication (and division) using \ hoops with disparate zero sizes introduces some new mathematics. Hoop \ operations are made conservative by \[OpenCurlyDoubleQuote]ejecting\ \[CloseCurlyDoubleQuote] the appropriate sizes of the multiplicands as \ \[OpenCurlyDoubleQuote]remainders\[CloseCurlyDoubleQuote] - the product is \ \"projected\" onto a sub-algebra (of lower symmetry) with zeroed sizes. \ Different hoops (of the same size) conserve different (overlapping) sets of \ sizes. This may correspond to particle-particle interactions, where different \ forces conserve different (overlapping) sets of properties.\n\tFor \ consistency, division by zero in a monosize algebra is defined as projecting \ the result onto zero and ejecting the unchanged vector as a remainder. \n\t \ If the sizes are known for the hoop the multiplicative inverse of V can be \ calculated by hoopInverse[V] (or cInverse[V] for Cliffords). This sums the \ derivates of each size (wrt a chosen element) divided by the size (Cramer\ \[CloseCurlyQuote]s method). Symbolic sizes were not easy to find for groups \ with over 16 elements. This limitation was overcome when G. Gerrard developed \ inversion via the Irreducible Matrix representations, using GAP. The inverse \ is the sum of the inverses of the non-zero matrices. This is implemented via \ db96 and the gapShape (etc) routines and is tested in Section 5.\n\tSize \ Conservation and Remainders are tested by the following procedure, which \ identifies the hoop, takes two random vectors of the required length, \ multiplies them, saves the result as Rl, AB, Rr, shows the results and their \ shapes, shows that sA sB=sAB, and confirms that AB/B+Rl=A & AB/A+Rr=B." }], "Text", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{ RowBox[{"Clear", "[", "muldiv", "]"}], ";", RowBox[{ RowBox[{"muldiv", "[", RowBox[{"Ao_", ",", "Bo_", ",", "H_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "}"}], ",", RowBox[{ RowBox[{"gName", "=", "H"}], ";", RowBox[{"gLoop", "=", RowBox[{"mp", "[", "H", "]"}]}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"m", "=", RowBox[{"Length", "[", "gLoop", "]"}]}], ";", RowBox[{"A", "=", RowBox[{"Take", "[", RowBox[{"Ao", ",", "m"}], "]"}]}], ";", RowBox[{"B", "=", RowBox[{"Take", "[", RowBox[{"Bo", ",", "m"}], "]"}]}], ";", RowBox[{"Print", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", "A"}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", "B"}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"R1", "=", "Rl"}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"R2", "=", "Rr"}]}], "]"}], "]"}]}], "}"}], "//", "tf"}], "]"}], ";", "\n", RowBox[{"Print", "[", RowBox[{ RowBox[{"Chop", "[", RowBox[{"{", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sB", "=", RowBox[{"shape", "[", "B", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sAB", "=", RowBox[{"shape", "[", "AB", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"Chop", "[", RowBox[{ RowBox[{ RowBox[{"sA", " ", "sB"}], " ", "-", "sAB"}], ",", ".0001"}], "]"}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"shape", "[", "Rl", "]"}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"shape", "[", "Rr", "]"}]}], "]"}], "]"}]}], "}"}], "]"}], "//", "tf"}], "]"}], ";", RowBox[{"Print", "[", RowBox[{"Chop", "[", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{"hoopTimes", "[", RowBox[{"AB", ",", RowBox[{"hoopInverse", "[", "B", "]"}]}], "]"}], "+", "R1"}], ",", "\"\<\\n A \>\"", ",", "A", ",", "\"\<\\n AB/A+Rr\>\"", ",", RowBox[{ RowBox[{"hoopTimes", "[", RowBox[{ RowBox[{"hoopInverse", "[", "A", "]"}], ",", "AB"}], "]"}], "+", "R2"}], ",", "\"\<\\n B \>\"", ",", "B"}], "}"}], "]"}], "]"}]}]}], "]"}]}], ";"}]], "Input", PageWidth->WindowWidth], Cell["\<\ Division has been checked for all the members of hoopList. Examples, chosen to have some zero sizes, are:- \ \>", "Text", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{ RowBox[{"Clear", "[", "muldiv", "]"}], ";", RowBox[{ RowBox[{"muldiv", "[", RowBox[{"Ao_", ",", "Bo_", ",", "m_", ",", "n_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", "}"}], ",", RowBox[{ RowBox[{"gLoop", "=", RowBox[{"mp", "[", RowBox[{"m", ",", "n"}], "]"}]}], ";", RowBox[{"id", "[", "gLoop", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"A", "=", RowBox[{"Take", "[", RowBox[{"Ao", ",", "m"}], "]"}]}], ";", RowBox[{"B", "=", RowBox[{"Take", "[", RowBox[{"Bo", ",", "m"}], "]"}]}], ";", RowBox[{"Print", "[", "gName", "]"}], ";", RowBox[{"Print", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", "A"}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", "B"}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"R1", "=", "Rl"}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"R2", "=", "Rr"}]}], "]"}], "]"}]}], "}"}], "//", "tf"}], "]"}], ";", "\n", RowBox[{"Print", "[", RowBox[{ RowBox[{"Chop", "[", RowBox[{"{", RowBox[{ RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sB", "=", RowBox[{"shape", "[", "B", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"sAB", "=", RowBox[{"shape", "[", "AB", "]"}]}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"Chop", "[", RowBox[{ RowBox[{ RowBox[{"sA", " ", "sB"}], " ", "-", "sAB"}], ",", ".0001"}], "]"}]}], "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"shape", "[", "Rl", "]"}]}], "]"}], "]"}], ",", RowBox[{"Flatten", "[", RowBox[{"Append", "[", RowBox[{ RowBox[{"{", "\"\\"", "}"}], ",", RowBox[{"shape", "[", "Rr", "]"}]}], "]"}], "]"}]}], "}"}], "]"}], "//", "tf"}], "]"}], ";", RowBox[{"Print", "[", RowBox[{"Chop", "[", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{"hoopTimes", "[", RowBox[{"AB", ",", RowBox[{"hoopInverse", "[", "B", "]"}]}], "]"}], "+", "R1"}], ",", "\"\<\\n A \>\"", ",", "A", ",", "\"\<\\n AB/A+Rr\>\"", ",", RowBox[{ RowBox[{"hoopTimes", "[", RowBox[{ RowBox[{"hoopInverse", "[", "A", "]"}], ",", "AB"}], "]"}], "+", "R2"}], ",", "\"\<\\n B \>\"", ",", "B"}], "}"}], "]"}], "]"}]}]}], "]"}]}], ";"}]], "Input", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"muldiv", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "3", ",", "4", ",", "1", ",", "0", ",", "1", ",", "1", ",", "2", ",", RowBox[{"-", "2"}]}], "}"}], "//", "N"}], ",", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "1", ",", "2", ",", RowBox[{"-", "4"}], ",", "4", ",", "2", ",", RowBox[{"-", "1"}], ",", "2"}], "}"}], "//", "N"}], ",", "\[IndentingNewLine]", "8", ",", "18"}], "]"}], ";"}]], "Input", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData["\<\"CL03\"\>"], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"A =\"\>", "3.`", "4.`", "1.`", "0.`", "1.`", "1.`", "2.`", RowBox[{"-", "2.`"}]}, {"\<\"B =\"\>", "2.`", "1.`", "2.`", RowBox[{"-", "4.`"}], "4.`", "2.`", RowBox[{"-", "1.`"}], "2.`"}, {"\<\"AB =\"\>", RowBox[{"-", "8.`"}], RowBox[{"-", "1.`"}], "13.`", RowBox[{"-", "4.`"}], "4.`", "13.`", "1.`", RowBox[{"-", "8.`"}]}, {"\<\"Rl =\"\>", "2.5`", "3.`", "0", "0.5`", "0.5`", "0", "3.`", RowBox[{"-", "2.5`"}]}, {"\<\"Rr =\"\>", "0", "0", "0", "0", "0", "0", "0", "0"} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"shape A =\"\>", "62.`", "10.`"}, {"\<\"shape B = \"\>", "0", "100.`"}, {"\<\"shape AB = \"\>", "0", "1000.`"}, {"\<\"sA sB - sAB\"\>", "0", "0"}, {"\<\"shape Rl = \"\>", "62.`", "0"}, {"\<\"shape Rr = \"\>", "0", "0"} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"AB/B+Rl\"\>", ",", RowBox[{"{", RowBox[{ "3.`", ",", "4.`", ",", "1.`", ",", "0", ",", "1.`", ",", "1.`", ",", "1.9999999999999998`", ",", RowBox[{"-", "2.`"}]}], "}"}], ",", "\<\"\\n A \"\>", ",", RowBox[{"{", RowBox[{ "3.`", ",", "4.`", ",", "1.`", ",", "0", ",", "1.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "2.`"}]}], "}"}], ",", "\<\"\\n AB/A+Rr\"\>", ",", RowBox[{"{", RowBox[{ "1.9999999999999998`", ",", "0.9999999999999999`", ",", "2.0000000000000004`", ",", RowBox[{"-", "3.9999999999999996`"}], ",", "3.9999999999999996`", ",", "2.0000000000000004`", ",", RowBox[{"-", "0.9999999999999999`"}], ",", "1.9999999999999998`"}], "}"}], ",", "\<\"\\n B \"\>", ",", RowBox[{"{", RowBox[{"2.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "4.`"}], ",", "4.`", ",", "2.`", ",", RowBox[{"-", "1.`"}], ",", "2.`"}], "}"}]}], "}"}]], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"muldiv", "[", RowBox[{ RowBox[{"{", RowBox[{ "3", ",", "4", ",", "1", ",", "0", ",", "1", ",", "1", ",", "2", ",", RowBox[{"-", "2"}], ",", "3", ",", "4", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "15"}]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", "2", ",", RowBox[{"-", "4"}], ",", "3", ",", RowBox[{"-", "4"}], ",", "3", ",", "1", ",", "0", ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "3"}], ",", "2"}], "}"}], ",", "\[IndentingNewLine]", "12", ",", "3"}], "]"}], ";", RowBox[{"(*", RowBox[{ "The", " ", "same", " ", "size", " ", "is", " ", "zero", " ", "in", " ", "both", " ", "vectors", " ", "so", " ", "there", " ", "are", " ", "no", " ", "remainders"}], "*)"}]}]], "Input", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData["\<\"A4\"\>"], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"A =\"\>", "3", "4", "1", "0", "1", "1", "2", RowBox[{"-", "2"}], "3", "4", RowBox[{"-", "2"}], RowBox[{"-", "15"}]}, {"\<\"B =\"\>", "2", "1", "2", RowBox[{"-", "4"}], "3", RowBox[{"-", "4"}], "3", "1", "0", RowBox[{"-", "3"}], RowBox[{"-", "3"}], "2"}, {"\<\"AB =\"\>", "4", "85", "39", "28", RowBox[{"-", "47"}], RowBox[{"-", "43"}], RowBox[{"-", "17"}], RowBox[{"-", "26"}], "77", RowBox[{"-", "53"}], "4", RowBox[{"-", "51"}]}, {"\<\"Rl =\"\>", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"}, {"\<\"Rr =\"\>", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0", "0"} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"shape A =\"\>", "0", "273", RowBox[{"-", "5484"}]}, {"\<\"shape B = \"\>", "0", "12", RowBox[{"-", "456"}]}, {"\<\"shape AB = \"\>", "0", "3276", "2500704"}, {"\<\"sA sB - sAB\"\>", "0", "0", "0"}, {"\<\"shape Rl = \"\>", "0", "0", "0"}, {"\<\"shape Rr = \"\>", "0", "0", "0"} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"AB/B+Rl\"\>", ",", RowBox[{"{", RowBox[{ "3", ",", "4", ",", "1", ",", "0", ",", "1", ",", "1", ",", "2", ",", RowBox[{"-", "2"}], ",", "3", ",", "4", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "15"}]}], "}"}], ",", "\<\"\\n A \"\>", ",", RowBox[{"{", RowBox[{ "3", ",", "4", ",", "1", ",", "0", ",", "1", ",", "1", ",", "2", ",", RowBox[{"-", "2"}], ",", "3", ",", "4", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "15"}]}], "}"}], ",", "\<\"\\n AB/A+Rr\"\>", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", "2", ",", RowBox[{"-", "4"}], ",", "3", ",", RowBox[{"-", "4"}], ",", "3", ",", "1", ",", "0", ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "3"}], ",", "2"}], "}"}], ",", "\<\"\\n B \"\>", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", "2", ",", RowBox[{"-", "4"}], ",", "3", ",", RowBox[{"-", "4"}], ",", "3", ",", "1", ",", "0", ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "3"}], ",", "2"}], "}"}]}], "}"}]], "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"muldiv", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{ "3", ",", "4", ",", "1", ",", "0", ",", "1", ",", "1", ",", "2", ",", RowBox[{"-", "2"}], ",", "3", ",", "4", ",", RowBox[{"-", "2"}], ",", "3", ",", RowBox[{"-", "1"}], ",", "0", ",", "3", ",", "0"}], "}"}], "//", "N"}], ",", RowBox[{ RowBox[{"{", RowBox[{"2", ",", "1", ",", "2", ",", RowBox[{"-", "4"}], ",", "3", ",", RowBox[{"-", "4"}], ",", "3", ",", "1", ",", "0", ",", "0", ",", RowBox[{"-", "3"}], ",", "2", ",", "2", ",", "4", ",", "1", ",", RowBox[{"-", "2"}]}], "}"}], "//", "N"}], ",", "\[IndentingNewLine]", "16", ",", "8"}], "]"}], ";", RowBox[{"(*", RowBox[{ "A", " ", "quadratic", " ", "size", " ", "is", " ", "factorised", " ", "into", " ", "complex", " ", "conjugates"}], "*)"}]}]], "Input", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData["\<\"QD16\"\>"], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"A =\"\>", "3.`", "4.`", "1.`", "0.`", "1.`", "1.`", "2.`", RowBox[{"-", "2.`"}], "3.`", "4.`", RowBox[{"-", "2.`"}], "3.`", RowBox[{"-", "1.`"}], "0.`", "3.`", "0.`"}, {"\<\"B =\"\>", "2.`", "1.`", "2.`", RowBox[{"-", "4.`"}], "3.`", RowBox[{"-", "4.`"}], "3.`", "1.`", "0.`", "0.`", RowBox[{"-", "3.`"}], "2.`", "2.`", "4.`", "1.`", RowBox[{"-", "2.`"}]}, {"\<\"AB =\"\>", "24.`", RowBox[{"-", "21.`"}], "31.`", RowBox[{"-", "2.`"}], "16.`", "21.`", "9.`", "2.`", "4.`", "42.`", "1.`", "9.`", "12.`", "14.`", RowBox[{"-", "17.`"}], "15.`"}, {"\<\"Rl =\"\>", RowBox[{"-", "0.9944444444444458`"}], "1.155555555555555`", "0.7499999999999989`", RowBox[{"-", "5.78888888888889`"}], "1.3388888888888884`", RowBox[{"-", "4.255555555555555`"}], "5.35`", "2.4444444444444446`", "3.894444444444445`", "4.977777777777777`", RowBox[{"-", "5.583333333333334`"}], RowBox[{"-", "4.211111111111112`"}], RowBox[{"-", "3.2388888888888885`"}], "2.122222222222222`", RowBox[{"-", "1.5166666666666657`"}], "3.555555555555555`"}, {"\<\"Rr =\"\>", "0.9483447488584478`", "0.001426940639269958`", RowBox[{"-", "5.759132420091324`"}], RowBox[{"-", "7.957762557077625`"}], RowBox[{"-", "0.7656963470319642`"}], RowBox[{"-", "0.18407534246575263`"}], "11.384703196347033`", "2.3321917808219172`", "3.5443493150684944`", RowBox[{"-", "0.8006849315068495`"}], "4.0338470319634725`", "4.134018264840183`", RowBox[{"-", "3.453938356164384`"}], "0.6993150684931511`", RowBox[{"-", "3.932477168949771`"}], RowBox[{"-", "4.224429223744291`"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ TagBox[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"\<\"shape A =\"\>", "20.`", "0", "10.`", RowBox[{"-", "6.`"}], "2.`", "24.`", RowBox[{"-", "2.`"}], "0", RowBox[{ RowBox[{"-", "16.`"}], "-", RowBox[{"6.`", " ", "\[ImaginaryI]"}]}], RowBox[{ RowBox[{"-", "16.`"}], "+", RowBox[{"6.`", " ", "\[ImaginaryI]"}]}]}, {"\<\"shape B = \"\>", "8.`", "12.`", "8.`", "0", RowBox[{"-", "6.`"}], "2.`", RowBox[{"-", "10.`"}], "2.`", RowBox[{"18.`", "\[VeryThinSpace]", "+", RowBox[{"36.`", " ", "\[ImaginaryI]"}]}], RowBox[{"18.`", "\[VeryThinSpace]", "-", RowBox[{"36.`", " ", "\[ImaginaryI]"}]}]}, {"\<\"shape AB = \"\>", "160.`", "0", "64.`", "0", "36.`", RowBox[{"-", "64.`"}], "44.`", RowBox[{"-", "16.`"}], RowBox[{ RowBox[{"-", "3712.`"}], "-", RowBox[{"804.`", " ", "\[ImaginaryI]"}]}], RowBox[{ RowBox[{"-", "3712.`"}], "+", RowBox[{"804.`", " ", "\[ImaginaryI]"}]}]}, {"\<\"sA sB - sAB\"\>", "0", "0", "16.`", "0", RowBox[{"-", "48.`"}], "112.`", RowBox[{"-", "24.`"}], "16.`", RowBox[{"3640.`", "\[VeryThinSpace]", "+", RowBox[{"120.`", " ", "\[ImaginaryI]"}]}], RowBox[{"3640.`", "\[VeryThinSpace]", "-", RowBox[{"120.`", " ", "\[ImaginaryI]"}]}]}, {"\<\"shape Rl = \"\>", "0", "0", "10.000000000000002`", RowBox[{"-", "6.`"}], "20.4`", "5.733333333333331`", RowBox[{"-", "28.133333333333336`"}], "21.200000000000003`", RowBox[{"34.79703703703704`", "\[VeryThinSpace]", "-", RowBox[{"183.99901234567898`", " ", "\[ImaginaryI]"}]}], RowBox[{"34.79703703703704`", "\[VeryThinSpace]", "+", RowBox[{"183.99901234567898`", " ", "\[ImaginaryI]"}]}]}, {"\<\"shape Rr = \"\>", "0", "12.000000000000002`", RowBox[{"-", "0.021917808219182433`"}], RowBox[{"-", "10.885844748858451`"}], "0.15182648401826349`", "14.64383561643836`", RowBox[{"-", "1.0821917808219101`"}], "21.13584474885845`", RowBox[{"35.14127311774145`", "\[VeryThinSpace]", "+", RowBox[{"446.0238922119013`", " ", "\[ImaginaryI]"}]}], RowBox[{"35.14127311774145`", "\[VeryThinSpace]", "-", RowBox[{"446.0238922119013`", " ", "\[ImaginaryI]"}]}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm], TraditionalForm, Editable->True]], "Print"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"AB/B+Rl\"\>", ",", RowBox[{"{", RowBox[{ "3.`", ",", "4.`", ",", "1.`", ",", "0", ",", "1.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "2.`"}], ",", "3.`", ",", "4.`", ",", RowBox[{"-", "2.`"}], ",", "3.`", ",", RowBox[{"-", "1.`"}], ",", "0", ",", "3.`", ",", "0"}], "}"}], ",", "\<\"\\n A \"\>", ",", RowBox[{"{", RowBox[{ "3.`", ",", "4.`", ",", "1.`", ",", "0", ",", "1.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "2.`"}], ",", "3.`", ",", "4.`", ",", RowBox[{"-", "2.`"}], ",", "3.`", ",", RowBox[{"-", "1.`"}], ",", "0", ",", "3.`", ",", "0"}], "}"}], ",", "\<\"\\n AB/A+Rr\"\>", ",", RowBox[{"{", RowBox[{"2.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "4.`"}], ",", "3.`", ",", RowBox[{"-", "4.`"}], ",", "3.`", ",", "1.`", ",", "0", ",", "0", ",", RowBox[{"-", "3.`"}], ",", "2.`", ",", "2.`", ",", "4.`", ",", "1.`", ",", RowBox[{"-", "2.`"}]}], "}"}], ",", "\<\"\\n B \"\>", ",", RowBox[{"{", RowBox[{"2.`", ",", "1.`", ",", "2.`", ",", RowBox[{"-", "4.`"}], ",", "3.`", ",", RowBox[{"-", "4.`"}], ",", "3.`", ",", "1.`", ",", "0", ",", "0", ",", RowBox[{"-", "3.`"}], ",", "2.`", ",", "2.`", ",", "4.`", ",", "1.`", ",", RowBox[{"-", "2.`"}]}], "}"}]}], "}"}]], "Print"] }, Open ]] }, Open ]], Cell[TextData[{ "Hoop & Matrix multiplication.\nHoop multiplication multiplies each element \ of A by each element of B and adds the result to the (initially zero) element \ of AB specified in the quasi-group Cayley Table; it involves ", Cell[BoxData[ FormBox[ SuperscriptBox[ StyleBox["mm", FontSlant->"Italic"], "2"], TraditionalForm]]], " multiplications for a table of order ", StyleBox["mm", FontSlant->"Italic"], "..\nThe Matrix multiplication procedure maps one vector onto an ", StyleBox["Lmatrix", FontSlant->"Italic"], " (with ones on the diagonal) and then multiplies this matrix by the other \ vector; it involves ", Cell[BoxData[ FormBox[ SuperscriptBox[ StyleBox["mm", FontSlant->"Italic"], "3"], TraditionalForm]]], " multiplications. This exponent can be reduced slightly (Strassen\ \[CloseCurlyQuote]s algorithm etc.), but the extra complexity means that \ there is no benefit until the matrix order approaches 100. \nIn practice, \ efficient internal algorithms make the matrix multiplication faster than the \ uncompiled ", StyleBox["hTimes", FontSlant->"Italic"], " algorithm (below); ", StyleBox["hoopTimes", FontSlant->"Italic"], " is slower because it includes a remainders test." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"id", "[", RowBox[{"mp", "[", RowBox[{"96", ",", "3"}], "]"}], "]"}], ";", RowBox[{"A", "=", RowBox[{"Take", "[", RowBox[{"Aa", ",", "mm"}], "]"}]}], ";", RowBox[{"B", "=", RowBox[{"Take", "[", RowBox[{"Bb", ",", "mm"}], "]"}]}], ";", RowBox[{"gd", "[", "]"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"96", ",", "3", ",", RowBox[{"{", RowBox[{"\<\"C4C2iC3?\"\>", ",", RowBox[{"{", RowBox[{"8", ",", SubscriptBox["2", "16"], ",", SubscriptBox["8", "7"]}], "}"}], ",", "0", ",", "\<\"ca[]\"\>", ",", RowBox[{"{", RowBox[{"2", ",", "2", ",", "2", ",", "2", ",", "2", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"\[DoubleStruckB]2", "\[Rule]", "\[DoubleStruckC]"}], ",", RowBox[{"\[DoubleStruckC]2", "\[Rule]", "\[DoubleStruckD]"}], ",", RowBox[{"\[DoubleStruckD]2", "\[Rule]", "\[DoubleStruckE]"}], ",", RowBox[{ "\[DoubleStruckF]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]\[DoubleStruckF]2"}]}], "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}], ",", RowBox[{"{", "}"}]}], "}"}]}], "}"}]], "Output", GeneratedCell->False, CellAutoOverwrite->False] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"hTimes", "[", RowBox[{"A_", ",", "B_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{"res", "=", RowBox[{"Table", "[", RowBox[{"0", ",", RowBox[{"{", RowBox[{"i", ",", "mm"}], "}"}]}], "]"}]}], "}"}], ",", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"res", "[", RowBox[{"[", RowBox[{"gLoop", "[", RowBox[{"[", RowBox[{"i", ",", "j"}], "]"}], "]"}], "]"}], "]"}], "+=", RowBox[{ RowBox[{"A", "[", RowBox[{"[", "i", "]"}], "]"}], " ", RowBox[{"B", "[", RowBox[{"[", "j", "]"}], "]"}]}]}], ",", RowBox[{"{", RowBox[{"i", ",", "mm"}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", "mm"}], "}"}]}], "]"}], ";", "res"}]}], "]"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}], "//", "Timing"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"0.10900000000000035`", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "68", ",", "0", ",", "26", ",", "76", ",", RowBox[{"-", "4"}], ",", "79", ",", RowBox[{"-", "18"}], ",", "60", ",", "30", ",", "50", ",", "22", ",", "66", ",", RowBox[{"-", "20"}], ",", "48", ",", "52", ",", RowBox[{"-", "23"}], ",", "8", ",", "26", ",", "25", ",", "11", ",", RowBox[{"-", "3"}], ",", "51", ",", RowBox[{"-", "2"}], ",", "32", ",", "18", ",", "39", ",", "34", ",", "62", ",", "88", ",", "28", ",", "36", ",", "42", ",", "19", ",", "17", ",", "14", ",", "28", ",", "61", ",", "37", ",", "22", ",", "70", ",", "37", ",", RowBox[{"-", "14"}], ",", "34", ",", RowBox[{"-", "32"}], ",", "12", ",", "16", ",", "86", ",", "58", ",", "112", ",", "47", ",", "55", ",", "14", ",", "36", ",", "48", ",", "16", ",", "105", ",", "6", ",", RowBox[{"-", "25"}], ",", "38", ",", RowBox[{"-", "11"}], ",", "28", ",", RowBox[{"-", "54"}], ",", "18", ",", "70", ",", "35", ",", "30", ",", "41", ",", "23", ",", "78", ",", RowBox[{"-", "20"}], ",", "41", ",", "11", ",", "63", ",", "41", ",", "3", ",", "33", ",", "58", ",", "32", ",", "31", ",", RowBox[{"-", "13"}], ",", RowBox[{"-", "29"}], ",", "62", ",", RowBox[{"-", "7"}], ",", "31", ",", "60", ",", "18", ",", "12", ",", "10", ",", RowBox[{"-", "21"}], ",", "68", ",", "14", ",", "32", ",", "50", ",", "26", ",", "21"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"hTimes", "[", RowBox[{"A", ",", "B"}], "]"}], "//", "Timing"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"0.062000000000000347`", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "68", ",", "0", ",", "26", ",", "76", ",", RowBox[{"-", "4"}], ",", "79", ",", RowBox[{"-", "18"}], ",", "60", ",", "30", ",", "50", ",", "22", ",", "66", ",", RowBox[{"-", "20"}], ",", "48", ",", "52", ",", RowBox[{"-", "23"}], ",", "8", ",", "26", ",", "25", ",", "11", ",", RowBox[{"-", "3"}], ",", "51", ",", RowBox[{"-", "2"}], ",", "32", ",", "18", ",", "39", ",", "34", ",", "62", ",", "88", ",", "28", ",", "36", ",", "42", ",", "19", ",", "17", ",", "14", ",", "28", ",", "61", ",", "37", ",", "22", ",", "70", ",", "37", ",", RowBox[{"-", "14"}], ",", "34", ",", RowBox[{"-", "32"}], ",", "12", ",", "16", ",", "86", ",", "58", ",", "112", ",", "47", ",", "55", ",", "14", ",", "36", ",", "48", ",", "16", ",", "105", ",", "6", ",", RowBox[{"-", "25"}], ",", "38", ",", RowBox[{"-", "11"}], ",", "28", ",", RowBox[{"-", "54"}], ",", "18", ",", "70", ",", "35", ",", "30", ",", "41", ",", "23", ",", "78", ",", RowBox[{"-", "20"}], ",", "41", ",", "11", ",", "63", ",", "41", ",", "3", ",", "33", ",", "58", ",", "32", ",", "31", ",", RowBox[{"-", "13"}], ",", RowBox[{"-", "29"}], ",", "62", ",", RowBox[{"-", "7"}], ",", "31", ",", "60", ",", "18", ",", "12", ",", "10", ",", RowBox[{"-", "21"}], ",", "68", ",", "14", ",", "32", ",", "50", ",", "26", ",", "21"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"Am", "=", RowBox[{"gmap", "[", RowBox[{ RowBox[{"lmatrix", "[", "gLoop", "]"}], ",", "A"}], "]"}]}], ";", RowBox[{"Am", ".", "B"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{ RowBox[{"Am", ".", "B"}], ";"}], ",", RowBox[{"{", RowBox[{"i", ",", "100"}], "}"}]}], "]"}], "//", "Timing"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "68", ",", "0", ",", "26", ",", "76", ",", RowBox[{"-", "4"}], ",", "79", ",", RowBox[{"-", "18"}], ",", "60", ",", "30", ",", "50", ",", "22", ",", "66", ",", RowBox[{"-", "20"}], ",", "48", ",", "52", ",", RowBox[{"-", "23"}], ",", "8", ",", "26", ",", "25", ",", "11", ",", RowBox[{"-", "3"}], ",", "51", ",", RowBox[{"-", "2"}], ",", "32", ",", "18", ",", "39", ",", "34", ",", "62", ",", "88", ",", "28", ",", "36", ",", "42", ",", "19", ",", "17", ",", "14", ",", "28", ",", "61", ",", "37", ",", "22", ",", "70", ",", "37", ",", RowBox[{"-", "14"}], ",", "34", ",", RowBox[{"-", "32"}], ",", "12", ",", "16", ",", "86", ",", "58", ",", "112", ",", "47", ",", "55", ",", "14", ",", "36", ",", "48", ",", "16", ",", "105", ",", "6", ",", RowBox[{"-", "25"}], ",", "38", ",", RowBox[{"-", "11"}], ",", "28", ",", RowBox[{"-", "54"}], ",", "18", ",", "70", ",", "35", ",", "30", ",", "41", ",", "23", ",", "78", ",", RowBox[{"-", "20"}], ",", "41", ",", "11", ",", "63", ",", "41", ",", "3", ",", "33", ",", "58", ",", "32", ",", "31", ",", RowBox[{"-", "13"}], ",", RowBox[{"-", "29"}], ",", "62", ",", RowBox[{"-", "7"}], ",", "31", ",", "60", ",", "18", ",", "12", ",", "10", ",", RowBox[{"-", "21"}], ",", "68", ",", "14", ",", "32", ",", "50", ",", "26", ",", "21"}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"0.015000000000000053`", ",", "Null"}], "}"}]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 3. Double-inverses, Non-Abelian Hubs & Spokes.\ \>", "Section"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " The inverse of a hoop vector inverse usually recovers the vector. The \ inverse of a vector in a non-Abelian hoop algebra is anomalous if the vector \ has any non-linear zero-sizes." }], "Text"], Cell["\<\ Abelian double-inverses recover the original even though some sizes are zero:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{" ", RowBox[{ RowBox[{"id", "[", "C6", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}]}], "]"}]}], ",", "\"\<\\nAii = \>\"", ",", RowBox[{"Aii", "=", RowBox[{"hoopInverse", "[", "Ai", "]"}]}], ",", "\"\<\\nshapes = \>\"", ",", RowBox[{"shape", "[", "A", "]"}], ",", RowBox[{"shape", "[", "Aii", "]"}]}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Ai=\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["71", "756"]}], ",", FractionBox["55", "756"], ",", RowBox[{"-", FractionBox["2", "189"]}], ",", RowBox[{"-", FractionBox["43", "756"]}], ",", FractionBox["83", "756"], ",", FractionBox["5", "189"]}], "}"}], ",", "\<\"\\nAii = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}], ",", "\<\"\\nshapes = \"\>", ",", RowBox[{"{", RowBox[{"21", ",", RowBox[{"-", "108"}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"21", ",", RowBox[{"-", "108"}], ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{" ", RowBox[{ RowBox[{"id", "[", "C6", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"{", RowBox[{ RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", RowBox[{"-", "15"}]}], "}"}]}], "]"}]}], ",", "\"\<\\nAii = \>\"", ",", RowBox[{"Aii", "=", RowBox[{"hoopInverse", "[", "Ai", "]"}]}], ",", "\"\<\\nshapes = \>\"", ",", RowBox[{"shape", "[", "A", "]"}], ",", RowBox[{"shape", "[", "Aii", "]"}]}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ FractionBox["83", "6104"], ",", FractionBox["209", "18312"], ",", FractionBox["305", "18312"], ",", FractionBox["31", "18312"], ",", RowBox[{"-", FractionBox["881", "18312"]}], ",", FractionBox["29", "6104"]}], "}"}], ",", "\<\"\\nAii = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", RowBox[{"-", "15"}]}], "}"}], ",", "\<\"\\nshapes = \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "3924", ",", "441"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "3924", ",", "441"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Non-Abelian algebras have repeated sizes. This has some interesting effects, \ allowing annihilators and introducing uncertainty. Demonstration vectors are \ set up to have different zero sizes in S3 (aka D6), the smallest non-Abelian \ group algebra. A0 is an annihilator of size {0,0,0}; any vector multipled by \ an annihilator gives another annihilator. Adding an annihilator leaves linear \ sizes unchanged. Vectors with different zero-sizes are created:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{" ", RowBox[{ RowBox[{"id", "[", "S3", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"{", RowBox[{ "\"\\"", ",", "\[IndentingNewLine]", "\"\<\\n Aaaa=\>\"", ",", RowBox[{"Aaaa", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "7"}], "}"}]}], ",", RowBox[{"shape", "[", "Aaaa", "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Aaa0=\>\"", ",", RowBox[{"Aaa0", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}]}], ",", RowBox[{"shape", "[", "Aaa0", "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Aa0a=\>\"", ",", RowBox[{"Aa0a", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "6", ",", "4"}], "}"}]}], ",", RowBox[{"shape", "[", "Aa0a", "]"}], ",", "\[IndentingNewLine]", "\"\<\\n A0aa=\>\"", ",", RowBox[{"A0aa", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "5", ",", RowBox[{"-", "6"}], ",", RowBox[{"-", "5"}]}], "}"}]}], ",", RowBox[{"shape", "[", "A0aa", "]"}], ",", "\[IndentingNewLine]", "\"\<\\n P =\>\"", ",", RowBox[{"shape", "[", RowBox[{"P", "=", RowBox[{"{", RowBox[{"3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n B0aa=\>\"", ",", RowBox[{"shape", "[", RowBox[{"B0aa", "=", RowBox[{"{", RowBox[{"2", ",", "1", ",", RowBox[{"-", "5"}], ",", RowBox[{"-", "6"}], ",", "0", ",", "8"}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Ba0a=\>\"", ",", RowBox[{"shape", "[", RowBox[{"Ba0a", "=", RowBox[{"{", RowBox[{"2", ",", RowBox[{"-", "1"}], ",", "0", ",", "6", ",", "0", ",", RowBox[{"-", "3"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Baa0=\>\"", ",", RowBox[{"shape", "[", RowBox[{"Baa0", "=", RowBox[{"{", RowBox[{"2", ",", "1", ",", RowBox[{"-", "5"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "6"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Ba00=\>\"", ",", RowBox[{"shape", "[", RowBox[{"Ba00", "=", RowBox[{"{", RowBox[{"2", ",", "1", ",", RowBox[{"-", "5"}], ",", "2", ",", "1", ",", RowBox[{"-", "5"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n Aa0= \>\"", ",", RowBox[{"shape", "[", RowBox[{"A0", "=", RowBox[{"{", RowBox[{"a", ",", "b", ",", RowBox[{ RowBox[{"-", "a"}], "-", "b"}], ",", "a", ",", "b", ",", RowBox[{ RowBox[{"-", "a"}], "-", "b"}]}], "}"}]}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n 2A0 P=\>\"", ",", RowBox[{"shape", "[", RowBox[{"hoopTimes", "[", RowBox[{ RowBox[{"2", "A0"}], ",", "P"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\n 2A0+P=\>\"", ",", RowBox[{"shape", "[", RowBox[{ RowBox[{"2", "A0"}], "+", "P"}], "]"}]}], "}"}]}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Vector S3 Sizes\"\>", ",", "\<\"\\n Aaaa=\"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "7"}], "}"}], ",", RowBox[{"{", RowBox[{"22", ",", RowBox[{"-", "4"}], ",", RowBox[{"-", "7.`"}]}], "}"}], ",", "\<\"\\n Aaa0=\"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "6"}], "}"}], ",", RowBox[{"{", RowBox[{"21", ",", RowBox[{"-", "3"}], ",", "0"}], "}"}], ",", "\<\"\\n Aa0a=\"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "6", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"20", ",", "0", ",", "15.`"}], "}"}], ",", "\<\"\\n A0aa=\"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "5", ",", RowBox[{"-", "6"}], ",", RowBox[{"-", "5"}]}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "4"}], ",", RowBox[{"-", "12.`"}]}], "}"}], ",", "\<\"\\n P =\"\>", ",", RowBox[{"{", RowBox[{"23", ",", "1", ",", RowBox[{"-", "61.`"}]}], "}"}], ",", "\<\"\\n B0aa=\"\>", ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "6"}], ",", RowBox[{"-", "108.`"}]}], "}"}], ",", "\<\"\\n Ba0a=\"\>", ",", RowBox[{"{", RowBox[{"4", ",", "0", ",", RowBox[{"-", "63.`"}]}], "}"}], ",", "\<\"\\n Baa0=\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "11"}], ",", "3", ",", "0"}], "}"}], ",", "\<\"\\n Ba00=\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "4"}], ",", "0", ",", "0"}], "}"}], ",", "\<\"\\n Aa0= \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", "\<\"\\n 2A0 P=\"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", "\<\"\\n 2A0+P=\"\>", ",", RowBox[{"{", RowBox[{"23", ",", "1", ",", RowBox[{ RowBox[{"-", "61.`"}], "+", RowBox[{"42.`", " ", "a"}], "+", RowBox[{"54.`", " ", "b"}]}]}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ A0 is an annihilator, and so are its products:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"AA0", "=", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"A0", ",", "A0"}], "]"}], "]"}]}], ",", "\"\<\\n It is an annihilator with zero sizes and inverse\>\"", ",", RowBox[{"shape", "[", "AA0", "]"}], ",", RowBox[{"hoopInverse", "[", "A0", "]"}], ",", "\"\<\\n So is Baoa*A0 = \>\"", ",", RowBox[{"BA0", "=", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ba0a", ",", "A0"}], "]"}], "]"}]}], ",", "\"\<\\n\>\"", ",", RowBox[{"shape", "[", "BA0", "]"}], ",", RowBox[{"hoopInverse", "[", "BA0", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A0*A0 = \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"3", " ", SuperscriptBox["a", "2"]}], ",", RowBox[{"3", " ", "a", " ", "b"}], ",", RowBox[{ RowBox[{"-", "3"}], " ", "a", " ", RowBox[{"(", RowBox[{"a", "+", "b"}], ")"}]}], ",", RowBox[{"3", " ", SuperscriptBox["a", "2"]}], ",", RowBox[{"3", " ", "a", " ", "b"}], ",", RowBox[{ RowBox[{"-", "3"}], " ", "a", " ", RowBox[{"(", RowBox[{"a", "+", "b"}], ")"}]}]}], "}"}], ",", "\<\"\\n It is an annihilator with zero sizes and inverse\"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\<\"\\n So is Baoa*A0 = \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"11", " ", "a"}], "+", RowBox[{"2", " ", "b"}]}], ",", RowBox[{ RowBox[{"-", "7"}], " ", RowBox[{"(", RowBox[{"a", "+", "b"}], ")"}]}], ",", RowBox[{ RowBox[{ RowBox[{"-", "4"}], " ", "a"}], "+", RowBox[{"5", " ", "b"}]}], ",", RowBox[{ RowBox[{"11", " ", "a"}], "+", RowBox[{"2", " ", "b"}]}], ",", RowBox[{ RowBox[{"-", "7"}], " ", RowBox[{"(", RowBox[{"a", "+", "b"}], ")"}]}], ",", RowBox[{ RowBox[{ RowBox[{"-", "4"}], " ", "a"}], "+", RowBox[{"5", " ", "b"}]}]}], "}"}], ",", "\<\"\\n\"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ The double-inverse Ai of a vector A in a non-Abelian algebra is correct if \ the vector has no zero-sizes. Inverting the inverse recovers the original \ vector, Aii == A, and Ai acts correctly as a left inverse, Ai (AP) == P. (As \ the inverse is real, the final result is also real) :-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A", "=", "Aaaa"}], ",", "\"\< sh[A] = \>\"", ",", RowBox[{"shape", "[", "A", "]"}], ",", "\"\<\\n Ai = \>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}], ",", "\"\<\\nAii = \>\"", ",", RowBox[{"Aii", "=", RowBox[{"hoopInverse", "[", "Ai", "]"}]}], ",", "\"\< sh[Aii] = \>\"", ",", RowBox[{"shape", "[", "Aii", "]"}], ",", "\[IndentingNewLine]", "\"\<\\nAP = \>\"", ",", RowBox[{"AP", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "P"}], "]"}]}], ",", "\"\< AiAP = \>\"", ",", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AP"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "7"}], "}"}], ",", "\<\" sh[A] = \"\>", ",", RowBox[{"{", RowBox[{"22", ",", RowBox[{"-", "4"}], ",", RowBox[{"-", "7.`"}]}], "}"}], ",", "\<\"\\n Ai = \"\>", ",", RowBox[{"{", RowBox[{"0.2516233766233766`", ",", RowBox[{"-", "0.28409090909090906`"}], ",", RowBox[{"-", "0.31980519480519476`"}], ",", "0.0016233766233766285`", ",", RowBox[{"-", "0.03409090909090909`"}], ",", "0.43019480519480513`"}], "}"}], ",", "\<\"\\nAii = \"\>", ",", RowBox[{"{", RowBox[{ "0.9999999999999988`", ",", "1.9999999999999984`", ",", "2.9999999999999987`", ",", "3.9999999999999987`", ",", "4.999999999999998`", ",", "6.999999999999998`"}], "}"}], ",", "\<\" sh[Aii] = \"\>", ",", RowBox[{"{", RowBox[{"21.999999999999993`", ",", RowBox[{"-", "3.999999999999999`"}], ",", RowBox[{"-", "7.`"}]}], "}"}], ",", "\<\"\\nAP = \"\>", ",", RowBox[{"{", RowBox[{"107", ",", "90", ",", "67", ",", "99", ",", "77", ",", "66"}], "}"}], ",", "\<\" AiAP = \"\>", ",", RowBox[{"{", RowBox[{ "2.9999999999999964`", ",", "1.`", ",", "4.`", ",", "1.`", ",", "5.`", ",", "8.999999999999993`"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ This is still true even if the right-hand multiplier (and hence the product) \ has one or more zero-size:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A", "=", "Aaaa"}], ",", "\"\< sh[A] = \>\"", ",", RowBox[{"shape", "[", "A", "]"}], ",", "\"\<\\n Ai = \>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}], ",", "\"\<\\nAii = \>\"", ",", RowBox[{"Aii", "=", RowBox[{"hoopInverse", "[", "Ai", "]"}]}], ",", "\"\< sh[Aii] = \>\"", ",", RowBox[{"shape", "[", "Aii", "]"}], ",", "\"\<\\nB = \>\"", ",", RowBox[{"B", "=", "B0aa"}], ",", "\[IndentingNewLine]", "\"\<\\nAB = \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B0aa"}], "]"}]}], ",", "\"\<\\nAiAB= \>\"", ",", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "5", ",", "7"}], "}"}], ",", "\<\" sh[A] = \"\>", ",", RowBox[{"{", RowBox[{"22", ",", RowBox[{"-", "4"}], ",", RowBox[{"-", "7.`"}]}], "}"}], ",", "\<\"\\n Ai = \"\>", ",", RowBox[{"{", RowBox[{"0.2516233766233766`", ",", RowBox[{"-", "0.28409090909090906`"}], ",", RowBox[{"-", "0.31980519480519476`"}], ",", "0.0016233766233766285`", ",", RowBox[{"-", "0.03409090909090909`"}], ",", "0.43019480519480513`"}], "}"}], ",", "\<\"\\nAii = \"\>", ",", RowBox[{"{", RowBox[{ "0.9999999999999988`", ",", "1.9999999999999984`", ",", "2.9999999999999987`", ",", "3.9999999999999987`", ",", "4.999999999999998`", ",", "6.999999999999998`"}], "}"}], ",", "\<\" sh[Aii] = \"\>", ",", RowBox[{"{", RowBox[{"21.999999999999993`", ",", RowBox[{"-", "3.999999999999999`"}], ",", RowBox[{"-", "7.`"}]}], "}"}], ",", "\<\"\\nB = \"\>", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", RowBox[{"-", "5"}], ",", RowBox[{"-", "6"}], ",", "0", ",", "8"}], "}"}], ",", "\<\"\\nAB = \"\>", ",", RowBox[{"{", RowBox[{"11", ",", RowBox[{"-", "21"}], ",", RowBox[{"-", "21"}], ",", "10", ",", "22", ",", RowBox[{"-", "1"}]}], "}"}], ",", "\<\"\\nAiAB= \"\>", ",", RowBox[{"{", RowBox[{"1.9999999999999996`", ",", "0.9999999999999982`", ",", RowBox[{"-", "5.000000000000001`"}], ",", RowBox[{"-", "6.`"}], ",", "0.`", ",", "8.`"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Aa0a and B0aa have disparate zeroes:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A", "=", "Aa0a"}], ",", RowBox[{"shape", "[", "A", "]"}], ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}], ",", "\"\\"", ",", RowBox[{"Aii", "=", RowBox[{"hoopInverse", "[", "Ai", "]"}]}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Aii", "]"}], "]"}], ",", "\"\<\\nB, sh B = \>\"", ",", RowBox[{"B", "=", "B0aa"}], ",", RowBox[{"shape", "[", "B", "]"}], ",", "\"\<\\nAB, AiAB = \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", RowBox[{"AiAB", "=", RowBox[{"Chop", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}]}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "AiAB", "]"}], "]"}], ",", "\"\<\\n This has lost a size.\>\""}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A, sh[A] = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "6", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"20", ",", "0", ",", "15.`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1472222222222222`"}], ",", "0.09722222222222222`", ",", "0.18611111111111112`", ",", RowBox[{"-", "0.03611111111111111`"}], ",", RowBox[{"-", "0.013888888888888888`"}], ",", RowBox[{"-", "0.03611111111111111`"}]}], "}"}], ",", "\<\"Aii,sh[Aii] = \"\>", ",", RowBox[{"{", RowBox[{ "0.9999999999999991`", ",", "1.9999999999999987`", ",", "2.9999999999999987`", ",", "3.9999999999999987`", ",", "5.999999999999997`", ",", "3.9999999999999987`"}], "}"}], ",", RowBox[{"{", RowBox[{"19.999999999999993`", ",", "0", ",", "14.999999999999986`"}], "}"}], ",", "\<\"\\nB, sh B = \"\>", ",", RowBox[{"{", RowBox[{"2", ",", "1", ",", RowBox[{"-", "5"}], ",", RowBox[{"-", "6"}], ",", "0", ",", "8"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "6"}], ",", RowBox[{"-", "108.`"}]}], "}"}], ",", "\<\"\\nAB, AiAB = \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "18"}], ",", RowBox[{"-", "27"}], ",", RowBox[{"-", "3"}], ",", "33", ",", "21", ",", RowBox[{"-", "6"}]}], "}"}], ",", RowBox[{"{", RowBox[{"2.9999999999999996`", ",", "0", ",", RowBox[{"-", "4.`"}], ",", RowBox[{"-", "7.`"}], ",", "1.0000000000000002`", ",", "7.`"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", RowBox[{"-", "108.`"}]}], "}"}], ",", "\<\"\\n This has lost a size.\"\>"}], "}"}]], "Output"] }, Open ]], Cell["\<\ Aa0a and Ba0a have the same zero-size so Ba0a is recovered:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A", "=", "Aa0a"}], ",", RowBox[{"shape", "[", "A", "]"}], ",", "\"\<\\n Ai = \>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}], ",", "\"\<\\n B, sh B = \>\"", ",", RowBox[{"B", "=", "Ba0a"}], ",", RowBox[{"shape", "[", "B", "]"}], ",", "\"\<\\n AB = \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", "\"\<\\n AiAB = B \>\"", ",", RowBox[{"Chop", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A, sh[A] = \"\>", ",", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", "6", ",", "4"}], "}"}], ",", RowBox[{"{", RowBox[{"20", ",", "0", ",", "15.`"}], "}"}], ",", "\<\"\\n Ai = \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "0.1472222222222222`"}], ",", "0.09722222222222222`", ",", "0.18611111111111112`", ",", RowBox[{"-", "0.03611111111111111`"}], ",", RowBox[{"-", "0.013888888888888888`"}], ",", RowBox[{"-", "0.03611111111111111`"}]}], "}"}], ",", "\<\"\\n B, sh B = \"\>", ",", RowBox[{"{", RowBox[{"2", ",", RowBox[{"-", "1"}], ",", "0", ",", "6", ",", "0", ",", RowBox[{"-", "3"}]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", "0", ",", RowBox[{"-", "63.`"}]}], "}"}], ",", "\<\"\\n AB = \"\>", ",", RowBox[{"{", RowBox[{"12", ",", "30", ",", "20", ",", RowBox[{"-", "7"}], ",", "8", ",", "17"}], "}"}], ",", "\<\"\\n AiAB = B \"\>", ",", RowBox[{"{", RowBox[{"2.0000000000000004`", ",", RowBox[{"-", "0.9999999999999991`"}], ",", "0", ",", "6.000000000000001`", ",", "0", ",", RowBox[{"-", "2.999999999999999`"}]}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ But when a non-linear size is zero, the shape does not contain enough \ information to recover the doubly inverted vector. This corresponds to the \ calculation of A*B=AB + Rr, where a right remainder carries the lost size. \ AiAB returns a vector that differs from B by a vector having the missing \ size. Equivalently, Q=AiV only gives a restricted sample of the vectors that \ would give V when pre-multiplied by A. Uncertainty is introduced on dividing \ by a vector with a repeated zero-size. The result is a \ \[OpenCurlyDoubleQuote]hub\[CloseCurlyDoubleQuote] having the same shape as \ the original vector but differing from it by a zero-sized \ \[OpenCurlyDoubleQuote]spoke\[CloseCurlyDoubleQuote]. Division by a vector \ with a zero-sized quadratic size introduces uncertainty. It \ \[OpenCurlyDoubleQuote]puts a spoke in the wheel\[CloseCurlyDoubleQuote]. \ This is shown for the vectors with zero quadratic sizes:-\ \>", "Text"], Cell[BoxData[ RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", " ", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Aaa0ii", "=", RowBox[{"hoopInverse", "[", RowBox[{"hoopInverse", "[", "Aaa0", "]"}], "]"}]}], ",", RowBox[{"shape", "[", "Aaa0ii", "]"}], ",", RowBox[{"Chop", "[", RowBox[{"Aaa0", "-", "Aaa0ii"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Baa0ii", " ", "=", RowBox[{"hoopInverse", "[", RowBox[{"hoopInverse", "[", "Baa0", "]"}], "]"}]}], ",", RowBox[{"shape", "[", "Baa0ii", "]"}], ",", RowBox[{"Chop", "[", RowBox[{"Baa0", "-", "Baa0ii"}], "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"Ba00ii", " ", "=", RowBox[{"hoopInverse", "[", RowBox[{"hoopInverse", "[", "Ba00", "]"}], "]"}]}], ",", RowBox[{"shape", "[", "Ba00ii", "]"}], ",", RowBox[{"Chop", "[", RowBox[{"Ba00", "-", "Ba00ii"}], "]"}]}], "}"}]}], "\[IndentingNewLine]", "}"}], "]"}]], "Input"], Cell["\<\ Following the same procedure for the five 12-element groups of \ \[OpenCurlyDoubleQuote]Dozal Algebra\[CloseCurlyDoubleQuote], creating \ vectors with zeroes in succesive positions:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"Ad", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "4", ",", RowBox[{"-", "5"}], ",", "6", ",", "7", ",", RowBox[{"-", "8"}], ",", RowBox[{"-", "9"}], ",", "0", ",", RowBox[{"-", "2"}], ",", "1"}], "}"}]}], ";", RowBox[{"Bd", "=", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "2"}], ",", "3", ",", RowBox[{"-", "4"}], ",", "5", ",", RowBox[{"-", "6"}], ",", "7", ",", RowBox[{"-", "8"}], ",", "9", ",", "10", ",", "1", ",", "4"}], "}"}]}], ";", RowBox[{"Cd", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "2", ",", "4", ",", "0", ",", "3", ",", RowBox[{"-", "2"}], ",", "4", ",", "3", ",", "6", ",", "0", ",", "1"}], "}"}]}], ";", RowBox[{"Dd", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "3"}], ",", "1", ",", "2", ",", "2", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}]}], "}"}]}], ";", RowBox[{"Ed", "=", RowBox[{"{", RowBox[{"2", ",", "2", ",", RowBox[{"-", "1"}], ",", "0", ",", "4", ",", "1", ",", "2", ",", "0", ",", "1", ",", "6", ",", "0", ",", "1"}], "}"}]}], ";", RowBox[{"Fd", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6", ",", "5", ",", "3", ",", "5", ",", "9"}], "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"id", "[", "C12", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g"}], "}"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Ad", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Bd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Cd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Dd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Ed", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Fd", "]"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{ RowBox[{"Ei", "=", RowBox[{"hoopInverse", "[", "Ed", "]"}]}], ";", RowBox[{"Eii", "=", RowBox[{"hoopInverse", "[", "Ei", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"Ed", "-", "Eii"}], "]"}]}]}], "}"}]}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"a", "b", "c", "d", "e", "f", "g"}, {"0", RowBox[{"-", "8"}], "292", "471.`", "247.`", "594.9512146747807`", "103.04878532521943`"}, {"20", "0", "436", "268.`", "684.`", "495.138438763306`", "328.8615612366939`"}, {"24", RowBox[{"-", "4"}], "0", "9.`", "229.`", "12.215390309173474`", "53.784609690826514`"}, {"0", "22", "2", "0", "28.`", "2.`", "2.`"}, {"18", RowBox[{"-", "6"}], "4", "48.`", "0", "143.42562584220406`", "32.57437415779593`"}, {"53", RowBox[{"-", "11"}], "29", "244.`", "76.`", "18.14359353944898`", "45.856406460551014`"} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Ed has a zero quadratic shape. Abelian Remainder =\"\>", ",", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", "C3C2C2", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", "h"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Ad", "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Bd", "]"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Cd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"Db", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", "3", ",", RowBox[{"-", "11"}], ",", "2", ",", "3", ",", "4", ",", "5", ",", "3", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "2"}]}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"Eb", "=", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"Fb", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "3", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "2"}], ",", "1", ",", "2", ",", "3"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"Gb", "=", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "1", ",", "1", ",", "2", ",", "0", ",", "1", ",", "2", ",", "1", ",", "1", ",", "2", ",", "0"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"Hb", "=", RowBox[{"{", RowBox[{"1", ",", "2", ",", "2", ",", "1", ",", RowBox[{"-", "2"}], ",", "0", ",", "0", ",", "2", ",", "2", ",", "0", ",", RowBox[{"-", "2"}], ",", "0"}], "}"}]}], "]"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Fi", "=", RowBox[{"hoopInverse", "[", "Fb", "]"}]}], ";", RowBox[{"Fii", "=", RowBox[{"hoopInverse", "[", "Fi", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"Fb", "-", "Fii"}], "]"}]}]}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"a", "b", "c", "d", "e", "f", "g", "h"}, {"0", RowBox[{"-", "8"}], "22", "10", "471.`", "247.`", "271.`", "427.`"}, {"20", "0", RowBox[{"-", "26"}], "14", "268.`", "684.`", "796.`", "28.`"}, {"24", RowBox[{"-", "4"}], "0", "0", "9.`", "229.`", "9.`", "57.`"}, {"12", "24", RowBox[{"-", "12"}], "0", "228.`", "300.`", "156.`", "156.`"}, {"18", "2", "0", "4", "0", "16.`", "48.`", "16.`"}, {"2", "0", "0", "22", "4.`", "0", "0", "28.`"}, {"14", "2", "0", "0", "28.`", "4.`", "0", "0"}, {"6", "12", "2", "0", "12.`", "48.`", "4.`", "0"} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", "Q12", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f", ",", "g", ",", "h"}], "}"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Ad", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Bd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Cd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Db", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Dd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Fb", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Gb", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Hb", "]"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Gi", "=", RowBox[{"hoopInverse", "[", "Gb", "]"}]}], ";", RowBox[{"Gii", "=", RowBox[{"hoopInverse", "[", "Gi", "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"GmGii", "=", RowBox[{"Chop", "[", RowBox[{"Gb", "-", "Gii"}], "]"}]}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "GmGii", "]"}], "]"}]}], "}"}]}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Hi", "=", RowBox[{"hoopInverse", "[", "Hb", "]"}]}], ";", RowBox[{"Hii", "=", RowBox[{"hoopInverse", "[", "Hi", "]"}]}], ";", RowBox[{"{", RowBox[{ RowBox[{"HmHii", "=", RowBox[{"Chop", "[", RowBox[{"Hb", "-", "Hii"}], "]"}]}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "HmHii", "]"}], "]"}]}], "}"}]}]}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"a", "b", "c", "d", "e", "f", "g", "h"}, {"0", RowBox[{"-", "8"}], "22", "10", "471.`", "247.`", "271.`", "427.`"}, {"20", "0", RowBox[{"-", "26"}], "14", "268.`", "684.`", "796.`", "28.`"}, {"24", RowBox[{"-", "4"}], "0", "0", "9.`", "229.`", "9.`", "57.`"}, {"12", "24", RowBox[{"-", "12"}], "0", "228.`", "300.`", "156.`", "156.`"}, {"0", "22", "0", "2", "0", "28.`", "0", "4.`"}, {"2", "0", "0", "22", "4.`", "0", "0", "28.`"}, {"14", "2", "0", "0", "28.`", "4.`", "0", "0"}, {"6", "12", "2", "0", "12.`", "48.`", "4.`", "0"} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", RowBox[{"ca", "[", RowBox[{"12", ",", "11"}], "]"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";"}], "\[IndentingNewLine]", RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d", ",", "e", ",", "f"}], "}"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Ad", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Bd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Cd", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Db", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Eb", "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "Fb", "]"}], "]"}]}], "}"}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"Ei", "=", RowBox[{"hoopInverse", "[", "Ed", "]"}]}], ";", RowBox[{"Eii", "=", RowBox[{"hoopInverse", "[", "Ei", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"Ed", "-", "Eii"}], "]"}]}]}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"a", "b", "c", "d", "e", "f"}, {"0", RowBox[{"-", "8"}], "22", "10", "33.`", "235.`"}, {"20", "0", RowBox[{"-", "26"}], "14", "348.`", RowBox[{"-", "124.`"}]}, {"24", RowBox[{"-", "4"}], "0", "0", RowBox[{"-", "33.`"}], "9.`"}, {"12", "24", RowBox[{"-", "12"}], "0", RowBox[{"-", "240.`"}], RowBox[{"-", "156.`"}]}, {"18", "2", "0", "4", "0", "0"}, {"2", "0", "0", "22", "0", "0"} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"1.0000000000000004`", ",", "0", ",", RowBox[{"-", "1"}], ",", "1.0000000000000002`", ",", "0", ",", RowBox[{"-", "0.9999999999999996`"}], ",", "1.0000000000000004`", ",", "0", ",", RowBox[{"-", "0.9999999999999996`"}], ",", "1.`", ",", "0", ",", RowBox[{"-", "0.9999999999999996`"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ New vectors are needed to give zero-sizes in A4.\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"A4c", "=", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0"}], "}"}]}], "]"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"18", ",", "2", ",", "0", ",", "4", ",", "0", ",", "0"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"id", "[", "A4", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", RowBox[{"Grid", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c"}], "}"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"A4a", "=", "Ad"}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"A4b", "=", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0", ",", "1", ",", "2", ",", "3", ",", "0"}], "}"}]}], "]"}], "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", RowBox[{"A4c", "=", RowBox[{"{", RowBox[{ "1", ",", "2", ",", "3", ",", "1", ",", "2", ",", "3", ",", "2", ",", "3", ",", "4", ",", "4", ",", "5", ",", "6"}], "}"}]}], "]"}], "]"}]}], "}"}], "]"}]}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"A4ai", "=", RowBox[{"hoopInverse", "[", "A4a", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"A4aii", "=", RowBox[{"hoopInverse", "[", "A4ai", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"A4a", "-", "A4aii"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A4bi", "=", RowBox[{"hoopInverse", "[", "A4b", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"A4bii", "=", RowBox[{"hoopInverse", "[", "A4bi", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"A4b", "-", "A4bii"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A4ci", "=", RowBox[{"hoopInverse", "[", "A4c", "]"}]}], ";", "\[IndentingNewLine]", RowBox[{"A4cii", "=", RowBox[{"hoopInverse", "[", "A4ci", "]"}]}], ";", RowBox[{"Chop", "[", RowBox[{"A4c", "-", "A4cii"}], "]"}]}]}], "}"}]}], "Input"], Cell[BoxData[ TagBox[GridBox[{ {"a", "b", "c"}, {"0", "471", RowBox[{"-", "3156"}]}, {"18", "0", RowBox[{"-", "32"}]}, {"36", "48", "0"} }, AutoDelete->False, GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}], "Grid"]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "0", ",", "2", ",", "2", ",", "2"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Summary. Multiplication by a vector with repeated (and hence in a non-abelian \ algebra) zero-sizes creates remainders unless both multiplicands have the \ same zero-sizes. \ \>", "Text"] }, Closed]], Cell[CellGroupData[{ Cell["4. Octonion conservation.", "Section", PageWidth->WindowWidth, FontFamily->"Arial"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " Conservation is investigated for (non-associative) algebras composed from \ octonion and split-octonion tables. Compositions with Abelian groups appear \ to be the only ones that are conservative." }], "Text", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell["3.1 Conservation of Octonion Compositions.", "Subsubsection", PageWidth->WindowWidth], Cell[TextData[{ StyleBox["\t", FontSlant->"Italic"], "The following procedure creates large tables that may not be in the \ databank. The table is conservative if one error result is 0. (Conservation \ is Det[A] Det[B]=\[PlusMinus] Det[AB] i.e. the symmetric difference). If the \ product has a zero size, both errors are zero and the test must be repeated." }], "Text", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC2C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C2C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC5 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C5"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC6 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C6"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C4C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\n\\nS3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "S3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "Q8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"8", ",", "7"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nA4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "A4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "11"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "5"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}]}], "\[IndentingNewLine]", "}"}], "\[IndentingNewLine]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\<\"C2 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", "28", ",", "15"}], "}"}], ",", "32", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC3 \"\>", ",", RowBox[{"{", RowBox[{"2", ",", SubscriptBox["2", "2"], ",", SubscriptBox["14", "3"]}], "}"}], ",", "48", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", "4", ",", SubscriptBox["28", "2"], ",", "60", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC2C2 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", "56", ",", "56", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC5 \"\>", ",", RowBox[{"{", RowBox[{"2", ",", SubscriptBox["2", "4"], ",", SubscriptBox["14", "5"]}], "}"}], ",", "80", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC6 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "2"], ",", SubscriptBox["28", "3"]}], "}"}], ",", "96", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC8 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "3"], ",", SubscriptBox["28", "4"], ",", "64", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4C2 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", "8", ",", SubscriptBox["56", "2"], ",", "120", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\n\\nS3 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", SubscriptBox["2", "2"], ",", SubscriptBox["14", "2"], ",", "56"}], "}"}], ",", "96", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ8 \"\>", ",", RowBox[{"{", RowBox[{ "4", ",", "12", ",", "28", ",", "84", ",", "124", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD8 \"\>", ",", RowBox[{"{", RowBox[{ "12", ",", "4", ",", "28", ",", "84", ",", "116", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nA4 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", SubscriptBox["2", "8"], ",", SubscriptBox["14", "8"], ",", "56"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD12 \"\>", ",", RowBox[{"{", RowBox[{"16", ",", SubscriptBox["4", "2"], ",", SubscriptBox["28", "2"], ",", "112"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ12 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "2"], ",", "12", ",", SubscriptBox["28", "3"], ",", "84"}], "}"}], ",", "192", ",", "False"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ Direct compositions of Oct and the following tables gave the following \ results:- Conservative.\t\t\t\t\tNon-conservative. C2,C3,C4,K,C5,C3C2,C8,C4C2,\tC5n,D3,C6n,D4,Q8,D5,Q12,A4, KC2,C9,C3C3,C10,C11,C3C4,C3K,\tD3C2,Alt12n,KiC4,C4iC4,C8pC2, C16,C4C4,C8C2,C4K,KK\t\tD8,Q8iC2,Q16,D4C2,Q8C2,P16,Oct In this test, all abelian groups, and no non-abelian tables, give \ conservative octonions on direct composition with Oct.\ \>", "Text", PageWidth->WindowWidth], Cell[TextData[{ StyleBox["\t", FontSlant->"Italic"], Cell[BoxData[ FormBox[ RowBox[{"There", " "}], TraditionalForm]]], "are three 16-element Moufang loops, but only two are conservative and fold \ to conservative signed tables (octonion algebra and split-octonion algebra)." }], "Text", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC2C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C2C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC5 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C5"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC6 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C6"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "C4C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\n\\nS3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "S3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "Q8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"8", ",", "7"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nA4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", "A4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "11"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Oct", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "5"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}]}], "\[IndentingNewLine]", "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\<\"C2 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", "28", ",", "15"}], "}"}], ",", "32", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC3 \"\>", ",", RowBox[{"{", RowBox[{"2", ",", SubscriptBox["2", "2"], ",", SubscriptBox["14", "3"]}], "}"}], ",", "48", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", "4", ",", SubscriptBox["28", "2"], ",", "60", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC2C2 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", "56", ",", "56", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC5 \"\>", ",", RowBox[{"{", RowBox[{"2", ",", SubscriptBox["2", "4"], ",", SubscriptBox["14", "5"]}], "}"}], ",", "80", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC6 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "2"], ",", SubscriptBox["28", "3"]}], "}"}], ",", "96", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC8 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "3"], ",", SubscriptBox["28", "4"], ",", "64", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4C2 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", "8", ",", SubscriptBox["56", "2"], ",", "120", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\n\\nS3 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", SubscriptBox["2", "2"], ",", SubscriptBox["14", "2"], ",", "56"}], "}"}], ",", "96", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ8 \"\>", ",", RowBox[{"{", RowBox[{ "4", ",", "12", ",", "28", ",", "84", ",", "124", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD8 \"\>", ",", RowBox[{"{", RowBox[{ "12", ",", "4", ",", "28", ",", "84", ",", "116", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nA4 \"\>", ",", RowBox[{"{", RowBox[{"8", ",", SubscriptBox["2", "8"], ",", SubscriptBox["14", "8"], ",", "56"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD12 \"\>", ",", RowBox[{"{", RowBox[{"16", ",", SubscriptBox["4", "2"], ",", SubscriptBox["28", "2"], ",", "112"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ12 \"\>", ",", RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "2"], ",", "12", ",", SubscriptBox["28", "3"], ",", "84"}], "}"}], ",", "192", ",", "False"}], "}"}]}], "}"}]], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["3.2 Conservation of Split-Octonion (Q8M) Compositions.", "Subsubsection", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"Octs", "=", RowBox[{"cd", "[", RowBox[{"{", RowBox[{"1", ",", RowBox[{"-", "1"}], ",", RowBox[{"-", "1"}], ",", RowBox[{"{", "2", "}"}]}], "}"}], "]"}]}], ";", RowBox[{"id", "[", "Octs", "]"}]}]], "Input"], Cell[BoxData["\<\"Q8M\"\>"], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC2C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C2C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC5 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C5"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC6 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C6"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nC4C2 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "C4C2"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\n\\nS3 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "S3"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "Q8"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD8 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", RowBox[{"ca", "[", RowBox[{"8", ",", "7"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nA4 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", "A4"}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nD12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "11"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\<\\nQ12 \>\"", ",", RowBox[{"dico", "[", RowBox[{"tst", "=", RowBox[{"co", "[", RowBox[{"Octs", ",", RowBox[{"ca", "[", RowBox[{"12", ",", "5"}], "]"}]}], "]"}]}], "]"}], ",", RowBox[{"Length", "[", "tst", "]"}], ",", RowBox[{"conservativeQ", "[", "tst", "]"}]}], "}"}]}], "\[IndentingNewLine]", "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\<\"C2 \"\>", ",", RowBox[{"{", RowBox[{"20", ",", "12", ",", "31"}], "}"}], ",", "32", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC3 \"\>", ",", RowBox[{"{", RowBox[{"10", ",", SubscriptBox["6", "3"], ",", SubscriptBox["10", "2"]}], "}"}], ",", "48", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4 \"\>", ",", RowBox[{"{", RowBox[{"20", ",", SubscriptBox["12", "2"], ",", "20", ",", "44", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC2C2 \"\>", ",", RowBox[{"{", RowBox[{"40", ",", "24", ",", "39", ",", "2688"}], "}"}], ",", "64", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC5 \"\>", ",", RowBox[{"{", RowBox[{"10", ",", SubscriptBox["6", "5"], ",", SubscriptBox["10", "4"]}], "}"}], ",", "80", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC6 \"\>", ",", RowBox[{"{", RowBox[{"20", ",", SubscriptBox["12", "3"], ",", SubscriptBox["20", "2"]}], "}"}], ",", "96", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC8 \"\>", ",", RowBox[{"{", RowBox[{"20", ",", SubscriptBox["12", "4"], ",", SubscriptBox["20", "3"], ",", "64", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nC4C2 \"\>", ",", RowBox[{"{", RowBox[{"40", ",", SubscriptBox["24", "2"], ",", "40", ",", "88", ",", "10752"}], "}"}], ",", "128", ",", "True"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\n\\nS3 \"\>", ",", RowBox[{"{", RowBox[{"40", ",", SubscriptBox["6", "2"], ",", SubscriptBox["10", "2"], ",", "24"}], "}"}], ",", "96", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ8 \"\>", ",", RowBox[{"{", RowBox[{ "20", ",", "12", ",", "36", ",", "60", ",", "108", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD8 \"\>", ",", RowBox[{"{", RowBox[{ "60", ",", "12", ",", "20", ",", "36", ",", "68", ",", "12864"}], "}"}], ",", "128", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nA4 \"\>", ",", RowBox[{"{", RowBox[{"40", ",", SubscriptBox["6", "8"], ",", SubscriptBox["10", "8"], ",", "24"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nD12 \"\>", ",", RowBox[{"{", RowBox[{"80", ",", SubscriptBox["12", "2"], ",", SubscriptBox["20", "2"], ",", "48"}], "}"}], ",", "192", ",", "False"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"\\nQ12 \"\>", ",", RowBox[{"{", RowBox[{"20", ",", SubscriptBox["12", "3"], ",", SubscriptBox["20", "2"], ",", "36", ",", "60"}], "}"}], ",", "192", ",", "False"}], "}"}]}], "}"}]], "Output"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["5. Clifford Algebras.", "Section", FontFamily->"Arial"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " Clifford-like (Geometric, anti-commutative) algebras CLpqr provide an \ elegant, compact, and efficient representation of many aspects of mathematics \ and physics, overcoming the limitations of Gibbs' vector algebra to three \ dimensions, and extending geometry and analysis to any number of dimensions.\n\ \nAuthor-specific nomenclature obfuscates the Clifford-algebra literature. \ CL00, CL10, & CL01 are the commutative real, Study (Cayley-Klein, \ Hyperbolic), & complex numbers; CL20, CL02, CL30, CL13, CLp+1,q+1 are \ (anti-commutative) 2D geometry, Quaternions, 3D geometry, 1+3 space-time and \ conformal (p,q) geometry respectively. In this package, CL001, CL002, & CL003 \ are defined as Clifford-like extensions to non-associative Octonions and \ Split-octonions and to ternary symmetry.The inclusion of Minkowski \ (spacetime), Pauli-matrix (quantum theory) and ternary (quark-like, 3, 4, & 6 \ phase wave) algebras suggests that Clifford algebras may provide the language \ for a future \"theory of everything\".\n\tWhilst Clifford algebras are \ defined by mathematicians in terms of quadratic forms, they can be fully \ described by vector multiplication tables generated by orthogonal \ anti-commuting \"monovectors\" (my neologism for gammas, group generators, \ relators or, in the confusing Geometric algebra literature, \"vectors\") such \ as {", Cell[BoxData[ FormBox[ SubscriptBox["e", "1"], TraditionalForm]]], ",", Cell[BoxData[ FormBox[ SubscriptBox["e", "1"], TraditionalForm]]], ",...} , with ", Cell[BoxData[ FormBox[ SubscriptBox["e", "i"], TraditionalForm]]], Cell[BoxData[ FormBox[ SubscriptBox["e", "i"], TraditionalForm]]], "= \[PlusMinus]1 & ", Cell[BoxData[ FormBox[ SubscriptBox["e", "i"], TraditionalForm]]], Cell[BoxData[ FormBox[ SubscriptBox["e", "j"], TraditionalForm]]], "=-", Cell[BoxData[ FormBox[ SubscriptBox["e", "j"], TraditionalForm]]], Cell[BoxData[ FormBox[ SubscriptBox["e", "i"], TraditionalForm]]], " . A more compact labeling, \ {\[OSlash],\[DoubleStruckA],\[DoubleStruckB]...}, is used in ALGHCA. The \ \"scalar\" that commutes with everything is ", Cell[BoxData[ FormBox[ SubscriptBox["e", "0"], TraditionalForm]]], " (I use \[OSlash]). In CLpq, the first ", StyleBox["p", FontSlant->"Italic"], " monovectors are square roots of unity and the last ", StyleBox["q", FontSlant->"Italic"], " are fourth roots of unity (i.e. the signature is ", StyleBox["p", FontSlant->"Italic"], " ones followed by ", StyleBox["q", FontSlant->"Italic"], " minus ones. Note that \[OpenCurlyDoubleQuote]signature\ \[CloseCurlyDoubleQuote] is generalized to \[OpenCurlyDoubleQuote]dico\ \[CloseCurlyDoubleQuote] for hoops); other signatures can be ignored as they \ only generate isomeric tables. Cliffords are folded groups, and so they are \ hoops; the symbolic table determinant is conserved (Det[AB] = \[PlusMinus] \ Det[A] * Det[B]). If p+q is odd and the arguments are real, the determinant \ splits into a pair of (repeated) real factors; if p+q is even there is only \ one (repeated) real factor. These factors provide the quadratic forms of the \ mathematician\[CloseCurlyQuote]s description.\n\tAll non-commutative algebras \ split into (commutative, Jordan, inner or dot) products A.B and \ (non-commutative, Lie, Lie bracket, outer or wedge) products A\[Wedge]B, so \ AB=A.B+A\[Wedge]B or Cl=Jo+Li. This split is sometimes wrongly used to define \ Clifford algebras. The Lie products satisfy the Jacobi identity, and so are \ Lie algebras. Neither Jo nor Li are, by themselves, conservative. \n\t\ \"Bivectors\" (directed areas), \"Trivectors\" (directed volumes), etc. are \ products of 2, 3, etc. distinct monovectors and have corresponding \"grades\" \ or directionality. These are sub-spaces but are called \"blades\" (so named \ by Hestenes because they are flat). Scalars are grade zero, directions are \ grade 1, directed areas are grade 2, etc. A \"multivector\" may include \ several grades and I define a \"univector\" as a grade 1 vector of unit \ length. Different concepts (points, lines, areas, rotations, derivatives, \ operators etc.) are combined in a single multivector object. Until this has \ been digested (and the word \[OpenCurlyDoubleQuote]vector\ \[CloseCurlyDoubleQuote] has been retricted to mean an indexed but \ unstructured set) the subject is utterly confusing. The ability to handle \ composite structures as \[OpenCurlyDoubleQuote]multivectors\ \[CloseCurlyDoubleQuote] is one of the strengths of Clifford Algebras - \ multivectors have structure. (The element names show this structure - the \ grade is the length of the name). They also indicate Clifford Duality; \ \[DoubleStruckA]\[DoubleStruckC] is dual to \[DoubleStruckB]\[DoubleStruckD]\ \[DoubleStruckE] when \[OSlash] is dual to \[DoubleStruckA]\[DoubleStruckB]\ \[DoubleStruckC]\[DoubleStruckD]\[DoubleStruckE] (the pseudivector). Another \ strength is that many concepts, including geometry and complex analysis, \ extrapolate to any number of dimensions.\n\tThe individual elements of a \ multivector can be conveniently ordered in \"BitXor\" order (e.g. ordinal 6 ~ \ ", Cell[BoxData[ FormBox[ SubscriptBox["110", "2"], TraditionalForm]]], " ~ ", Cell[BoxData[ FormBox[ SubscriptBox["e", "2"], TraditionalForm]], "InlineMath"], Cell[BoxData[ FormBox[ RowBox[{" ", SubscriptBox["e", "3"]}], TraditionalForm]], "InlineMath"], " ~ \[DoubleStruckB]\[DoubleStruckC]); they can also be partitioned into \ grades, creating \"graded vectors\" with a different ordering. Many \ applications involve multivectors with many zero elements, so a sparse form \ (a list of {index, coefficient} pairs) is often useful. ", StyleBox["Mathematica", FontSlant->"Italic"], " uses indices (ordinals+1) because zeroth elements are pre-empted as \ \"Heads\". The ALGHCA package has automatic interconversion between the three \ formats - indexed (flat) lists, sparse lists and graded lists. Clifford \ Algebras are implemented as a Cayley multiplication table created by \ cl[p,q,r], with a multiplication procedure ", StyleBox["cTimes[A,B,o];", FontSlant->"Italic"], " the parameter ", StyleBox["o", FontSlant->"Italic"], " determines the output. All three products {Cl, Jo, Li} are calculated \ unless ", StyleBox["o", FontSlant->"Italic"], "=1, which gives AB and the reversed product BA.\n\tClifford vector \ multiplication AB is invertible; Ai (created by ", StyleBox["cInverse[A])", FontSlant->"Italic"], " is the left-multiplicative inverse of multivector (vector to the non \ specialist) A, so AiAB=B. Cliffords with odd p+q split into ", Cell[BoxData[ FormBox[ SuperscriptBox["CL", "+"], TraditionalForm]]], " & ", Cell[BoxData[ FormBox[ SuperscriptBox["CL", "-"], TraditionalForm]]], " because they have two real distinct determinant factors (or sizes) if \ their elements are real. These provide denominators for a partial-fraction \ formulation of the inverse. Vector division-by-zero is eliminated - if a size \ become zero, the result is \"projected\" into a sub-algebra of reduced \ symmetry whilst a symmetry-conserving remainder is \"ejected\". The zero is \ \"factored out\" by this calculation. Minkowski space-time is split into \ space-like and time-like regions by the light-like null-vector cone.\n\tD. \ Hestenes has claimed that \"Properly applied, Clifford's system was nothing \ less than a universal language for mathematics, physics, and engineering\"." }], "Text"], Cell[CellGroupData[{ Cell["\<\ 5.1 Validation of Clifford procedures.\ \>", "Subsection", PageWidth->WindowWidth], Cell[CellGroupData[{ Cell["Test 5. Generalized Clifford Algebra validation & listing.", \ "Subsubsection", PageWidth->WindowWidth, FontWeight->"Bold"], Cell[TextData[{ "Large Clifford algebras (p+q>4) are handled via sparse routines, so their \ Cayley table (", StyleBox["gLoop", FontSlant->"Italic"], ") is not usually created. It can be generated (for use in tests, \ compositions, etc.) by making ", StyleBox["p", FontSlant->"Italic"], " a real number in", StyleBox[" cLoop[p,q].", FontSlant->"Italic"] }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"clcases", "=", "0"}], ";", RowBox[{"cld", "=", RowBox[{"{", "}"}]}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"Do", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"Take", "[", RowBox[{ RowBox[{"Characters", "[", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}], "]"}], ",", "2"}], "]"}], "==", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}], ",", RowBox[{ RowBox[{"clcases", "++"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"idc", "[", "]"}], "\[NotEqual]", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}]}], ",", RowBox[{"Print", "[", RowBox[{"{", RowBox[{"m", ",", "n"}], "}"}], "]"}]}], "]"}], ";", RowBox[{"AppendTo", "[", RowBox[{"cld", ",", RowBox[{"{", RowBox[{ RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "1"}], "]"}], "]"}], ",", RowBox[{"loop", "[", RowBox[{"[", RowBox[{"m", ",", "n", ",", "4"}], "]"}], "]"}]}], "}"}]}], "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"n", ",", RowBox[{"Length", "[", RowBox[{"loop", "[", RowBox[{"[", "m", "]"}], "]"}], "]"}]}], "}"}]}], "]"}], ",", RowBox[{"{", RowBox[{"m", ",", "128"}], "}"}]}], "]"}], ";", RowBox[{"{", RowBox[{"clcases", ",", "\"\< have valid cl prescriptions\>\""}], "}"}]}]], "Input", PageWidth->WindowWidth], Cell[BoxData[ RowBox[{"{", RowBox[{"30", ",", "\<\" have valid cl prescriptions\"\>"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData["cld"], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"\<\"CL2\"\>", ",", "\<\"cLoop[2]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL03\"\>", ",", "\<\"cLoop[0,3]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL21\"\>", ",", "\<\"cLoop[2,1]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL3\"\>", ",", "\<\"cLoop[3]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL20C3\"\>", ",", "\<\"cLoop[2,0,-5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL02C3\"\>", ",", "\<\"cLoop[0,2,-5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL4\"\>", ",", "\<\"cLoop[4]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL31\"\>", ",", "\<\"cLoop[3,1]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL22?\"\>", ",", "\<\"cLoop[2,2]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL13?\"\>", ",", "\<\"cLoop[1,3]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL04\"\>", ",", "\<\"cLoop[0,4]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL21C3\"\>", ",", "\<\"cLoop[2,1,-5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL12C3\"\>", ",", "\<\"cLoop[1,2,-5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL03C3\"\>", ",", "\<\"cLoop[0,3,-5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"OctrC3\"\>", ",", "\<\"cLoop[0,0,-1]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"OctiC3\"\>", ",", "\<\"cLoop[0,0,-2]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL50\"\>", ",", "\<\"cLoop[5.]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL41\"\>", ",", "\<\"cLoop[4.,1]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL32\"\>", ",", "\<\"cLoop[3.,2]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL23?\"\>", ",", "\<\"cLoop[2.,3]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL14?\"\>", ",", "\<\"cLoop[1.,4]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL05?\"\>", ",", "\<\"cLoop[0.,5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL60\"\>", ",", "\<\"cLoop[6.]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL51?\"\>", ",", "\<\"cLoop[5.,1]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL42\"\>", ",", "\<\"cLoop[4.,2]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL33?\"\>", ",", "\<\"cLoop[3.,3]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL24?\"\>", ",", "\<\"cLoop[2.,4]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL15?\"\>", ",", "\<\"cLoop[1.,5]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL06?\"\>", ",", "\<\"cLoop[0.,6]\"\>"}], "}"}], ",", RowBox[{"{", RowBox[{"\<\"CL70\"\>", ",", "\<\"cLoop[7.]\"\>"}], "}"}]}], "}"}]], "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell["\<\ Test 5a. Clifford Algebra Inverses, Division, Shape Conservation.\ \>", "Subsubsection"], Cell["\<\ Pairs of vectors are multiplied and the sizes are shown to be conserved (i.e. \ the error, sA sB-sAB, is the zero vector.)\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "3", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, \>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nerror \>\"", ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"CL30\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ FractionBox["123", "1825"], ",", RowBox[{"-", FractionBox["41", "1825"]}], ",", FractionBox["778", "9125"], ",", FractionBox["453", "9125"], ",", RowBox[{"-", FractionBox["179", "9125"]}], ",", RowBox[{"-", FractionBox["529", "9125"]}], ",", FractionBox["12", "1825"], ",", RowBox[{"-", FractionBox["36", "1825"]}]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "103"}], ",", RowBox[{"-", "52"}], ",", "131", ",", "58", ",", RowBox[{"-", "93"}], ",", RowBox[{"-", "44"}], ",", "124", ",", "52"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"17", "+", RowBox[{"94", " ", "\[ImaginaryI]"}]}], ",", RowBox[{"17", "-", RowBox[{"94", " ", "\[ImaginaryI]"}]}]}], "}"}], ",", "\<\"\\nerror \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "1"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, \>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nerror \>\"", ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"CL21\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ FractionBox["73", "875"], ",", RowBox[{"-", FractionBox["73", "2625"]}], ",", FractionBox["722", "7875"], ",", FractionBox["439", "7875"], ",", RowBox[{"-", FractionBox["61", "7875"]}], ",", FractionBox["97", "7875"], ",", RowBox[{"-", FractionBox["52", "2625"]}], ",", FractionBox["52", "875"]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{"121", ",", "36", ",", RowBox[{"-", "107"}], ",", RowBox[{"-", "60"}], ",", RowBox[{"-", "93"}], ",", RowBox[{"-", "44"}], ",", "124", ",", "52"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "125"}], ",", "63"}], "}"}], ",", "\<\"\\nerror \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "2"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, \>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nerror \>\"", ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"CL12\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ FractionBox["369", "13061"], ",", RowBox[{"-", FractionBox["123", "13061"]}], ",", RowBox[{"-", FractionBox["586", "13061"]}], ",", RowBox[{"-", FractionBox["405", "13061"]}], ",", FractionBox["419", "13061"], ",", FractionBox["961", "13061"], ",", FractionBox["224", "13061"], ",", RowBox[{"-", FractionBox["672", "13061"]}]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{"29", ",", "54", ",", RowBox[{"-", "107"}], ",", RowBox[{"-", "60"}], ",", "15", ",", "62", ",", "124", ",", "52"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "65"}], "+", RowBox[{"94", " ", "\[ImaginaryI]"}]}], ",", RowBox[{ RowBox[{"-", "65"}], "-", RowBox[{"94", " ", "\[ImaginaryI]"}]}]}], "}"}], ",", "\<\"\\nerror \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "3"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, \>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nerror \>\"", ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"CL03\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["15", "7031"]}], ",", RowBox[{"-", FractionBox["361", "21093"]}], ",", FractionBox["154", "21093"], ",", RowBox[{"-", FractionBox["643", "21093"]}], ",", RowBox[{"-", FractionBox["959", "21093"]}], ",", RowBox[{"-", FractionBox["1181", "21093"]}], ",", RowBox[{"-", FractionBox["440", "21093"]}], ",", FractionBox["252", "7031"]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "49"}], ",", "54", ",", "131", ",", RowBox[{"-", "60"}], ",", "13", ",", "62", ",", RowBox[{"-", "104"}], ",", "52"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, \"\>", ",", RowBox[{"{", RowBox[{"79", ",", "267"}], "}"}], ",", "\<\"\\nerror \"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "0", ",", "1"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, \>\"", ",", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nerror \>\"", ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Octr\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ FractionBox["3", "173"], ",", RowBox[{"-", FractionBox["1", "173"]}], ",", RowBox[{"-", FractionBox["4", "173"]}], ",", RowBox[{"-", FractionBox["1", "173"]}], ",", RowBox[{"-", FractionBox["5", "173"]}], ",", RowBox[{"-", FractionBox["9", "173"]}], ",", RowBox[{"-", FractionBox["2", "173"]}], ",", RowBox[{"-", FractionBox["6", "173"]}]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "145"}], ",", "66", ",", "35", ",", "34", ",", "109", ",", RowBox[{"-", "32"}], ",", "40", ",", "34"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, \"\>", ",", RowBox[{"{", "173", "}"}], ",", "\<\"\\nerror \"\>", ",", RowBox[{"{", "0", "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "0", ",", "2"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, error\>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Octi\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["3", "65"]}], ",", FractionBox["1", "65"], ",", FractionBox["4", "65"], ",", FractionBox["1", "65"], ",", FractionBox["1", "13"], ",", FractionBox["9", "65"], ",", FractionBox["2", "65"], ",", FractionBox["6", "65"]}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{"125", ",", "66", ",", RowBox[{"-", "11"}], ",", "34", ",", RowBox[{"-", "81"}], ",", RowBox[{"-", "32"}], ",", RowBox[{"-", "20"}], ",", "34"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8"}], "}"}], ",", "\<\"\\nsA, error\"\>", ",", RowBox[{"{", RowBox[{"-", "65"}], "}"}], ",", RowBox[{"{", "0", "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "0", ",", RowBox[{"-", "3"}]}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "gName"}], ",", "\[IndentingNewLine]", "\"\<\\nA inverse\>\"", ",", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6", ",", "5", ",", "3", ",", "5", ",", "0"}], "}"}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAB \>\"", ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8", ",", "2", ",", "8", ",", "0", ",", "7"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nAi AB = B\>\"", ",", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", "\[IndentingNewLine]", "\"\<\\nsA, error\>\"", ",", " ", RowBox[{"sA", "=", RowBox[{"shape", "[", "A", "]"}]}], ",", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"shape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C3C3\"\>", ",", "\<\"\\nA inverse\"\>", ",", RowBox[{"{", RowBox[{"0.08299635450173085`", ",", RowBox[{"-", "0.12727843641822137`"}], ",", RowBox[{"-", "0.049022761388352785`"}], ",", RowBox[{"-", "0.010469319609104553`"}], ",", "0.12334191097631958`", ",", RowBox[{"-", "0.07797230646693011`"}], ",", RowBox[{"-", "0.1188233311889226`"}], ",", "0.0687513402567166`", ",", "0.13625432711454216`"}], "}"}], ",", "\<\"\\nAB \"\>", ",", RowBox[{"{", RowBox[{ "192", ",", "150", ",", "137", ",", "164", ",", "104", ",", "169", ",", "148", ",", "178", ",", "162"}], "}"}], ",", "\<\"\\nAi AB = B\"\>", ",", RowBox[{"{", RowBox[{ "1.9999999999999982`", ",", "7.`", ",", "1.`", ",", "7.9999999999999964`", ",", "1.9999999999999893`", ",", "7.9999999999999964`", ",", "1.0000000000000036`", ",", "8.`", ",", "1.9999999999999964`"}], "}"}], ",", "\<\"\\nsA, error\"\>", ",", RowBox[{"{", RowBox[{"36", ",", "93.`", ",", "3.`", ",", "108.`", ",", "39.`"}], "}"}], ",", RowBox[{"{", RowBox[{"0", ",", "0.`", ",", "0.`", ",", "0.`", ",", "0.`"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "4", "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", RowBox[{"A", "=", RowBox[{"{", RowBox[{ "3", ",", "1", ",", "4", ",", "1", ",", "5", ",", "9", ",", "2", ",", "6", ",", "5", ",", "3", ",", "5", ",", "8", ",", "9", ",", "7", ",", "9", ",", "3"}], "}"}]}], "]"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", RowBox[{"B", "=", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8", ",", "2", ",", "8", ",", "4", ",", "5", ",", "9", ",", "0", ",", "4", ",", "5"}], "}"}]}]}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", RowBox[{"sA", "=", RowBox[{"cShape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"cShape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ FractionBox["46", "9711"], ",", FractionBox["4", "747"], ",", FractionBox["13", "996"], ",", FractionBox["76", "9711"], ",", RowBox[{"-", FractionBox["61", "19422"]}], ",", RowBox[{"-", FractionBox["181", "6474"]}], ",", FractionBox["217", "9711"], ",", RowBox[{"-", FractionBox["1189", "38844"]}], ",", FractionBox["59", "19422"], ",", RowBox[{"-", FractionBox["29", "9711"]}], ",", FractionBox["7", "332"], ",", RowBox[{"-", FractionBox["326", "9711"]}], ",", RowBox[{"-", FractionBox["355", "19422"]}], ",", FractionBox["9", "1079"], ",", RowBox[{"-", FractionBox["745", "19422"]}], ",", RowBox[{"-", FractionBox["1003", "38844"]}]}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "279"}], ",", RowBox[{"-", "173"}], ",", "48", ",", "27", ",", "17", ",", "39", ",", "149", ",", RowBox[{"-", "26"}], ",", RowBox[{"-", "107"}], ",", RowBox[{"-", "37"}], ",", "86", ",", "107", ",", "73", ",", "27", ",", "99", ",", RowBox[{"-", "26"}]}], "}"}], ",", RowBox[{"{", RowBox[{ "2", ",", "7", ",", "1", ",", "8", ",", "2", ",", "8", ",", "1", ",", "8", ",", "2", ",", "8", ",", "4", ",", "5", ",", "9", ",", "0", ",", "4", ",", "5"}], "}"}], ",", RowBox[{"{", "77688", "}"}], ",", RowBox[{"{", "0", "}"}]}], "}"}]], "Output"] }, Open ]], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "3"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}]}], ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", RowBox[{"sA", "=", RowBox[{"cShape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"sA", " ", RowBox[{"shape", "[", "B", "]"}]}], "-", RowBox[{"cShape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"3", ",", "1"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}]}], ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", RowBox[{"sA", "=", RowBox[{"cShape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"sA", " ", RowBox[{"cShape", "[", "B", "]"}]}], "-", RowBox[{"cShape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "4"}], "]"}], ";", RowBox[{"sd", "[", "gName", "]"}], ";", "\[IndentingNewLine]", RowBox[{"Ai", "=", RowBox[{"hoopInverse", "[", "A", "]"}]}]}], ",", RowBox[{"AB", "=", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"Simplify", "[", RowBox[{"hoopTimes", "[", RowBox[{"Ai", ",", "AB"}], "]"}], "]"}], ",", RowBox[{"sA", "=", RowBox[{"cShape", "[", "A", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"sA", " ", RowBox[{"cShape", "[", "B", "]"}]}], "-", RowBox[{"cShape", "[", "AB", "]"}]}]}], "}"}]], "Input"], Cell[TextData[{ "Shapes for larger Clifford algebras are now available via \ \[OpenCurlyDoubleQuote]irreps\[CloseCurlyDoubleQuote]. They all have one (or \ two if p+q is odd) ", StyleBox["n\[CloseCurlyQuote]", FontSlant->"Italic"], "th-order factors, each repeated n times. Note that a real number is used \ for ", StyleBox["p", FontSlant->"Italic"], ", so that the Cayley tables are generated in the following tests." }], "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", "5.", "]"}], ",", "pow2"}], "]"}], "]"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"652006216866072576085230444378204409", "-", RowBox[{"3468053032956781722423279616", " ", "\[OSlash]"}], "+", RowBox[{"6226906717107104150", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{"652006213398019550970293470893582585", "+", RowBox[{"3468053017273092228840931328", " ", "\[OSlash]"}], "+", RowBox[{"6226906704222202262", " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1.", ",", "4"}], "]"}], ",", "pow2"}], "]"}], "]"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"850705919283050223959309206199168041", "-", RowBox[{"3961408134014534346193518592", " ", "\[OSlash]"}], "+", RowBox[{"6456643062581339750", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{"850705915321642098246092325662977065", "+", RowBox[{"3961408117411899419173830656", " ", "\[OSlash]"}], "+", RowBox[{"6456643049696437862", " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2.", ",", "3"}], "]"}], ",", "pow2"}], "]"}], "]"}], ",", RowBox[{"GaussianIntegers", "\[Rule]", "True"}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"662314295477605138378642714423392249", "-", RowBox[{"1747680055461713328637739008", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"7866711303241351168", "+", RowBox[{"3495360110923426655127994368", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"6239057414384626026", "-", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"662314295477605138378642714423392249", "+", RowBox[{"1747680055461713328637739008", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"7866711303241351168", "-", RowBox[{"3495360110923426655127994368", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"6239057414384626026", "+", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", RowBox[{"3.", ",", "2"}], "]"}], ",", "pow2"}], "]"}], "]"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"652046013989091233300315881645353209", "-", RowBox[{"3468158872765963518588502016", " ", "\[OSlash]"}], "+", RowBox[{"6226953640340793750", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{"652046010520932368376293320730945785", "+", RowBox[{"3468158857082081607535280128", " ", "\[OSlash]"}], "+", RowBox[{"6226953627455891862", " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", RowBox[{"4.", ",", "1"}], "]"}], ",", "pow2"}], "]"}], "]"}], ",", RowBox[{"GaussianIntegers", "\[Rule]", "True"}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"652006215739274166024203892726049017", "-", RowBox[{"1734026513364937503919833088", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"7841844748259147776", "+", RowBox[{"3468053026729875005692182528", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"6226906711380612714", "-", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"652006215739274166024203892726049017", "+", RowBox[{"1734026513364937503919833088", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"7841844748259147776", "-", RowBox[{"3468053026729875005692182528", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"6226906711380612714", "+", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{ RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0.", ",", "5"}], "]"}], ",", "pow2"}], "]"}], "]"}], ",", RowBox[{"GaussianIntegers", "\[Rule]", "True"}]}], "]"}]], "Input"], Cell[BoxData[ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"2363071992506517103669647258495974969", "-", RowBox[{"3301173438094347399015170048", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"10760318044963094528", "+", RowBox[{"6602346876188694795882856448", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"7685860699344835926", "-", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"], " ", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"(", RowBox[{"2363071992506517103669647258495974969", "+", RowBox[{"3301173438094347399015170048", " ", "\[ImaginaryI]"}]}], ")"}], "+", RowBox[{ RowBox[{"(", RowBox[{"10760318044963094528", "-", RowBox[{"6602346876188694795882856448", " ", "\[ImaginaryI]"}]}], ")"}], " ", "\[OSlash]"}], "-", RowBox[{ RowBox[{"(", RowBox[{"7685860699344835926", "+", RowBox[{"6442450944", " ", "\[ImaginaryI]"}]}], ")"}], " ", SuperscriptBox["\[OSlash]", "2"]}], "+", RowBox[{"4294967296", " ", "\[ImaginaryI]", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", SuperscriptBox["\[OSlash]", "4"]}], ")"}], "4"]}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"Factor", "[", RowBox[{"Det", "[", RowBox[{"gmap", "[", RowBox[{ RowBox[{"cLoop", "[", "6.", "]"}], ",", "pow2"}], "]"}], "]"}], "]"}]], "Input"], Cell[BoxData[ SuperscriptBox[ RowBox[{"(", RowBox[{ "49224618748327212256177830166317982220754695478291187332980355919357800754\ 578213621929309669190608279987787218742885781425102923772814785259608130097", "+", RowBox[{ "6337699458819162576943346076257740533872228202353690863226059366419593595\ 85052193965371475697532429667141910528", " ", "\[OSlash]"}], "+", RowBox[{ "1258517403656717198678784176869541124106362337531570988503480334737400533\ 2119363704214376651143618718808300242380", " ", SuperscriptBox["\[OSlash]", "2"]}], "-", RowBox[{ "6848506791293253801216781201085761053836122485859005044971292857250047787\ 008", " ", SuperscriptBox["\[OSlash]", "3"]}], "+", RowBox[{ "1248139895018763515590290036557693061778219336071477707290903326182406600\ 150", " ", SuperscriptBox["\[OSlash]", "4"]}], "-", RowBox[{"462362872784842536526056149909468381184", " ", SuperscriptBox["\[OSlash]", "5"]}], "+", RowBox[{"56724156306945459477596962564582101804", " ", SuperscriptBox["\[OSlash]", "6"]}], "+", SuperscriptBox["\[OSlash]", "8"]}], ")"}], "8"]], "Output"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 5.2 Clifford Reflection, Rotation.\ \>", "Subsection", PageWidth->WindowWidth], Cell[TextData[{ "Reflection is the \[OpenCurlyDoubleQuote]sandwich product\ \[CloseCurlyDoubleQuote] u*M*ui, multiplying and dividing a multivector M by \ a unit vector u. As it is widely used in graphics, it is built in to cTimes \ as ", StyleBox["cTimes[M,u,-1]", FontSlant->"Italic"], ". Reflection is often applied to a collection of multivectors. This is \ implemented by the fast routines ", StyleBox["cRefS[uS,AoS]", FontSlant->"Italic"], " and ", StyleBox["cRef[u,Ao]", FontSlant->"Italic"], ", where ", StyleBox["u", FontSlant->"Italic"], " is a unit vector and a trailing ", StyleBox["S", FontSlant->"Italic"], " indicates a sparse format. Tests are omitted, for speed, and so correctly \ formulated arguments are essential.\nRotation by \[Theta] in a plane a^b (not \ about an axis, which is only defined in 3D) is effected by pre- and \ post-rotations by \[Theta]/2." }], "Text"], Cell[CellGroupData[{ Cell["reflect tests, 4 elements.", "Subsubsection"], Cell["\<\ Set up some sparse vectors {A1s,A2s,A3s,ms,ns}, monoblades {ms,ns}, unit \ vectors {o1,a1,b1} and an array of sparse vectors A0s\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "1"}], "]"}], ";", RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "3", ",", "4"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{"0", ",", "5", ",", "12", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"b1S", "=", RowBox[{"SparseArray", "[", RowBox[{"b1", "=", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"a1S", "=", RowBox[{"SparseArray", "[", RowBox[{"a1", "=", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"o1S", "=", RowBox[{"SparseArray", "[", RowBox[{"o1", "=", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"ab1S", "=", RowBox[{"SparseArray", "[", RowBox[{"ab1", "=", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], ",", "\"\<\\n A2 as a Sparse vector\>\"", ",", "A2S", ",", "\"\<\\n A2 as a Graded vector\>\"", ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}]}], "}"}]}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"A2 as a Flat vector \"\>", ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", "\<\"\\n A2 as a Sparse vector\"\>", ",", TagBox[ RowBox[{"SparseArray", "[", RowBox[{ InterpretationBox[ RowBox[{"\<\"<\"\>", "\[InvisibleSpace]", "2", "\[InvisibleSpace]", "\<\">\"\>"}], SequenceForm["<", 2, ">"], Editable->False], ",", RowBox[{"{", "4", "}"}]}], "]"}], False, Editable->False], ",", "\<\"\\n A2 as a Graded vector\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"{", "4", "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "0"}], "}"}], ",", RowBox[{"{", "0", "}"}]}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell["\<\ a2g is used to show that graded vectors can be handled as well as flat or \ sparse vectors. Clifford routines generate SparseArray results, which are expanded by \ Normal[].\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "2"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{ RowBox[{"sd", "[", "gName", "]"}], ";", "\"\<\\nshape of \!\(\* StyleBox[\"n\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"cShape", "[", RowBox[{"u", "=", "nS"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{ RowBox[{"uu", "=", RowBox[{"u", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", "\"\<\\nRotate A0S with sparse unit \!\(\* StyleBox[\"u\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"Normal", "[", "A0Srp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"uu", ",", "A0Srp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRefs recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{ RowBox[{"un", "=", RowBox[{"Normal", "[", RowBox[{"u", "/", "13"}], "]"}]}], ",", "A0"}], "]"}]}], ";", "\"\<\\nRotate A0 with flat unit \!\(\* StyleBox[\"u\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"Normal", "[", "A0rp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"un", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"CL02\"\>", ",", "\<\"\\nshape of \ \\!\\(\\*\\nStyleBox[\\\"n\\\",\\nFontSlant->\\\"Italic\\\"]\\)\"\>", ",", RowBox[{"{", "169", "}"}], ",", "\<\"\\nRotate A0S with sparse unit \ \\!\\(\\*\\nStyleBox[\\\"u\\\",\\nFontSlant->\\\"Italic\\\"]\\)\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", FractionBox["238", "169"]}], ",", FractionBox["240", "169"], ",", RowBox[{"-", "3"}]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", FractionBox["119", "169"], ",", RowBox[{"-", FractionBox["120", "169"]}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", FractionBox["360", "169"], ",", FractionBox["357", "169"], ",", RowBox[{"-", "4"}]}], "}"}]}], "}"}], ",", "\<\"\\ncRefs recovers A0\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "3", ",", "4"}], "}"}]}], "}"}], ",", "\<\"\\nRotate A0 with flat unit \ \\!\\(\\*\\nStyleBox[\\\"u\\\",\\nFontSlant->\\\"Italic\\\"]\\)\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", RowBox[{"-", FractionBox["238", "169"]}], ",", FractionBox["240", "169"], ",", RowBox[{"-", "3"}]}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", FractionBox["119", "169"], ",", RowBox[{"-", FractionBox["120", "169"]}], ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", FractionBox["360", "169"], ",", FractionBox["357", "169"], ",", RowBox[{"-", "4"}]}], "}"}]}], "}"}], ",", "\<\"\\ncRef recovers A0\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "3", ",", "4"}], "}"}]}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", "2", "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{ RowBox[{"sd", "[", "gName", "]"}], ";", "\"\<\\nshape of \!\(\* StyleBox[\"n\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"cShape", "[", RowBox[{"u", "=", "nS"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{ RowBox[{"uu", "=", RowBox[{"u", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", "\"\<\\nRotate A0S with sparse unit \!\(\* StyleBox[\"u\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"Normal", "[", "A0Srp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"uu", ",", "A0Srp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRefs recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{ RowBox[{"un", "=", RowBox[{"Normal", "[", RowBox[{"u", "/", "13"}], "]"}]}], ",", "A0"}], "]"}]}], ";", "\"\<\\nRotate A0 with flat unit \!\(\* StyleBox[\"u\", FontSlant->\"Italic\"]\)\>\""}], ",", RowBox[{"Normal", "[", "A0rp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"un", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "1"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{ RowBox[{"sd", "[", "gName", "]"}], ";", "\"\<\\nn shape\>\""}], ",", RowBox[{"cShape", "[", RowBox[{"u", "=", "nS"}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{ RowBox[{"uu", "=", RowBox[{"u", "/", RowBox[{"Sqrt", "[", "119", "]"}]}]}], ",", "A0S"}], "]"}]}], ";", "\"\<\\nRotate A0S with sparse unit u\>\""}], ",", RowBox[{"Normal", "[", "A0Srp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"uu", ",", "A0Srp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRefs recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{ RowBox[{"un", "=", RowBox[{"Normal", "[", "uu", "]"}]}], ",", "A0"}], "]"}]}], ";", "\"\<\\nRotate A0 with flat u\>\""}], ",", RowBox[{"Normal", "[", "A0rp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"un", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "2"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{ RowBox[{"sd", "[", "gName", "]"}], ";", "\"\<\\nn shape\>\""}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{ RowBox[{"uu", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", "\"\<\\nRotate A0S with sparse unit u\>\""}], ",", RowBox[{"Normal", "[", "A0Srp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"uu", ",", "A0Srp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRefs recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{ RowBox[{"un", "=", RowBox[{"Normal", "[", RowBox[{"u", "/", "13"}], "]"}]}], ",", "A0"}], "]"}]}], ";", "\"\<\\nRotate A0 with flat u\>\""}], ",", RowBox[{"Normal", "[", "A0rp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"un", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["reflect tests. 8 elements. ", "Subsubsection"], Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", "3", "]"}], ";", RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3", ",", "0", ",", "4", ",", "3", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "3", ",", "0", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "3", ",", "4", ",", "2", ",", "3", ",", "0", ",", "0"}], "}"}]}], "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{ "0", ",", "5", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ",", "\"\<\\n A2\>\"", ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ",", "\"\<\\n A3\>\"", ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}]}], "}"}]}], "Input"], Cell[TextData[{ "The sizes (and their multiplicities) of the multivectors ", StyleBox["m, n ", FontSlant->"Italic"], " have to be found (from ", StyleBox["sd", FontSlant->"Italic"], ") so that unit vectors can be created by dividing by ", StyleBox["dd", FontSlant->"Italic"], ":-" }], "Text"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "3", "]"}], ";", RowBox[{"sd", "[", RowBox[{"gName", "=", "\"\\""}], "]"}], ";", RowBox[{"tst", "=", "m"}], ";", RowBox[{"FactorInteger", "[", RowBox[{"cShape", "[", "tst", "]"}], "]"}]}], ",", "\"\<\\ngi[[-1]]=\>\"", ",", RowBox[{"gi", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], ",", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}], ",", RowBox[{"dd", "=", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}]}], ",", RowBox[{ RowBox[{"cShape", "[", "tst", "]"}], "/", "dd"}], ",", RowBox[{"Plus", "@@", RowBox[{"(", RowBox[{"tst", " ", "tst"}], ")"}]}]}], "}"}]], "Input"], Cell["\<\ The shapes are signed sums of squared elements, in this case they are all \ positive.\ \>", "Text"], Cell[BoxData[ RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"mS", "/", "5"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "3", "]"}], ";", RowBox[{"sd", "[", RowBox[{"gName", "=", "\"\\""}], "]"}], ";", RowBox[{"tst", "=", "n"}], ";", RowBox[{"FactorInteger", "[", RowBox[{"cShape", "[", "tst", "]"}], "]"}]}], ",", "\"\<\\ngi[[-1]]=\>\"", ",", RowBox[{"gi", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], ",", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}], ",", RowBox[{"dd", "=", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}]}], ",", RowBox[{ RowBox[{"cShape", "[", "tst", "]"}], "/", "dd"}], ",", RowBox[{"Plus", "@@", RowBox[{"(", RowBox[{"tst", " ", "tst"}], ")"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", "13"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["reflect tests. 16 elements. ", "Subsubsection"], Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "2"}], "]"}], ";", RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3", ",", "0", ",", "4", ",", "3", ",", "2", ",", "0", ",", "3", ",", "4", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "3", ",", "0", ",", "0", ",", "3", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "3", ",", "4", ",", "2", ",", "3", ",", "0", ",", "0", ",", "0", ",", "3", ",", "5", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{ "0", ",", "5", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"pS", "=", RowBox[{"SparseArray", "[", RowBox[{"p", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}]}], "}"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "2"}], "]"}], ";", RowBox[{"tst", "=", "n"}], ";", RowBox[{"FactorInteger", "[", RowBox[{"cShape", "[", "tst", "]"}], "]"}]}], ",", "\"\<\\ngi[[-1]]=\>\"", ",", RowBox[{"gi", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}], ",", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}], ",", RowBox[{"dd", "=", RowBox[{"(", RowBox[{"Times", "@@", RowBox[{"cShape", "[", "tst", "]"}]}], ")"}]}], ",", RowBox[{ RowBox[{"cShape", "[", "tst", "]"}], "/", "dd"}], ",", RowBox[{"Plus", "@@", RowBox[{"(", RowBox[{"tst", " ", "tst"}], ")"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "2"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", RowBox[{"23409", "^", ".25"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", "4", "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", RowBox[{"34225", "^", ".25"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"3", ",", "1"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", RowBox[{"23409", "^", ".25"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "3"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", RowBox[{"18225", "^", ".25"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "4"}], "]"}], ";", RowBox[{"{", RowBox[{"gName", ",", RowBox[{"cShape", "[", RowBox[{"tSt", "=", RowBox[{"nS", "/", RowBox[{"34225", "^", ".25"}]}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0Srp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0Srp", "]"}]}], ",", "\[IndentingNewLine]", RowBox[{"A0Srrp", "=", RowBox[{"cRefS", "[", RowBox[{"tSt", ",", "A0Srp"}], "]"}]}], ",", "\[IndentingNewLine]", "\"\\"", ",", RowBox[{"Normal", "[", "A0Srrp", "]"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"A0rp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "A0rp", "]"}], ";", "\[IndentingNewLine]", RowBox[{"A0rrp", "=", RowBox[{"cRef", "[", RowBox[{"tSt", ",", "A0rp"}], "]"}]}], ";", "\[IndentingNewLine]", "\"\<\\ncRef recovers A0\>\""}], ",", RowBox[{"Normal", "[", "A0rrp", "]"}]}], "}"}]}]], "Input"], Cell[BoxData[ RowBox[{"sh", "[", "\"\\"", "]"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["cRot tests. 4 elements.", "Subsubsection"], Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "1"}], "]"}], ";", RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"1", ",", "0", ",", "3", ",", "4"}], "}"}]}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{"0", ",", "5", ",", "12", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"b1S", "=", RowBox[{"SparseArray", "[", RowBox[{"b1", "=", RowBox[{"{", RowBox[{"0", ",", "0", ",", "1", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"a1S", "=", RowBox[{"SparseArray", "[", RowBox[{"a1", "=", RowBox[{"{", RowBox[{"0", ",", "1", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"o1S", "=", RowBox[{"SparseArray", "[", RowBox[{"o1", "=", RowBox[{"{", RowBox[{"1", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"ab1S", "=", RowBox[{"SparseArray", "[", RowBox[{"ab1", "=", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}]}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "2", "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "5"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "1"}], "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", RowBox[{"Sqrt", "[", "7", "]"}]}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", RowBox[{"Sqrt", "[", "119", "]"}]}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "2"}], "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "5"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["cRot tests. 8 elements.", "Subsubsection"], Cell[BoxData[{ RowBox[{ RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3", ",", "0", ",", "4", ",", "3", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "3", ",", "0", ",", "0", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "3", ",", "4", ",", "2", ",", "3", ",", "0", ",", "0"}], "}"}]}], "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A1f", "=", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3", ",", "0", ",", "4", ",", "3", ",", "2"}], "}"}]}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A2f", "=", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "3", ",", "0", ",", "0", ",", "2"}], "}"}]}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A3f", "=", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "3", ",", "4", ",", "2", ",", "3", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}]}], "Input"], Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "2"}], "]"}], ";", RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{ "0", ",", "5", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"pS", "=", RowBox[{"SparseArray", "[", RowBox[{"p", "=", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "12", ",", "0", ",", "5", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"a1S", "=", RowBox[{"SparseArray", "[", RowBox[{"a1", "=", RowBox[{"{", RowBox[{ "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"b1S", "=", RowBox[{"SparseArray", "[", RowBox[{"b1", "=", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"o1S", "=", RowBox[{"SparseArray", "[", RowBox[{"o1", "=", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"i1S", "=", RowBox[{"SparseArray", "[", RowBox[{"i1", "=", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "1", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"I1S", "=", RowBox[{"SparseArray", "[", RowBox[{"I1", "=", RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1"}], "}"}]}], "]"}]}], ";"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "3"}], "]"}], ";", RowBox[{"gi", "[", RowBox[{"[", RowBox[{"-", "1"}], "]"}], "]"}]}], ",", RowBox[{"cShape", "[", "m", "]"}], ",", RowBox[{"cShape", "[", "n", "]"}], ",", RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "5"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ",", RowBox[{"Normal", "[", "mnAS", "]"}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "1"}], "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "5"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "2"}], "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", RowBox[{"Sqrt", "[", "7", "]"}]}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", RowBox[{"Sqrt", "[", "119", "]"}]}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "3"}], "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "5"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "13"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["cRot tests 16 elements. ", "Subsubsection"], Cell[BoxData[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "2"}], "]"}], ";", RowBox[{"A0", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "3", ",", "0", ",", "4", ",", "3", ",", "2", ",", "0", ",", "3", ",", "4", ",", "0", ",", "0", ",", "0", ",", "1", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "1"}], ",", "0", ",", "0", ",", "3", ",", "0", ",", "0", ",", "3", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ "1", ",", "0", ",", "3", ",", "4", ",", "2", ",", "3", ",", "0", ",", "0", ",", "0", ",", "3", ",", "5", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "}"}]}], ";"}], "\n", RowBox[{ RowBox[{"A1S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ";", RowBox[{"A2S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ";", RowBox[{"A3S", "=", RowBox[{"SparseArray", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}], ";", RowBox[{"A0S", "=", RowBox[{"{", RowBox[{"A1S", ",", "A2S", ",", "A3S"}], "}"}]}], ";"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"mS", "=", RowBox[{"SparseArray", "[", RowBox[{"m", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"nS", "=", RowBox[{"SparseArray", "[", RowBox[{"n", "=", RowBox[{"{", RowBox[{ "0", ",", "5", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";", RowBox[{"pS", "=", RowBox[{"SparseArray", "[", RowBox[{"p", "=", RowBox[{"{", RowBox[{ "0", ",", "3", ",", "12", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "4", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}]}], "]"}]}], ";"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}]}], ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "2", "]"}], "]"}], "]"}]}], ",", RowBox[{"A2g", "=", RowBox[{"tocGr", "[", RowBox[{"A0", "[", RowBox[{"[", "3", "]"}], "]"}], "]"}]}]}], "}"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", "4", "]"}], ";", RowBox[{"sd", "[", "\"\\"", "]"}], ";", "\"\\""}], ",", RowBox[{"szm", "=", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{ RowBox[{"sm", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szm", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ";", RowBox[{"szn", "=", RowBox[{"cShape", "[", "nS", "]"}]}]}], ",", RowBox[{ RowBox[{"sn", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szn", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ";", RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "sm"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "sn"}]}], ",", "A0S"}], "]"}]}], ";", "\"\<\\nRotated to\>\""}], ",", RowBox[{"Normal", "[", "mnAS", "]"}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", "\"\<\\nRestored\>\""}], ",", RowBox[{"Normal", "[", "mnArS", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"3", ",", "1"}], "]"}], ";", RowBox[{"sd", "[", "\"\\"", "]"}], ";", RowBox[{"cShape", "[", "mS", "]"}]}], ",", RowBox[{"szm", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", "14161", "]"}], "]"}]}], ",", RowBox[{"cShape", "[", "nS", "]"}], ",", RowBox[{"szn", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", "23409", "]"}], "]"}]}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "szm"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "szn"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"2", ",", "2"}], "]"}], ";", RowBox[{"sd", "[", "\"\\"", "]"}], ";", RowBox[{"szm", "=", RowBox[{"cShape", "[", "mS", "]"}]}]}], ",", RowBox[{"sm", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szm", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{"szn", "=", RowBox[{"cShape", "[", "nS", "]"}]}], ",", RowBox[{"sn", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szn", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "sm"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "sn"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"1", ",", "3"}], "]"}], ";", RowBox[{"sd", "[", "\"\\"", "]"}], ";", RowBox[{"szm", "=", RowBox[{"cShape", "[", "mS", "]"}]}]}], ",", RowBox[{"sm", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szm", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{"szn", "=", RowBox[{"cShape", "[", "nS", "]"}]}], ",", RowBox[{"sn", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szn", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "sm"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "sn"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"cLoop", "[", RowBox[{"0", ",", "4"}], "]"}], ";", RowBox[{"sd", "[", "\"\\"", "]"}], ";", RowBox[{"szm", "=", RowBox[{"cShape", "[", "mS", "]"}]}]}], ",", RowBox[{"sm", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szm", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{"szn", "=", RowBox[{"cShape", "[", "nS", "]"}]}], ",", RowBox[{"sn", "=", RowBox[{"Sqrt", "[", RowBox[{"Sqrt", "[", RowBox[{"szn", "[", RowBox[{"[", "1", "]"}], "]"}], "]"}], "]"}]}], ",", RowBox[{ RowBox[{"mnAS", "=", RowBox[{"cRot", "[", RowBox[{ RowBox[{"tSt1", "=", RowBox[{"mS", "/", "sm"}]}], ",", RowBox[{"tSt2", "=", RowBox[{"nS", "/", "sn"}]}], ",", "A0S"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnAS", "]"}]}], ",", RowBox[{ RowBox[{"mnArS", "=", RowBox[{"cRot", "[", RowBox[{"tSt2", ",", "tSt1", ",", "mnAS"}], "]"}]}], ";", RowBox[{"Normal", "[", "mnArS", "]"}]}]}], "}"}]], "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 5.3 Clifford-like Folded Terplex algebras.\ \>", "Subsection", PageWidth->WindowWidth], Cell["\<\ sg64_264 2-folds to CL32; sg64_265 to CL5; sg64_266 to CL41. I hope to find \ Clifford-like algebras with ternary symmetry by folding 24, 48, 72 & 96 order \ groups. More work is needed here. A few folds are demonstrated:-\ \>", "Text"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst2404", "=", RowBox[{"mp", "[", RowBox[{"24", ",", "4"}], "]"}]}], ";", RowBox[{"id", "[", "tst2404", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t2404", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst2404", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t2404", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Q24\"\>", ",", "\<\"Q24r\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", SubscriptBox["1", "4"], ",", "7", ",", "66"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst2405", "=", RowBox[{"mp", "[", RowBox[{"24", ",", "5"}], "]"}]}], ";", RowBox[{"id", "[", "tst2405", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t2405", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst2405", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t2405", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C4S3\"\>", ",", "\<\"C4S3r\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", SubscriptBox["1", "3"], ",", SubscriptBox["4", "2"], ",", "36"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst2410", "=", RowBox[{"ge", "[", RowBox[{ RowBox[{"{", RowBox[{"4", ",", "2", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{ "\[DoubleStruckB]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]3\[DoubleStruckB]"}], "}"}]}], "]"}]}], ";", RowBox[{"id", "[", "tst2410", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t2410", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst2410", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t2410", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C3D8\"\>", ",", "\<\"CL20C3\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", SubscriptBox["1", "2"], ",", SubscriptBox["3", "3"], ",", "36"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst2411", "=", RowBox[{"mp", "[", RowBox[{"24", ",", "11"}], "]"}]}], ";", RowBox[{"id", "[", "tst2411", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t2411", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst2411", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t2411", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C3Q8\"\>", ",", "\<\"CL02C3\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "3"}], ",", SubscriptBox["1", "3"], ",", SubscriptBox["3", "2"], ",", "54"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst2406", "=", RowBox[{"mp", "[", RowBox[{"24", ",", "6"}], "]"}]}], ";", RowBox[{"id", "[", "tst2406", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t2406", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst2406", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t2406", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"D24\"\>", ",", "\<\"D12r\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", SubscriptBox["1", "4"], ",", "7", ",", "60"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst4845", "=", RowBox[{"ge", "[", RowBox[{ RowBox[{"{", RowBox[{"12", ",", "2", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{ "\[DoubleStruckB]\[DoubleStruckA]", "\[Rule]", "\[DoubleStruckA]7\[DoubleStruckB]"}], "}"}]}], "]"}]}], ";", RowBox[{"id", "[", "tst4845", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t4845", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst4845", ",", RowBox[{"{", "3", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t4845", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C6D8\"\>", ",", "\<\"Unrecognised\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"-", "6"}], " ", "\[DoubleStruckCapitalJ]"}], ",", SubscriptBox["2", "3"], ",", "4", ",", "284"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst4846", "=", RowBox[{"mp", "[", RowBox[{"48", ",", "46"}], "]"}]}], ";", RowBox[{"id", "[", "tst4846", "]"}]}], ",", "\n", RowBox[{"id", "[", RowBox[{"t4846", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst4846", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\[IndentingNewLine]", RowBox[{"dico", "[", "t4846", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C6Q8\"\>", ",", "\<\"Unrecognised\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "6"}], ",", SubscriptBox["2", "3"], ",", SubscriptBox["6", "2"], ",", "216"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst72", "=", RowBox[{"mp", "[", RowBox[{"72", ",", "35"}], "]"}]}], ";", RowBox[{"id", "[", "tst72", "]"}]}], ",", RowBox[{"id", "[", RowBox[{"t72", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst72", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], "]"}], ",", "\n", RowBox[{"dico", "[", "t72", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"g7235\"\>", ",", "\<\"Unrecognised\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "2"}], ",", SubscriptBox["2", "7"], ",", "9", ",", "11", ",", "540"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"id", "[", "tst96", "]"}]], "Input"], Cell[BoxData[ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{"{", RowBox[{"96", ",", "130"}], "}"}], ">", "1"}], ",", RowBox[{"gName", "=", "\<\"Unknown\"\>"}], ",", RowBox[{"gName", "=", RowBox[{"loop", "\[LeftDoubleBracket]", RowBox[{"mm", ",", "nn", ",", "1"}], "\[RightDoubleBracket]"}]}]}], "]"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{ RowBox[{"tst96", "=", RowBox[{"fromdb", "[", RowBox[{"96", ",", "225", ",", "1"}], "]"}]}], ";", RowBox[{"tst96", "=", "gapLoop"}], ";", RowBox[{"t96", "=", RowBox[{ RowBox[{"fold", "[", RowBox[{"tst96", ",", RowBox[{"{", "2", "}"}]}], "]"}], "[", RowBox[{"[", "1", "]"}], "]"}]}], ";", "gapName"}], ",", RowBox[{"id", "[", "t96", "]"}], ",", RowBox[{"dico", "[", "t96", "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C3x((C2xQ8):C2)b\"\>", ",", "\<\"Unrecognised\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "10"}], ",", SubscriptBox["6", "3"], ",", SubscriptBox["10", "2"], ",", "1008"}], "}"}]}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"dico", "[", RowBox[{"co", "[", RowBox[{"C3", ",", RowBox[{"co", "[", RowBox[{"C2", ",", "Q8"}], "]"}]}], "]"}], "]"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"4", ",", SubscriptBox["4", "2"], ",", SubscriptBox["12", "3"]}], "}"}]], "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell["6. GAP data, irreps.", "Section"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " GAP is a large programming system devoted to (mathematical) Groups.\nI \ tried to introduce Hoop theory to the GAP Forum in 2001, but was rebuffed. I \ have only used GAP as a data source since then. As GAP abjures real and \ complex numbers, it cannot demonstrate many aspects of hoop algebras. I had \ developed hoops by mainly empirical methods. Graham Gerrard looked for a \ Representation Theory basis for Hoops. In Dec 2010, (personal communication) \ he found \[OpenCurlyDoubleQuote]Irreducible Affording Matrix Representations\ \[CloseCurlyDoubleQuote] (abbreviated here to \[OpenCurlyDoubleQuote]irreps\ \[CloseCurlyDoubleQuote]) in GAP [4], and showed that the properties that I \ had found for hoops could be established (for groups) by representing their \ elements as irreps, sets of matrices involving roots of unity. Irreps solve \ the problem of finding sizes and inverses for groups with more than 16 \ elements.\nWe realised that irreps:-\n(1) were sets (which we stored as ", StyleBox["smat", FontSlant->"Italic"], ", later ", StyleBox["irreps", FontSlant->"Italic"], ") of matrices equivalent to my \[OpenCurlyDoubleQuote]sizes\ \[CloseCurlyDoubleQuote] (or their conjugate factors), because their product \ was the determinant. The real factors of the determinant could be found from \ specific sets (stored as ", StyleBox["smReal", FontSlant->"Italic"], ").\n(2) provided a mechanism to calculate vector inverses (without \ calculating the symbolic hoop determinant factors) by summing the inverses of \ the irreps mapped with the vector,\n(3) facilitated the creation of compact \ folded algebras,\n(4) justified the \[OpenCurlyDoubleQuote]projection\ \[CloseCurlyDoubleQuote] of products and dividends onto homomorphic \ (lower-symmetry) algebras.\n(5) led to a \[OpenCurlyDoubleQuote]free Hoops\ \[CloseCurlyDoubleQuote] generalization (April 2012).\n\nWe decided to create \ a database for all groups (omitting a few with large prime components) up to \ length 96. (96 because we were particularly interested in Clifford-like \ algebras with 3-fold symmetry.) ", StyleBox["db96 ", FontSlant->"Italic"], "contains ", StyleBox["sgm_n.txt", FontSlant->"Italic"], " files describing the GAP ", StyleBox["SmallGroup(m,n) ", FontSlant->"Italic"], "entries as {", StyleBox["smReal", FontSlant->"Italic"], ",", StyleBox[" gapName", FontSlant->"Italic"], ", element names ", StyleBox["gapel,", FontSlant->"Italic"], " ", StyleBox["gapGens, gapRels, smat", FontSlant->"Italic"], "}. ", StyleBox["smReal ", FontSlant->"Italic"], "lists the indices of sets that multiply to a real size; ", StyleBox["gapShape", FontSlant->"Italic"], " uses them to calculate the real shape of any vector. The element names use \ lex-ordered lower-case latin letters in the database, but these are converted \ to the doublestruck letters used in ALGHACA. Polynomials in s are simplified \ by ", StyleBox["prs[p_]:=PolynomialRemainder[p,Cyclotomic[\[DoubleStruckR],s],s]", FontSlant->"Italic"], ", where ", Cell[BoxData[ FormBox[ SuperscriptBox["s", "\[DoubleStruckR]"], TraditionalForm]]], " is the \[DoubleStruckR]\[CloseCurlyQuote]th root of unity. (GAP uses E[3] \ etc. which upsets ", StyleBox["Mathematica", FontSlant->"Italic"], "). Vector inverses are calculated as the sum of the inverted size matrices. \ Group determinant factorisation via irreps implements high-dimensional group \ Algebras, which can often be folded to smaller signed algebras." }], "Text"], Cell[TextData[{ "G. Gerrard has created a database [2] (based on the GAP system) of almost \ all groups of size up to 96. This is in .txt (Notebook) format, with the \ polynomials in s, where s^(table_ length) = 1. I have implemented ", StyleBox["Mathematica", FontSlant->"Italic"], " routines to access and use this as part of my ", StyleBox["Mathematica", FontSlant->"Italic"], " package ALGHCA.nb." }], "Text"] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 7. Routines handling data from GAP\ \>", "Section"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " The procedures are demonstrated." }], "Text"], Cell[TextData[{ "The files sg", StyleBox["m_n.", FontSlant->"Italic"], "txt need to be unzipped into an accessible folder from db36.zip or \ db96.zip. (The latter needs 9MB free space). They can be inspected using \ Notepad, but are accessed via ", StyleBox["fromdb[m,n].", FontSlant->"Italic"] }], "Text"], Cell[BoxData[ RowBox[{"?", "fromdb"}]], "Input"], Cell[TextData[{ StyleBox["irrep ", FontSlant->"Italic"], " is supplied for", StyleBox[" ", FontSlant->"Italic"], "each group. This is a list of sets of ", StyleBox["m", FontSlant->"Italic"], " small square matrices (often involving polynomials in ", StyleBox["s", FontSlant->"Italic"], ", the ", StyleBox["m", FontSlant->"Italic"], "\[CloseCurlyQuote]th root of unity) that are factors of the determinant of \ the Cayley table ", StyleBox["gapLoop", FontSlant->"Italic"], ". Non-abelian groups have k-repeated factors that appear as matrices of \ size k, and so have relatively compact representations. The shape of a vector \ is the product of ", StyleBox["smat", FontSlant->"Italic"], " and the vector. Hoop shapes are another description of these factors, but \ are often expressed in a more informative way, and for a different table \ isomorph." }], "Text"], Cell[BoxData[ RowBox[{"?", "gapShape"}]], "Input"], Cell[TextData[{ "The Cayley table", StyleBox[" gapLoop", FontSlant->"Italic"], " can be created from ", StyleBox["gapGens & gapRels", FontSlant->"Italic"], " by the same ", StyleBox["ge", FontSlant->"Italic"], " procedure that is used for ", StyleBox["gLoop.", FontSlant->"Italic"], " This allows the creation of folded tables, provided that the loop has one \ or more central cyclic subgroup. These are indicated in ", StyleBox["gapGens", FontSlant->"Italic"], " by real (instead of integer) indices; a final parameter in ", StyleBox["ge", FontSlant->"Italic"], " is an optional list of indices to be used for folding." }], "Text"], Cell[TextData[{ "Every vector V has a multiplicative inverse Vi in every hoop of matching \ length. My original ", StyleBox["hoopInverse", FontSlant->"Italic"], " procedure was based on Cramer\[CloseCurlyQuote]s method, and involved the \ calculation of the inverse of the full m\[Cross]m Cayley table. Gerrard \ developed a faster procedure based on summing the inverses of the matrices \ (rarely larger than 4\[Cross]4) in ", StyleBox["smat", FontSlant->"Italic"], ". This is implemented as gapInverse:-" }], "Text"], Cell[BoxData[ RowBox[{"?", "gapInverse"}]], "Input"], Cell[TextData[{ "Abelian hoops have polar duals, generalisations of the Argand-Wessel \ diagram, but with {offset, radius, angle} parameters. The offsets are linear \ sizes and the radii are square roots of the real quadratic sizes. As these \ duals have the same number of parameters as the Cartesian form, the forms are \ inter-convertible. The dual information is contained in ", StyleBox["irrep,", FontSlant->"Italic"], " so the Cartesian form of a vector can be recovered from a set of sizes by ", StyleBox["fromSizeList[S]", FontSlant->"Italic"] }], "Text"], Cell[BoxData[ RowBox[{"?", "fromSizeList"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["8. Validating data from GAP db.", "Section"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " The loop and db96 data are cross checked." }], "Text"], Cell["\<\ Create some test vectors of length 96:-\ \>", "Text"], Cell[BoxData[ RowBox[{"Aa", ";", "Bb", ";", RowBox[{"F", "=", RowBox[{"Flatten", "[", RowBox[{"RealDigits", "[", RowBox[{"Pi", ",", "10", ",", "95"}], "]"}], "]"}]}]}]], "Input"], Cell[TextData[{ "Repeated use of the following cells creates each group (of the specified \ size j) in turn. Two vectors A & B are taken from predefined random vectors \ Aa & Bb. The product AB and the inverse Ai are calculated. The product of the \ vector sizes is shown to be the size of the product, validating ", StyleBox["fromdb, gapLoop & gapShape", FontSlant->"Italic"], ". Then AiAB is shown to recover B or, if some sizes are zero, gives the \ lost sizes (", StyleBox["gapTimes", FontSlant->"Italic"], " does not calculate remainders) validating ", StyleBox["gapInverse", FontSlant->"Italic"], ". Finally, folding is attempted and the result identified if it is in \ \[OpenCurlyDoubleQuote]loop\[CloseCurlyDoubleQuote]. \nThe size ", StyleBox["j", FontSlant->"Italic"], " is incremented and", StyleBox[" i", FontSlant->"Italic"], " is set to 1 when ", StyleBox["Check", FontSlant->"Italic"], " detects a read error at the end of data for size ", StyleBox["j", FontSlant->"Italic"], "..\nAll groups in db36 have been tested. A few errors were corrected \ (12/2/11) in loop[[m,n]]. \n(The fold test cannot handle C25, but this is a \ very low priority problem.)\n", StyleBox["Delete the voluminous output before saving!", FontColor->RGBColor[1, 0, 0]] }], "Text"], Cell[BoxData[ RowBox[{ RowBox[{"j", "=", "11"}], ";", RowBox[{"i", "=", "1"}], ";", RowBox[{"mm", "=", "11"}], ";", RowBox[{"(*", "Initialise", "*)"}]}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"Quiet", "[", RowBox[{ RowBox[{"Check", "[", RowBox[{ RowBox[{"fromdb", "[", RowBox[{"j", ",", "i", ",", "1"}], "]"}], ",", RowBox[{"(*", RowBox[{ "Increment", " ", "j", " ", "on", " ", "read", " ", "failure"}], "*)"}], "\[IndentingNewLine]", RowBox[{"(", RowBox[{ RowBox[{"j", "++"}], ";", RowBox[{"i", "=", "1"}], ";", RowBox[{"fromdb", "[", RowBox[{"j", ",", "i", ",", "1"}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"j", ">", "36"}], ",", RowBox[{"Abort", "[", "]"}]}], "]"}]}], ")"}]}], "]"}], ";", RowBox[{"Print", "[", RowBox[{"{", RowBox[{ "gapName", ",", "j", ",", "i", ",", "gapGens", ",", "gapRels", ",", "\"\<\\nA,B,AB\>\"", ",", RowBox[{"A", "=", RowBox[{"Take", "[", RowBox[{"Aa", ",", "j"}], "]"}]}], ",", RowBox[{"B", "=", RowBox[{"Take", "[", RowBox[{"Bb", ",", "j"}], "]"}]}], ",", RowBox[{"AB", "=", RowBox[{"gapTimes", "[", RowBox[{"A", ",", "B"}], "]"}]}], ",", "\"\<\\nsA, sB, sAB\>\"", ",", RowBox[{"sA", "=", RowBox[{"gapShape", "[", "A", "]"}]}], ",", RowBox[{"sB", "=", RowBox[{"gapShape", "[", "B", "]"}]}], ",", RowBox[{"sAB", "=", RowBox[{"gapShape", "[", "AB", "]"}]}], ",", "\[IndentingNewLine]", "\"\<\\nSize error=\>\"", ",", RowBox[{ RowBox[{"sA", " ", "sB"}], "-", "sAB"}], ",", "\"\<\\nAinverse, Ai\>\"", ",", RowBox[{ RowBox[{"Ai", "=", RowBox[{"prs", "[", RowBox[{"gapInverse", "[", "A", "]"}], "]"}]}], ";", RowBox[{"Short", "[", RowBox[{"Ai", ",", "4"}], "]"}]}], ",", "\"\<\\nRemainder B-Ai AB\>\"", ",", RowBox[{"AiAB", "=", RowBox[{"B", "-", RowBox[{"gapTimes", "[", RowBox[{"Ai", ",", "AB", ",", "gapLoop"}], "]"}]}]}], ",", "\"\< Shape of remainder \>\"", ",", RowBox[{"gapShape", "[", "AiAB", "]"}]}], "}"}], "]"}], ";", RowBox[{"i", "++"}]}], RowBox[{"(*", RowBox[{"Next", " ", "group"}], "*)"}], "]"}], ";"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"C3iC4\"\>", ",", "12", ",", "1", ",", RowBox[{"{", RowBox[{"2", ",", "3", ",", "2.`"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"\<\"\[DoubleStruckA]\[DoubleStruckA]\"\>", "\[Rule]", "\<\"\[DoubleStruckC]\"\>"}], ",", RowBox[{"\<\"\[DoubleStruckB]\[DoubleStruckA]\"\>", "\[Rule]", \ "\<\"\[DoubleStruckA]\[DoubleStruckB]\[DoubleStruckB]\"\>"}]}], "}"}], ",", "\<\"\\nA,B,AB\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", RowBox[{"-", "2"}], ",", RowBox[{"-", "1"}], ",", "2", ",", "0", ",", "1", ",", "3", ",", "1", ",", "1", ",", "3", ",", RowBox[{"-", "1"}]}], "}"}], ",", RowBox[{"{", RowBox[{"2", ",", RowBox[{"-", "1"}], ",", "2", ",", "1", ",", "2", ",", "3", ",", RowBox[{"-", "2"}], ",", "3", ",", RowBox[{"-", "2"}], ",", "1", ",", "0", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "10"}], ",", RowBox[{"-", "3"}], ",", RowBox[{"-", "2"}], ",", "13", ",", RowBox[{"-", "1"}], ",", "1", ",", "15", ",", "8", ",", "25", ",", "10", ",", "9", ",", "7"}], "}"}], ",", "\<\"\\nsA, sB, sAB\"\>", ",", RowBox[{"{", RowBox[{"8", ",", "0", ",", "40", ",", "10", ",", "0"}], "}"}], ",", RowBox[{"{", RowBox[{"9", ",", RowBox[{"-", "5"}], ",", "101", ",", "41", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"72", ",", "0", ",", "4040", ",", "410", ",", "0"}], "}"}], ",", "\<\"\\nSize error=\"\>", ",", RowBox[{"{", RowBox[{"0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\<\"\\nAinverse, Ai\"\>", ",", TagBox[ RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["7", "480"]}], ",", FractionBox["17", "480"], ",", FractionBox["17", "480"], ",", FractionBox["41", "480"], ",", RowBox[{"-", FractionBox["31", "480"]}], ",", RowBox[{"-", FractionBox["31", "480"]}], ",", FractionBox["17", "480"], ",", RowBox[{"-", FractionBox["7", "480"]}], ",", RowBox[{"-", FractionBox["7", "480"]}], ",", RowBox[{"-", FractionBox["31", "480"]}], ",", FractionBox["41", "480"], ",", FractionBox["41", "480"]}], "}"}], Short[#, 4]& ], ",", "\<\"\\nRemainder B-Ai AB\"\>", ",", RowBox[{"{", RowBox[{ RowBox[{"-", FractionBox["3", "4"]}], ",", FractionBox["1", "4"], ",", RowBox[{"-", FractionBox["3", "4"]}], ",", FractionBox["1", "4"], ",", FractionBox["1", "4"], ",", FractionBox["3", "4"], ",", RowBox[{"-", FractionBox["3", "4"]}], ",", FractionBox["1", "4"], ",", RowBox[{"-", FractionBox["3", "4"]}], ",", FractionBox["1", "4"], ",", FractionBox["1", "4"], ",", FractionBox["3", "4"]}], "}"}], ",", "\<\" Shape of remainder \"\>", ",", RowBox[{"{", RowBox[{"0", ",", RowBox[{"-", "5"}], ",", "0", ",", "0", ",", "3"}], "}"}]}], "}"}]], "Print"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["9. Primals, Symmetric difference, Folding, Generalised Det.", "Section"], Cell[TextData[{ "Hamilton showed that quaternion and octonion algebras were related to \ tables of twice their size. Frobenius showed that groups, when used as Cayley \ multiplication tables for vectors, conserved their determinants \ \[OpenCurlyDoubleQuote]up to a sign\[CloseCurlyDoubleQuote]. van der Waerden \ (and only two other authors that I can find) pointed out that real numbers \ were equivalence relationships on pairs of unsigned numbers. I deduced from \ these pointers that mathematics had deeper foundations, in the form of \ unsigned numbers, and discovered Hoop algebras as equivalence relations on \ some Moufang loops. \[OpenCurlyDoubleQuote]Primal\[CloseCurlyDoubleQuote] \ (unsigned, absolute, half-line) continuous numbers have trichotomous order, \ addition, multiplication, division, powers, unique roots, and transcendental \ solutions to equations. Primal sets have a well-defined minimum and maximum. \ Subtraction and negation are undefined, but the symmetric difference |a,b| \ can be defined by Min[a,b]+|a,b|=Max[a,b]. (This often appears in traditional \ mathematics as a function of ", Cell[BoxData[ FormBox[ SuperscriptBox[ StyleBox[ RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}], FontFamily->"Times New Roman"], "2"], TraditionalForm]]], ".) On 8/7/92 I made a note \[OpenCurlyDoubleQuote]The negative sign in the \ ordinary determinant is due to cancellation of (ad-bc) with (bc-ad)\ \[CloseCurlyDoubleQuote]\n\[OpenCurlyDoubleQuote]Folding\ \[CloseCurlyDoubleQuote] is the process that creates (and generalizes) signs. \ It converts a loop (of length ", StyleBox["mr ", FontSlant->"Italic"], "and with the r\[CloseCurlyQuote]th cyclic group Cr, as a central subgroup) \ into an algebra for vectors of length ", StyleBox["m ", FontSlant->"Italic"], "and with powers of \[DoubleStruckS] (the r\[CloseCurlyQuote]th root of \ unity) as \[OpenCurlyDoubleQuote]generalised signs\[CloseCurlyDoubleQuote]. \ Unique roots are lost, and \[OpenCurlyDoubleQuote]additive elimination\ \[CloseCurlyDoubleQuote] ", Cell[BoxData[ FormBox[ RowBox[{ UnderoverscriptBox["\[Sum]", RowBox[{"i", "=", "1"}], RowBox[{"i", "=", "r"}]], SuperscriptBox["\[DoubleStruckS]", "i"]}], TraditionalForm]]], "=0 provides a \[OpenCurlyDoubleQuote]generalised subtraction\ \[CloseCurlyDoubleQuote].\nThe concepts of the Permanent (the determinant \ with the minus signs replaced by summation), the Moore-Penrose pseudo-inverse \ (for non-square and singular matrices), generalised signs, and determinants \ \[OpenCurlyDoubleQuote]up to a sign\[CloseCurlyDoubleQuote] led to the \ development of a generalised determinant function. This creates an \ r-determinant consisting of r elements, each having a distinct sign ", Cell[BoxData[ FormBox[ SuperscriptBox["\[DoubleStruckS]", "i"], TraditionalForm]]], ", calculated a la Moore-Penrose sum of square matrices. The permanent \ \[OpenCurlyDoubleQuote]has uses in graph theory and in bosonic quantum field \ theory\[CloseCurlyDoubleQuote] (Wikipedia). A zero determinant corresponds to \ a diterminant with two equal components. No applications have been found for \ r-determinants with r>2." }], "Text"], Cell[BoxData[ RowBox[{"?", "det"}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[{ RowBox[{"PseudoInverse", "[", RowBox[{"M", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"-", "1"}], ",", "2", ",", "3"}], "}"}], ",", RowBox[{"{", RowBox[{"4", ",", RowBox[{"-", "5"}], ",", "6"}], "}"}], ",", RowBox[{"{", RowBox[{"7", ",", RowBox[{"-", "8"}], ",", "9"}], "}"}]}], "}"}]}], "]"}], "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"Det", "[", "M", "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "1"}], "]"}], ",", RowBox[{"det", "[", "M", "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "3"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "4"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "5"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "1", ",", "Plus"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "2", ",", "Plus"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "3", ",", "Plus"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "4", ",", "Plus"}], "]"}], ",", RowBox[{"det", "[", RowBox[{"M", ",", "5", ",", "Plus"}], "]"}], ",", RowBox[{"Tr", "[", "M", "]"}]}], "}"}]}], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ FractionBox["1", "6"], ",", RowBox[{"-", FractionBox["7", "3"]}], ",", FractionBox["3", "2"]}], "}"}], ",", RowBox[{"{", RowBox[{ FractionBox["1", "3"], ",", RowBox[{"-", FractionBox["5", "3"]}], ",", "1"}], "}"}], ",", RowBox[{"{", RowBox[{ FractionBox["1", "6"], ",", FractionBox["1", "3"], ",", RowBox[{"-", FractionBox["1", "6"]}]}], "}"}]}], "}"}]], "Output"], Cell[BoxData[ RowBox[{"{", RowBox[{"18", ",", RowBox[{"{", "48", "}"}], ",", RowBox[{"{", RowBox[{"33", ",", "15"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "12"}], ",", RowBox[{"-", "60"}], ",", "120"}], "}"}], ",", RowBox[{"{", RowBox[{"45", ",", "120", ",", RowBox[{"-", "12"}], ",", RowBox[{"-", "105"}]}], "}"}], ",", RowBox[{"{", RowBox[{"120", ",", RowBox[{"-", "12"}], ",", RowBox[{"-", "105"}], ",", "0", ",", "45"}], "}"}], ",", RowBox[{"{", "30", "}"}], ",", RowBox[{"{", RowBox[{"15", ",", "15"}], "}"}], ",", RowBox[{"{", RowBox[{ RowBox[{"-", "7"}], ",", "12", ",", "25"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "17", ",", "3", ",", RowBox[{"-", "2"}]}], "}"}], ",", RowBox[{"{", RowBox[{"17", ",", RowBox[{"-", "5"}], ",", "8", ",", RowBox[{"-", "2"}], ",", "12"}], "}"}], ",", "3"}], "}"}]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"M", "=", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "i"}], "}"}], ",", RowBox[{"{", RowBox[{"j", ",", "k", ",", "l", ",", "m"}], "}"}]}], "}"}]}], ";", RowBox[{"M", "//", "tf"}]}]], "Input"], Cell[BoxData[ FormBox[ RowBox[{"(", "\[NoBreak]", GridBox[{ {"a", "b", "c", "d"}, {"f", "0", "7", "2"}, {"12", "k", "l", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]} }, GridBoxAlignment->{ "Columns" -> {{Center}}, "ColumnsIndexed" -> {}, "Rows" -> {{Baseline}}, "RowsIndexed" -> {}}, GridBoxSpacings->{"Columns" -> { Offset[0.27999999999999997`], { Offset[0.7]}, Offset[0.27999999999999997`]}, "ColumnsIndexed" -> {}, "Rows" -> { Offset[0.2], { Offset[0.4]}, Offset[0.2]}, "RowsIndexed" -> {}}], "\[NoBreak]", ")"}], TraditionalForm]], "Output"] }, Open ]], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{"{", RowBox[{"\"\\"", ",", RowBox[{"det", "[", RowBox[{"M", ",", "1"}], "]"}], ",", "\"\<\\nDiterminant \>\"", ",", RowBox[{"det", "[", "M", "]"}], ",", "\"\<\\nTriterminant \>\"", ",", RowBox[{"det", "[", RowBox[{"M", ",", "3"}], "]"}], ",", "\"\<\\nDit+ \>\"", ",", RowBox[{"det", "[", RowBox[{"M", ",", "1", ",", "Plus"}], "]"}], ",", "\"\<\\nDet+ \>\"", ",", RowBox[{"det", "[", RowBox[{"M", ",", "2", ",", "Plus"}], "]"}], ",", "\"\<\\nTet+ \>\"", ",", RowBox[{"det", "[", RowBox[{"M", ",", "3", ",", "Plus"}], "]"}]}], "}"}]], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{"\<\"Permanent \"\>", ",", RowBox[{"det", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", "1"}], "]"}], ",", "\<\"\\nDiterminant \"\>", ",", RowBox[{"det", "[", RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], "]"}], ",", "\<\"\\nTriterminant \"\>", ",", RowBox[{"det", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", "3"}], "]"}], ",", "\<\"\\nDit+ \"\>", ",", RowBox[{"det", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", "1", ",", "Plus"}], "]"}], ",", "\<\"\\nDet+ \"\>", ",", RowBox[{"det", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", "2", ",", "Plus"}], "]"}], ",", "\<\"\\nTet+ \"\>", ",", RowBox[{"det", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{"a", ",", "b", ",", "c", ",", "d"}], "}"}], ",", RowBox[{"{", RowBox[{"f", ",", "0", ",", "7", ",", "2"}], "}"}], ",", RowBox[{"{", RowBox[{"12", ",", "k", ",", "l", ",", RowBox[{"{", RowBox[{"0", ",", "3", ",", "4", ",", "0"}], "}"}]}], "}"}]}], "}"}], ",", "3", ",", "Plus"}], "]"}]}], "}"}]], "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell["\<\ 10. Polar Duals, Polar orbits, Dozal.\ \>", "Section", FontFamily->"Arial"], Cell[TextData[{ StyleBox["Summary.", FontWeight->"Bold"], " Abelian hoops posses a Cartesian/Polar duality that generalises the \ Argand-Wessel diagram (where {x,y} is dual to {r, \[Theta]} with r=", Cell[BoxData[ FormBox[ SqrtBox[ RowBox[{ SuperscriptBox["x", "2"], "+", SuperscriptBox["y", "2"]}]], TraditionalForm]]], ", \[Theta]=ArcTan[x,y] ). The polar-dual includes multiple radius-angle \ parameters together with displacements of the center from zero. \ \[OpenCurlyDoubleQuote]Polar orbits\[CloseCurlyDoubleQuote] are algebras with \ the product of all non-zero radii equal to 1. Different hoops (of a given \ order) conserve different sets of orbits, just as different forces conserve \ different sets of particle properties." }], "Text"], Cell["\<\ The 16 known toPol/toVec formulae have been tested. \ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"Clear", "[", "dualTest", "]"}], ";", RowBox[{"gName", "=."}], ";", RowBox[{ RowBox[{"dualTest", "[", RowBox[{"Ao_", ",", "G_"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"gL", "=", RowBox[{"mp", "[", "G", "]"}]}], ",", "gN", ",", "A", ",", "Ar", ",", "m", ",", "P"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{"If", "[", RowBox[{ RowBox[{"!", RowBox[{"abelianQ", "[", "gL", "]"}]}], ",", "\"\\"", ",", RowBox[{ RowBox[{"m", "=", RowBox[{"Length", "[", "gL", "]"}]}], ";", RowBox[{"A", "=", RowBox[{"1.", RowBox[{"Take", "[", RowBox[{"Ao", ",", "m"}], "]"}]}]}], ";", "\[IndentingNewLine]", RowBox[{"P", "=", RowBox[{"toPol", "[", RowBox[{"A", ",", "gName"}], "]"}]}], ";", RowBox[{"Ar", "=", RowBox[{"toVec", "[", RowBox[{"P", ",", "gName"}], "]"}]}], ";", RowBox[{"err", "=", RowBox[{"Chop", "[", RowBox[{"A", "-", "Ar"}], "]"}]}], ";", RowBox[{"{", RowBox[{ "gName", ",", "m", ",", "A", ",", "\"\<\\nError\>\"", ",", "err", ",", "\"\<\\nShapes of A & error\>\"", ",", RowBox[{"shape", "[", "A", "]"}], ",", RowBox[{"Chop", "[", RowBox[{"shape", "[", "err", "]"}], "]"}]}], "}"}]}]}], "]"}]}], "]"}]}]}]], "Input"], Cell["\<\ Many polynomials have been found to be conserved by one or more 12\ \[CloseCurlyQuote]th order algebra. The following list is far from complete.\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{ RowBox[{"sh12", "[", RowBox[{"{", RowBox[{ "a_", ",", "b_", ",", "c_", ",", "d_", ",", "e_", ",", "f_", ",", "g_", ",", "h_", ",", "i_", ",", "j_", ",", "k_", ",", "l_"}], "}"}], "]"}], ":=", RowBox[{"Module", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"ab", "=", RowBox[{"a", "-", "b", "-", "g", "+", "h"}]}], ",", RowBox[{"ag", "=", RowBox[{"a", "-", "b", "+", "g", "-", "h"}]}], ",", RowBox[{"bc", "=", RowBox[{"b", "-", "c", "-", "h", "+", "i"}]}], ",", RowBox[{"bh", "=", RowBox[{"b", "-", "c", "+", "h", "-", "i"}]}], ",", "\[IndentingNewLine]", RowBox[{"ca", "=", RowBox[{"a", "-", "c", "-", "g", "+", "i"}]}], ",", RowBox[{"ci", "=", RowBox[{"a", "-", "c", "+", "g", "-", "i"}]}], ",", RowBox[{"de", "=", RowBox[{"d", "-", "e", "-", "j", "+", "k"}]}], ",", RowBox[{"dj", "=", RowBox[{"d", "-", "e", "+", "j", "-", "k"}]}], ",", "\[IndentingNewLine]", RowBox[{"ef", "=", RowBox[{"e", "-", "f", "-", "k", "+", "l"}]}], ",", RowBox[{"ek", "=", RowBox[{"e", "-", "f", "+", "k", "-", "l"}]}], ",", RowBox[{"fd", "=", RowBox[{"d", "-", "f", "-", "j", "+", "l"}]}], ",", RowBox[{"fl", "=", RowBox[{"d", "-", "f", "+", "j", "-", "l"}]}], ",", RowBox[{"f1", "=", RowBox[{"a", "-", "b", "-", "g", "+", "h", "+", RowBox[{ RowBox[{"(", RowBox[{"d", "+", "e", "-", RowBox[{"2", " ", "f"}], "-", "j", "-", "k", "+", RowBox[{"2", "l"}]}], ")"}], "/", SqrtBox["3"]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"f2", "=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a", "+", "b", "-", RowBox[{"2", "c"}], "-", "g", "-", "h", "+", RowBox[{"2", "i"}]}], ")"}], "/", SqrtBox["3"]}], "-", "d", "+", "e", "+", "j", "-", "k"}]}], ",", "\[IndentingNewLine]", RowBox[{"f3", "=", RowBox[{"a", "-", "b", "-", "g", "+", "h", "-", RowBox[{ RowBox[{"(", RowBox[{"d", "+", "e", "-", RowBox[{"2", " ", "f"}], "-", "j", "-", "k", "+", RowBox[{"2", "l"}]}], ")"}], "/", SqrtBox["3"]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"f4", "=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a", "+", "b", "-", RowBox[{"2", "c"}], "-", "g", "-", "h", "+", RowBox[{"2", "i"}]}], ")"}], "/", SqrtBox["3"]}], "+", "d", "-", "e", "-", "j", "+", "k"}]}], ",", "abef", ",", "agek"}], "}"}], ",", "\[IndentingNewLine]", RowBox[{ RowBox[{"abef", "=", RowBox[{"3", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"ab", " ", "ef"}], "-", RowBox[{"bc", " ", "de"}]}], ")"}], "2"]}]}], ";", RowBox[{"agek", "=", RowBox[{"3", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"ag", " ", "ek"}], "-", RowBox[{"bh", " ", "dj"}]}], ")"}], "2"]}]}], ";", "\[IndentingNewLine]", RowBox[{"{", RowBox[{ RowBox[{"o1", "=", RowBox[{ "a", "+", "b", "+", "c", "+", "d", "+", "e", "+", "f", "+", "g", "+", "h", "+", "i", "+", "j", "+", "k", "+", "l"}]}], ",", RowBox[{"o2", "=", RowBox[{ "a", "+", "b", "+", "c", "-", "d", "-", "e", "-", "f", "+", "g", "+", "h", "+", "i", "-", "j", "-", "k", "-", "l"}]}], ",", "\[IndentingNewLine]", RowBox[{"o3", "=", RowBox[{ "a", "+", "b", "+", "c", "+", "d", "+", "e", "+", "f", "-", "g", "-", "h", "-", "i", "-", "j", "-", "k", "-", "l"}]}], ",", RowBox[{"o4", "=", RowBox[{ "a", "+", "b", "+", "c", "-", "d", "-", "e", "-", "f", "-", "g", "-", "h", "-", "i", "+", "j", "+", "k", "+", "l"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "5", "*)"}], RowBox[{"l22a", "=", RowBox[{"3", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["f1", "2"], "+", SuperscriptBox["f2", "2"]}], ")"}], "/", "4"}]}]}], ",", RowBox[{"(*", "6", "*)"}], RowBox[{"l22b", "=", RowBox[{"3", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["f3", "2"], "+", SuperscriptBox["f4", "2"]}], ")"}], "/", "4"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "7", "*)"}], RowBox[{"p22", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c", "+", "g", "+", "h", "+", "i"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f", "+", "j", "+", "k", "+", "l"}], ")"}], "2"]}]}], ",", RowBox[{"(*", "8", "*)"}], RowBox[{"q22", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c", "-", "g", "-", "h", "-", "i"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f", "-", "j", "-", "k", "-", "l"}], ")"}], "2"]}]}], ",", RowBox[{"(*", "9", "*)"}], RowBox[{"r22", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c", "+", "g", "+", "h", "+", "i"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f", "+", "j", "+", "k", "+", "l"}], ")"}], "2"]}]}], ",", RowBox[{"(*", "10", "*)"}], RowBox[{"s22", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c", "-", "g", "-", "h", "-", "i"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f", "-", "j", "-", "k", "-", "l"}], ")"}], "2"]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "11", "*)"}], RowBox[{"p23", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ag", "+", "dj"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bh", "+", "ek"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ci", "+", "fl"}], ")"}], "2"]}], ")"}], "/", "2"}]}], ",", RowBox[{"(*", "12", "*)"}], RowBox[{"q23", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ag", "-", "dj"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bh", "-", "ek"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ci", "-", "fl"}], ")"}], "2"]}], ")"}], "/", "2"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "13", "*)"}], RowBox[{"r23", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ab", "+", "de"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bc", "+", "ef"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ca", "+", "fd"}], ")"}], "2"]}], ")"}], "/", "2"}]}], ",", RowBox[{"(*", "14", "*)"}], RowBox[{"s23", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ab", "-", "de"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bc", "-", "ef"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ca", "-", "fd"}], ")"}], "2"]}], ")"}], "/", "2"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "15", "*)"}], RowBox[{"q24", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"g", "+", "h", "+", "i"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"j", "+", "k", "+", "l"}], ")"}], "2"]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "16", "*)"}], RowBox[{"s24", "=", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "+", "b", "+", "c"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "+", "e", "+", "f"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"g", "+", "h", "+", "i"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"j", "+", "k", "+", "l"}], ")"}], "2"]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "17", "*)"}], RowBox[{"p26", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "+", SuperscriptBox["bh", "2"], "+", SuperscriptBox["ci", "2"], "-", SuperscriptBox["dj", "2"], "-", SuperscriptBox["fl", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "/", "2"}]}], ",", RowBox[{"(*", "18", "*)"}], RowBox[{"q26", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "+", SuperscriptBox["bc", "2"], "+", SuperscriptBox["ca", "2"], "-", SuperscriptBox["de", "2"], "-", SuperscriptBox["ef", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "/", "2"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "19", "*)"}], RowBox[{"r26", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "+", SuperscriptBox["bh", "2"], "+", SuperscriptBox["ci", "2"], "+", SuperscriptBox["dj", "2"], "+", SuperscriptBox["fl", "2"], "+", SuperscriptBox["ek", "2"]}], ")"}], "/", "2"}]}], ",", RowBox[{"(*", "20", "*)"}], RowBox[{"s26", "=", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "+", SuperscriptBox["bc", "2"], "+", SuperscriptBox["ca", "2"], "+", SuperscriptBox["de", "2"], "+", SuperscriptBox["ef", "2"], "+", SuperscriptBox["fd", "2"]}], ")"}], "/", "2"}]}], ",", "\n", " ", RowBox[{"(*", "21", "*)"}], " ", RowBox[{"l3", "=", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a", "+", "d", "-", "g", "-", "j"}], ")"}], " ", RowBox[{"(", RowBox[{"a", "-", "d", "+", "g", "-", "j"}], ")"}], " ", RowBox[{"(", RowBox[{"a", "-", "d", "-", "g", "+", "j"}], ")"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"b", "+", "e", "-", "h", "-", "k"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "-", "e", "+", "h", "-", "k"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "-", "e", "-", "h", "+", "k"}], ")"}]}], "+", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{"c", "+", "f", "-", " ", "i", " ", "-", "l"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "-", "f", "+", " ", "i", " ", "-", "l"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "-", "f", "-", " ", "i", " ", "+", "l"}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{"a", "-", "d", "+", "g", "-", "j"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "-", "e", "-", "h", "+", "k"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "+", "f", "-", " ", "i", " ", "-", "l"}], ")"}]}], "-", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{"a", "-", "d", "-", "g", "+", "j"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "+", "e", "-", "h", "-", "k"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "-", "f", "+", "i", "-", "l"}], ")"}]}], "-", RowBox[{ RowBox[{"(", RowBox[{"a", "+", "d", "-", "g", "-", "j"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "-", "e", "+", "h", "-", "k"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "-", "f", "-", " ", "i", " ", "+", "l"}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "22", "*)"}], RowBox[{"l4p", "=", RowBox[{ SuperscriptBox["p26", "2"], "+", "agek"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "23", "*)"}], RowBox[{"l4q", "=", RowBox[{ SuperscriptBox["q26", "2"], "+", "abef"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "24", "*)"}], RowBox[{"l4r", "=", RowBox[{ SuperscriptBox["r26", "2"], "-", RowBox[{"3", "agek"}]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "25", "*)"}], RowBox[{"l4s", "=", RowBox[{"l22a", " ", "l22b"}]}], RowBox[{"(*", RowBox[{ SuperscriptBox["s26", "2"], "-", "abef"}], "*)"}], ",", RowBox[{"(*", "26", "*)"}], RowBox[{"L4Q", "=", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"b", "-", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"a", "-", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "-", "e"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"e", "-", "f"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "-", "f"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"g", "-", "h"}], ")"}], "2"], "+", "\[IndentingNewLine]", SuperscriptBox[ RowBox[{"(", RowBox[{"h", "-", "i"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"g", "-", "i"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"j", "-", "k"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"k", "-", "l"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"j", "-", "l"}], ")"}], "2"]}], ")"}], "^", "2"}], "/", "4"}], "-", RowBox[{"3", " ", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"a", " ", RowBox[{"(", RowBox[{"f", "-", "e"}], ")"}]}], "+", RowBox[{"b", " ", RowBox[{"(", RowBox[{"d", "-", "f"}], ")"}]}], "+", RowBox[{"c", " ", RowBox[{"(", RowBox[{"e", "-", "d"}], ")"}]}]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"a", " ", RowBox[{"(", RowBox[{"i", "-", "h"}], ")"}]}], "+", RowBox[{"b", " ", RowBox[{"(", RowBox[{"g", "-", "i"}], ")"}]}], "+", RowBox[{"c", " ", RowBox[{"(", RowBox[{"h", "-", "g"}], ")"}]}]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"d", " ", RowBox[{"(", RowBox[{"h", "-", "i"}], ")"}]}], "+", RowBox[{"e", " ", RowBox[{"(", RowBox[{"i", "-", "g"}], ")"}]}], "+", RowBox[{"f", " ", RowBox[{"(", RowBox[{"g", "-", "h"}], ")"}]}]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"g", " ", RowBox[{"(", RowBox[{"k", "-", "l"}], ")"}]}], "+", RowBox[{"h", " ", RowBox[{"(", RowBox[{"l", "-", "j"}], ")"}]}], "+", RowBox[{"i", " ", RowBox[{"(", RowBox[{"j", "-", "k"}], ")"}]}]}], ")"}], "2"], "+", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"b", "-", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"e", "-", "f"}], ")"}], "2"]}], ")"}], " ", SuperscriptBox["j", "2"]}], "+", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "-", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "-", "f"}], ")"}], "2"]}], ")"}], " ", SuperscriptBox["k", "2"]}], "+", RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "-", "e"}], ")"}], "2"]}], ")"}], " ", SuperscriptBox["l", "2"]}]}], ")"}]}], "+", "\[IndentingNewLine]", RowBox[{"6", " ", RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"c", "-", "a"}], ")"}], " ", RowBox[{"(", RowBox[{"c", "-", "b"}], ")"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"f", "-", "d"}], ")"}], " ", RowBox[{"(", RowBox[{"f", "-", "e"}], ")"}]}]}], ")"}], " ", "j", " ", "k"}], "+", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"b", "-", "a"}], ")"}], " ", RowBox[{"(", RowBox[{"b", "-", "c"}], ")"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"e", "-", "d"}], ")"}], " ", RowBox[{"(", RowBox[{"e", "-", "f"}], ")"}]}]}], ")"}], " ", "j", " ", "l"}], "+", "\[IndentingNewLine]", RowBox[{ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}], " ", RowBox[{"(", RowBox[{"a", "-", "c"}], ")"}]}], "+", RowBox[{ RowBox[{"(", RowBox[{"d", "-", "e"}], ")"}], " ", RowBox[{"(", RowBox[{"d", "-", "f"}], ")"}]}]}], ")"}], " ", "k", " ", "l"}]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "27", "*)"}], RowBox[{"L4\[Sigma]", "=", " ", RowBox[{ RowBox[{ RowBox[{ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"a", "-", "b"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"b", "-", "c"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"c", "-", "a"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"d", "-", "e"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"e", "-", "f"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"f", "-", "d"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"g", "-", "h"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"h", "-", "i"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"i", "-", "g"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"j", "-", "k"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"k", "-", "l"}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{"l", "-", "j"}], ")"}], "2"]}], ")"}], "^", "2"}], "/", "4"}], "+", RowBox[{"3", " ", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"b", " ", "d"}], "-", RowBox[{"c", " ", "d"}], "-", RowBox[{"a", " ", "e"}], "+", RowBox[{"c", " ", "e"}], "+", RowBox[{"a", " ", "f"}], "-", RowBox[{"b", " ", "f"}]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"b", " ", "g"}], "-", RowBox[{"c", " ", "g"}], "-", RowBox[{"a", " ", "h"}], "+", RowBox[{"c", " ", "h"}], "+", RowBox[{"a", " ", "i"}], "-", RowBox[{"b", " ", "i"}]}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"e", " ", "g"}], "-", RowBox[{"f", " ", "g"}], "-", RowBox[{"d", " ", "h"}], "+", RowBox[{"f", " ", "h"}], "+", RowBox[{"d", " ", "i"}], "-", RowBox[{"e", " ", "i"}]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"b", " ", "j"}], "-", RowBox[{"c", " ", "j"}], "-", RowBox[{"a", " ", "k"}], "+", RowBox[{"c", " ", "k"}], "+", RowBox[{"a", " ", "l"}], "-", RowBox[{"b", " ", "l"}]}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{ RowBox[{"-", "e"}], " ", "j"}], "+", RowBox[{"f", " ", "j"}], "+", RowBox[{"d", " ", "k"}], "-", RowBox[{"f", " ", "k"}], "-", RowBox[{"d", " ", "l"}], "+", RowBox[{"e", " ", "l"}]}], ")"}], "2"], "-", SuperscriptBox[ RowBox[{"(", RowBox[{ RowBox[{"h", " ", "j"}], "-", RowBox[{"i", " ", "j"}], "-", RowBox[{"g", " ", "k"}], "+", RowBox[{"i", " ", "k"}], "+", RowBox[{"g", " ", "l"}], "-", RowBox[{"h", " ", "l"}]}], ")"}], "2"]}], ")"}]}]}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "28", "*)"}], RowBox[{"L4a3", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ag", "+", "dj"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bh", "+", "ek"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ci", "+", "fl"}], ")"}], "2"]}], ")"}], "2"], "/", "4"}], "+", "agek"}]}], ",", RowBox[{"(*", "29", "*)"}], RowBox[{"L4b3", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ag", "-", "dj"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bh", "-", "ek"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ci", "-", "fl"}], ")"}], "2"]}], ")"}], "2"], "/", "4"}], "+", "agek"}]}], ",", RowBox[{"(*", "30", "*)"}], RowBox[{"L4c3", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ab", "+", "de"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bc", "+", "ef"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ca", "+", "fd"}], ")"}], "2"]}], ")"}], "2"], "/", "4"}], "-", "abef"}]}], ",", RowBox[{"(*", "31", "*)"}], RowBox[{"L4d3", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{"ab", "-", "de"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"bc", "-", "ef"}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{"ca", "-", "fd"}], ")"}], "2"]}], ")"}], "2"], "/", "4"}], "-", "abef"}]}], ",", RowBox[{"(*", "32", "*)"}], RowBox[{"L4a6", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "+", SuperscriptBox["bh", "2"], "+", SuperscriptBox["ci", "2"], "-", SuperscriptBox["dj", "2"], "-", SuperscriptBox["fl", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "/", "4"}], "+", "agek"}]}], ",", RowBox[{"(*", "33", "*)"}], RowBox[{"L4b6", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "+", SuperscriptBox["bc", "2"], "+", SuperscriptBox["ca", "2"], "-", SuperscriptBox["de", "2"], "-", SuperscriptBox["ef", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "/", "4"}], "+", "abef"}]}], ",", RowBox[{"(*", "34", "*)"}], RowBox[{"L4c6", "=", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "+", SuperscriptBox["bc", "2"], "+", SuperscriptBox["ca", "2"], "-", SuperscriptBox["de", "2"], "-", SuperscriptBox["ef", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "/", "4"}], "-", "abef"}]}], ",", "\n", "\t", RowBox[{"(*", "35", "*)"}], RowBox[{"L4d6", "=", " ", RowBox[{ RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "+", SuperscriptBox["bh", "2"], "+", SuperscriptBox["ci", "2"], "+", SuperscriptBox["dj", "2"], "+", SuperscriptBox["fl", "2"], "+", SuperscriptBox["ek", "2"]}], ")"}], "2"], "/", "4"}], "-", "agek"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "36", "*)"}], RowBox[{"L49", "=", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"]}], ")"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "37", "*)"}], RowBox[{"L49a", "=", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"]}], ")"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "38", "*)"}], RowBox[{"L49b", "=", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ab", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bc", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["dj", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["ek", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ca", "2"], "-", SuperscriptBox["fl", "2"]}], ")"}], "2"]}], ")"}]}], ",", "\[IndentingNewLine]", RowBox[{"(*", "39", "*)"}], RowBox[{"L49c", "=", RowBox[{"(", RowBox[{ SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ag", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["bh", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["de", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["ef", "2"]}], ")"}], "2"], "+", SuperscriptBox[ RowBox[{"(", RowBox[{ SuperscriptBox["ci", "2"], "-", SuperscriptBox["fd", "2"]}], ")"}], "2"]}], ")"}]}]}], "}"}]}]}], "]"}]}], ";"}]], "Input", PageWidth->PaperWidth, CellMargins->{{Inherited, 1}, {Inherited, Inherited}}, PageBreakWithin->Automatic, InitializationCell->True], Cell[TextData[{ "If the non-zero radii multiply to 1, the resultis a Dozal ", StyleBox["Orbit. ", FontSlant->"Italic"], "Note that {\[Epsilon],\[Sigma]} defines 4-phases, {\[Zeta],\[Tau]} 3 \ phases, {\[Lambda],\[Phi]} 6 phases and both {\[Eta],\[Chi]} and {\[Kappa],\ \[Psi]} 12 phases. The {\[Eta],\[Chi]} and {\[Kappa],\[Psi]} systems are \ shown by the following plots:-" }], "Text", PageWidth->PaperWidth], Cell[BoxData[{ RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "36", ",", "\[Chi]", ",", "0", ",", "0"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Chi]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}], "\[IndentingNewLine]", RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "36", ",", "\[Psi]"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Psi]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}]}], "Input", PageWidth->PaperWidth], Cell["\<\ Six of the 12 phases cancel if {\[Eta],\[Chi]} = {\[Kappa],\[Psi]} \ (displacement introduced to separate phases):-\ \>", "Text", PageWidth->PaperWidth], Cell[BoxData[{ RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "\[Chi]", ",", "1", ",", "\[Chi]"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], "+", "0.01`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], "+", "0.02`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], "+", "0.03`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], "+", "0.04`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], "+", "0.05`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], "+", "0.06`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], "+", "0.07`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], "+", "0.08`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], "+", "0.09`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], "+", "0.1`"}], ",", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}], "+", "0.11`"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Chi]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}]}], "Input", PageWidth->PaperWidth], Cell["\<\ Note that in C6C2, {\[Zeta],\[Tau]} defines 3 phases, {\[Lambda],\[Phi]} {\ \[Eta],\[Chi]} and {\[Kappa],\[Psi]} 6 phases in different sequences. 12 \ equal phases arise if {\[Eta],\[Chi]} = {\[Kappa],\[Psi]+\[Pi]/2}. These \ systems are shown by the following plots:-\ \>", "Text", PageWidth->PaperWidth], Cell[BoxData[{ RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "\[Tau]", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Tau]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}], "\n", RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "\[Phi]", ",", "0", ",", "0", ",", "0", ",", "0"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Phi]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}], "\n", RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "\[Eta]", ",", "0", ",", "0"}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Eta]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}], "\n", RowBox[{ RowBox[{"vv", ":=", RowBox[{"toVec", "[", RowBox[{ RowBox[{"{", RowBox[{ "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "0", ",", "1", ",", "\[Psi]", ",", "1", ",", RowBox[{"\[Psi]", "+", FractionBox["\[Pi]", "2"]}]}], "}"}], ",", "\"\\""}], "]"}]}], ";"}], "\n", RowBox[{"Plot", "[", RowBox[{ RowBox[{"{", RowBox[{ RowBox[{"vv", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "2", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "3", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "4", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "5", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "6", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "7", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "8", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "9", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "10", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "11", "\[RightDoubleBracket]"}], ",", RowBox[{"vv", "\[LeftDoubleBracket]", "12", "\[RightDoubleBracket]"}]}], "}"}], ",", RowBox[{"{", RowBox[{"\[Psi]", ",", "0", ",", RowBox[{"2", " ", "\[Pi]"}]}], "}"}]}], "]"}]}], "Input", PageWidth->PaperWidth], Cell["\<\ The following test finds the sizes thate conserved in any Dozal algebra, More \ work needed!\ \>", "Text"], Cell[BoxData[ RowBox[{ RowBox[{"ds", "=", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}]}], ";"}]], "Input", PageWidth->PaperWidth, InitializationCell->True], Cell[BoxData[ RowBox[{ RowBox[{"A", "=", RowBox[{"1.", RowBox[{"Take", "[", RowBox[{"Aa", ",", "12"}], "]"}]}]}], ";", RowBox[{"B", "=", RowBox[{"1.", RowBox[{"Take", "[", RowBox[{"Aa", ",", "12"}], "]"}]}]}], ";"}]], "Input"], Cell[BoxData[ RowBox[{ RowBox[{"m", "=", "12"}], ";", RowBox[{"n", "=", "1"}], ";", RowBox[{"con", "=", RowBox[{"{", "}"}]}], ";"}]], "Input"], Cell[CellGroupData[{ Cell[BoxData[ RowBox[{ RowBox[{"mp", "[", RowBox[{"m", ",", "n"}], "]"}], ";", RowBox[{"res", "=", RowBox[{"{", RowBox[{"id", "[", RowBox[{"mp", "[", RowBox[{"m", ",", "n"}], "]"}], "]"}], "}"}]}], ";", RowBox[{"sA", "=", RowBox[{"sh12", "[", "A", "]"}]}], ";", RowBox[{"sB", "=", RowBox[{"sh12", "[", "B", "]"}]}], ";", RowBox[{"er", "=", RowBox[{"Chop", "[", RowBox[{ RowBox[{"sA", " ", "sB"}], "-", RowBox[{"sh12", "[", RowBox[{"hoopTimes", "[", RowBox[{"A", ",", "B"}], "]"}], "]"}]}], "]"}]}], ";", RowBox[{"c", "=", "1"}], ";", RowBox[{"Do", "[", RowBox[{ RowBox[{"If", "[", RowBox[{ RowBox[{ RowBox[{ RowBox[{"sA", "[", RowBox[{"[", "j", "]"}], "]"}], "\[NotEqual]", "0"}], "&&", RowBox[{ RowBox[{"er", "[", RowBox[{"[", "j", "]"}], "]"}], "\[Equal]", "0"}]}], ",", RowBox[{ RowBox[{"c", "++"}], ";", RowBox[{"AppendTo", "[", RowBox[{"res", ",", RowBox[{"ds", "[", RowBox[{"[", "j", "]"}], "]"}]}], "]"}]}]}], "]"}], ",", RowBox[{"{", RowBox[{"j", ",", "39"}], "}"}]}], "]"}], ";", RowBox[{"If", "[", RowBox[{ RowBox[{"c", ">", "1"}], ",", RowBox[{"AppendTo", "[", RowBox[{"con", ",", "res"}], "]"}]}], "]"}], ";", RowBox[{"n", "++"}], ";", "res"}]], "Input"], Cell[BoxData[ RowBox[{"{", "\<\"C36j\"\>", "}"}]], "Output"] }, Open ]], Cell[BoxData["con"], "Input"], Cell[BoxData[ RowBox[{"{", RowBox[{ RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{ "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}], ",", RowBox[{"{", RowBox[{"\"\\"", ",", "\"\\""}], "}"}]}], "}"}]], "Input"] }, Closed]], Cell[CellGroupData[{ Cell["11. References.", "Section", FontFamily->"Arial"], Cell[TextData[{ "[1] http://library.wolfram.com/infocenter/", StyleBox["MathSource", FontSlant->"Italic"], "/4894/ R.H.Beresford. First published 8/5.2003.\n[2] J.D.H. Smith, A.B. \ Romanowska, Post-Modern Algebra, Wiley Interscience 1999.\n[3] B. L. van der \ Waerden, A History of Algebra, Chapter 12. Springer 1985.\n[4] G. ", StyleBox["Frobenius, Uber die Primfactoren der Gruppendeterminante, \ Sitzungsber.Preuss. Akad. Wiss. Berlin Phys. Math,KL. 1896,(985-1021) (not \ seen, but quoted from Ref[** p236].)\n[5] ", "RefAuthorFN"], "[GAP99] The Gap Group.GAP---Groups,Algorithms,and Programming,Version \ 4.2;Aachen, St Andrews,1999. (http://www-gap.dcs.st-and.ac.uk/~gap)", StyleBox[".\n[6]", "RefAuthorFN"], " Vahid Dabbaghian-Abdoly. An algorithm for constructing representations of \ finite groups.\n J. Symbolic Comput., 39:671\[Dash] 688, 2005. 4, 5 \ (IrreducibleAffordingRepresentations in GAP)\n[7] Hestenes, D. & Sobczyk, G. \ Clifford Algebra to Geometric Calculus. D. Reidel, 1984. 512.57\n[8] Chris \ Doran, Anthony Lasenby, Geometric algebra for Physicists, CUP, Cambridge \ England 2003 516.35\n[9] G. Sommer (Ed), Geometric Computing with Clifford \ Algebras, Springer, 2001 512.57.\n[10] C. Perwass, Clucalc, \ http://www.clucalc.info/\n[11] Ian C. G. Bell, \ http://www.iancgbell.clara.net/maths/geoalg1.htm.\n[12] Jaap Suter, \ http://web.archive.org/web/20040610223908/home.student.utwente.nl/j.suter/ga_\ primer.pdf\n[13] Terje Vold, \ http://library.wolfram.com/infocenter/Conferences/6951/\n[14] P. Lounesto, \ Clifford Algebras & Spinors 2nd ed., Cambridge University Press 2001.\n[15] \ GAP Forum/ Determinant Factor Conservation, and Division by zero \ (renormalisation). R.H.Beresford. Sept 2000.\n[16] Sci.Maths. Group Algebras \ and Physical Mathematics. Roger Beresford. 12th. June 2001\n[17]\ \[NonBreakingSpace]http://demonstrations.wolfram.com/\ AlgebraicLoops2SymmetryConservingVectorDivisionHoopAlgebras/\n[18] \ http://demonstrations.wolfram.com/AlgebraicLoops1Properties/\n[19] E.G. \ Landau. Foundations of Analysis. Chelsea 1960. 512.7\n[20] Wiki Algebraic \ Structures.\n[21] Section on Loops, in [5]." }], "Text"] }, Closed]] }, Open ]] }, AutoGeneratedPackage->None, WindowToolbars->"EditBar", WindowSize->{1183, 629}, WindowMargins->{{Automatic, 17}, {Automatic, 0}}, DockedCells->FEPrivate`If[ FEPrivate`SameQ[FEPrivate`$ProductIDName, "MathematicaPlayer"], { Cell[ BoxData[ Cell[ GraphicsData[ "CompressedBitmap", "eJy9XGdcVUfevkuzu0mMXcOq9GYHUaqxgImiia6xxI3JakzUmDVl35Rd3Y3G\n\ tWGMigKKgtJFKdIEBCnSpPeuYP0l77vv5/fDPu/MOTPnzrn3XMCy+wHuvXPm\n\ zL/MzPP8/zNzzsqtX+7Ytnvrl598tPV3y/du/XzHJx998btle/aSIvPf6HRm\n\ FjqdzvF3Ovod5Cv79zq6urp0FqjJL8CVgLdREBmFjrY2S6l4GBrrG3DXLxB9\n\ U1xR7uSGFl8v9P4hCPc/24Dqzetx9/JlnblUdwi6OjtRc/0aCnbvQuH8hSgZ\n\ Z4/E2R6ovHJFB1qnSaqoG8tEZv1wAFcn2yF2205Ul5RYSMVj0EmaaXhnI3rt\n\ 5qDbdh5aV/ihY0sgHu58F/ffD0LzB2tRH3EOdanXUBUehvxdn6JooRfqZrqg\n\ 2NkZ4RNm4Nrqd9DR1KQh1gr11dVIcJmP+OFTcXG2J0pOnkZDTp6ZdPk1dLS0\n\ oH3tGvR6eKJ99gLULnRH88aluPfFOjz+YRMebCLqrHwTrUH+aFm3BJXec1Ax\n\ 1xWVs2chxtoBoVT8mnckyc2y5HHSx0SkEIPTx0xHzhgbJJPPDPuZuL37c5Sf\n\ OYvSTRvxyMMd9/180OTlhTabWWj0nod7P6zFo7+9i64vg9C+LQDNy+ehZceb\n\ uOM3D4X+bkhwc8EFa1tcdHDCzc//pDOWOxm1JcVIsnNF7LgZ5M8GuZNtkD7F\n\ FnG2dii2c8Ajl3l44OuDrmV+6Jm7EJ2uLujesxQPwjej99RGdHwVgPKtvijb\n\ 5Im8dQuQ/OZ8hNo54tjEKQhxckFVYiKVRAeAbqgk0xz1WVloyMuTfkk6lYs6\n\ TUJnezsy1vweV155A4lenrjztw9R+Y8dKD28A1VHd6Dx+Kdo+mk3Gk/vQePP\n\ n6H+2A7Uh+xCU+xXaLzyNZqiv0bthT+h+swuVIXsRsWpz1B29FNk7lqL07Pc\n\ cPPb71B05Kgl6/TO9jZUXr6MsrBQZG3ciIx31+FufLykWYWs2XjpYwbukN5I\n\ cHFC9YWv0XLtOOpiT6I54RQepIfhXnoo7qWdQ09aKLozLqAn8zy6rv6MrpgT\n\ 6CLXOnLC0ZYbjibyvS7pDOriT6E+6Wc0p55B7pcf44qdCzI/24NyokoF/YuM\n\ ROm5c7i+aTMSg1YjiYzjHNL7N4mKTQUFsucqRf2mo/BYMOICvdF49SDuRoai\n\ 6kokHqXFoic9Gv9Tm4P/vZuDXwpS8aggE48L0/E0NRq/3IjF45QYPEyLQV9q\n\ HNqT49ARHYXW6EuoDif6XoxEB9ElzM0JP063RrCDA445u+D8HDKo3ecgztEN\n\ d2Z6oHiBD7K3f4z2+gZ5jFmi7Xoaqp28UPWKE2qDNtPfuilsEJSUlMgDg/yy\n\ ZbM+PT0dO3fuxKFDh9DU1BQnG/dbdgfFEH6HBTO4vaUNiWtWI2bFItTH/0i6\n\ /zz6rkbh18IUXPD2QUpgINrSI/HfjbfQV5COB7eS8bQkGU+yY9GXRJyTeAkP\n\ oyPQfekCus6fx/1LEWg5F4rG6Gh03UjFEY+ZODxrOoJdZyDM1RHZZOaXvumP\n\ Wl9/5Hr6ko77ihrcwgzurKpBtftyVL0xVzKaGE/mmKx+VVUVQkJCpF92zAjq\n\ hKSkJHzzzTeIiIhQGWyPouPByP7wQ+LV7bi5+zMUHDqM6tQbqLmZjcJPtiOf\n\ zO3Ut33QEH8ID1Iv4nFmNJ7WZCFpkS/KdVNxY6oTcvfuQHvBVTypysYjYvjD\n\ vDj0plwmxl9CLzG+mxjfdvE8miLPE8Q8i7b4WPRmpyF5mRcKAhehaeUStPkv\n\ Q4tPACr8/ZHu64fbB3/UdTAL2vNvS5bSv5afQydpGOvAyqKJT6mh9FesbOlw\n\ 6YOgRHExqiMvoik8FDWXo1AWHYOiyMso3LUL9TNno+e1aeh+dTo6Rk1Du4Mj\n\ Hs52wWMbZ9x6yxfV8QfJ3LuIexlX0Hc3HXE+/qgYZoe60Y64pZuGRJc5uPXj\n\ t+gpT8XDoiT0pEaiKzECnVcvoi0uAjWXwlAWegZ3z51CdxLpgps3UP7OW2hd\n\ uxId5LN7QxDqli1BhvtC3NhMBnFtbSezqHbxasnw+s0f6/qznHYzHdfkU225\n\ M+orK1BEgOfmO2tw18EFZeOnI3aMNWImzUC+rT0yJ1ijdsQ03H/dBl0uzujw\n\ no97s2Yhd7U/yqL+RmZrODozL6O7PAXRZFAWjLRDyXgXlE5wQcloOySPJu35\n\ LUbJmYPouBmD1oTzaIy/QJDhPMounEXhz8G4cyqYTJJEtN1MQ+XH63Hvuy3o\n\ 3bGGUN1S5Ph6I3PzFjrIdSNZn7dExip9Tka6NBfN6S9iKr3GJ6kZI386K+o/\n\ +UKBAvpJf5NyOUAwYzc3/nmfcDMtsxDL6Hep2IIhNx18FFeYIlKjpEyqY6Zv\n\ WLsRM9Y59BqzhgYq/CYr0RSlEulpQeMRSh1uIp/4VCuqnQQGdGpExrJYyBJN\n\ B47pXUGuD2StOYu3KJoS+Wo3kt+0nNXX6W8w7dMRStlgtDbjLEnqir6mVihi\n\ xqgUp39UKVpdNJTWGYxIq/575tn0N+dzlelOIdlSGJi0LV5f8KjOzJQTh2hM\n\ dF5GJzklMT1FmSukxkhMcia9l5IcLad/+/fvR15enplw+cSJE9i7d690mdED\n\ n0+CFOmPVqdlBGDlGEtShAij99N2SGWmjqWoDhVJRRNbaf0RkkoCL0t1uQ6U\n\ pmgZE85MGa5ShlMZa1c0jScC4iVelX6SW9lQG2MkloQCkqfpb24SvY/+ptcE\n\ taRrvB5xmeJxLZ8Rc82Yp5iWzEfGnclHERXHVFOaph4TO5N5kVus5UQmnTl+\n\ uCh+YCcOINFSIVruYzouzPsZO1Q7qs1vZGoaybirjdhaRsL3uzt3o89+Fvps\n\ HVBs44R8e0LYc2aidZoTup3d0L7AE91LfJHzfgAKL+xDfUIYCXIvobUoAeE+\n\ vrj2ig0yJjojfaIT+XNG9gRnXBs9A6Ek5bgctBJFIUdRGUeC3UuhKDp9AkUn\n\ jqAq9hwab6WiKTcNjfu24NefPsDDr9ag+i1/pHh5k1g9bBSzVkAJ6Y+yipkQ\n\ gIrXKERyLymxGrtGyFyBYVpOrzMvPS8/cfCj+ERjBRYa/hv4SUAwFfrzOjRC\n\ Ya1SOy0UyGQwyZFHdBjVnvHTwHoOp9GfGBXoDZb9bkxppr2qLxus3gozyR3J\n\ 79fSm+hpzoolFVkwQiT1J2gAThq8xuZitMSpW4yWDMak6MPnJyUGPAop0d+c\n\ lMyEeykUyIxAAXm4BKcUTqgcjn0MUqQ26CepLzITxziOZQygWPY/VPpNVaTX\n\ 6B9HbPpJRPCpK2goARa5hWk1QoJDqgkHf6oRxUB6D+cvpgqb7q+rVONt0za4\n\ JVwNfj+3lrdL6wkwLqs5wkg0tUxsll7jhCF6ifOY2DTlKz6gDdmCdYwZs0no\n\ FxVf8X7mfEXrMJYw6meZgOT2uJrkmqKmoWnG4+O3qvExGK8ayx4hypbqcJ2J\n\ O6Q26CcPb7QGGu0pOiKovuQ7pzE5i34VzbeL0BJ8GD1LFqDD0RVtnvNQu9wT\n\ rcsX4t6cBehd6I+M9QHIC/8rymLOoTwuDLW5cQj28kLwb61xdoIdcVDIeDvS\n\ FvmOc+NscWzkFPwwxQYRmzYi/9wJZAUfQd7pI6hICkfd7RTUF6Si9fAf8Hjf\n\ WnRt8MXtxZ64/hbJKe9W6ThviZClDrblFEG8RkGFk7/Idxw/yOdg0HQg3jJn\n\ GCGygNR0lyqEpg28KH2Zi6mTThsPaZmlUo/jqIKDTLARG6iLpXxwkLpyEYq7\n\ zejtMmiKjQ5AX5ZK2WB15srR5IMrpxQPUeksZn9UOd4sDVcEcSakDUBjz645\n\ 7SCR+FVBlnALaU7fE+o+eflMRu/jaMDRkaIIL7MSqEikK4pEPHAm9bTEchE0\n\ OmcYrpSJqvAQkIKTGHOztsxNNm2lyVTKLVYS1DHHKMkccRZXghfpEyorIzsZ\n\ QvMWeSrBLzPG5hkepyfxMm9N8PRwkyZZKGTK8hnDftIzlpX0m5snSOuvawUn\n\ KdG96CV2j5ICiyKYK3SDMZan5Iq3CSPQj1fQlZZMUqCluBfoge7VnmjbGoC2\n\ zcvRt8IPmZsCkBX6FxRdOIHiiJ9x90YUDnoswBejJuH7sdb4dpy1Bb4ba60b\n\ je/HTcO3r07FnpHj8a29E85/+AHuXAtFRUo4akuuozbnGlqPbMWv/3gPbR8u\n\ R46fN64HBY1mdolrLeq5q8+SlETBfbl+aYQtY9J4VavM5Fx9Vi4hGMX7UQCN\n\ F+aSIQpHcN7knjCImY3JhKihRlBDeFMLNR9IU3lMqiCR8psW7D4ziQykq5Ze\n\ GiLkOINxMNFTL1ZNgv2Ie2YWGdDNlhL1Me41GqB80JI8TTvpelnEwRbamEpy\n\ GUUSXqZFHCLCs08tsRzfuFhxuYf85puRfF2LX35OviBKcSTkxCdcVtjJkBgM\n\ wJaCnaE0MS8zUnCYshZpkIZJ35l3Schvmik4/jIxWh3DPSkapqG8Vl8K7tFp\n\ +YdraGFwjW/g0PRoIEvpPdQCutkj19W9Jn2MRmfJHbRvXo0ev3l4sJPQw963\n\ cG/zYmSu8kM+ST+qI0+iJjUCDfmJOLxwEb7/7RQcnGBjhQPjZ5DbD0yYQb/h\n\ LyMnY/9rUxAVFIjCmJ/QWpmGBpJxdJzZjn+e3YJ7nyxH0VJvJK8gGUd19Ujm\n\ L3Hi8ZlLQnolumeIr7WNYGkIKvpaz0UOygIZm9hsc5jj00tZIBsiLn6pjKbQ\n\ IrSuX0mT9hIYSRLIUmlgsBtk6CETdGCUOkj52zNnFFb65SWTKhruvQ2KDJRu\n\ JGXCgqcyHQcrzqL/vhiM/uoFTc4cQmar1k8u42t9cs7B855/Fz0IS1dyDXZm\n\ gU9/cs2SLZzxxQwR/zhDUMagMTeJJ01rYCmBCA9TOXDzqIqCjrBwZqbRjOky\n\ SyPKIKIUsSLAPxNfDFEWv6ihfG2ONyGqw3daZGuGaiVIok8tmMOFfQum0TAj\n\ jXimwRegDEWbomMTJNJfjzPHafmNZyMWTFchQ9GT/RAjW3kipt+v042RPkah\n\ PS8XPR8EonfLInR84I/eA79Hzq41KA77K5riQtCaEYn2kiSEePng/KszED3J\n\ mVh3ZZIT4Y3L4+wRM8EeN+Z5IHvbJqT94yuSUpxFT1ky2ooz0Hl2G/73/Cb0\n\ bVuM5rWLkOnvixub3ue8oWz3kynJo3kyfXlAwGNt6RKP91Qh6b+HPcylrV6G\n\ 7UTGS6CMYUb5gbibTL/rVbMUF7DkBt+YK6vx3GxhLtICUUyTQQadNxjr9WIU\n\ wYOogdrV4gIzllzS7mJ1dZojxLhxfacoWRXpHPqbRywk65MbG9rvkHphBhii\n\ h2BlUd2S7eCK01hcL6BTWgCL/vCeVqXJhjFqWijb3/R6v+nAfwTvuXge6spu\n\ EcJ1Y5C3MgI79l1yqpUJNBdXY14UzcXe688Hg8JuQzfLTQvrVjz0l89Qj0Tb\n\ yQPoWOeD1t0B6Pz7OuR88S7KzpPAJeoMWpIi0HnrKs57+yJ1tC1uTnSxoLvk\n\ JG/IHueEm2McUOQwGyXvrcb1b/YgNy4MrWWp6CxKRM+da+i4lYLOM9vwz6Or\n\ 8fTL5bi/KxAVfp5I9fJGyYlgtNXVDWe2KGE/mTnKLBmqTDyeHYiTSx1TvWwo\n\ 5/OBkged5lqtvQCUC3SlglF2eEm/DmJ0ak1mF1quXy95sSRA2NPhqae4Oq7y\n\ 5aD3x/tX+MXwfugg29XCewtWj4b7z6f7MKOsjCaJYieS38r9Rgt+oj6ESp6b\n\ FHjwZ8YwgWf7DA04EvI9cRF0k9hBni62sECXmS0YHGgs8UjfeehKv/MFBlLP\n\ StBITRvDFGoQtJK+85Ukqrc2aA2eL/Sc8FzrSZZMYeo8qhbb0TWtwTDReCMn\n\ qc80mYuO1vGHUwxX6ETHGjLJcy4u9dff/Tlt8ItMQzUXmXjeR7IECzXJtCQl\n\ ot1vPmrXLULVzmXI/Gw1qqP+jtZLZ9ARcwFdOQmI9vZD8XBbVI51MUP5WGfd\n\ WJSPcUL5aAfUTnVF3YplKNj3Oa6dOILrR4+iMTMeHXnX0Z6VgJ7CNHTfJkD9\n\ zSo8/moper9+G73v+aNz+QIUeXgg2X0hUtf9Hm01NaQHZD/yPWMOBIxWzNhB\n\ T4GM+luTeqk7Ewbr3nxumdyREDdlhTb4coSCl0bsww3itnM2YkDWD5g++2aE\n\ ppLyZoR4RF852SqsuAv+V1RiuY5KzYGwvD/VX3BvYoh201asA8WN6S4Wy/Dz\n\ XMRQbgyvQg21YlPGoEWpnkAmXCtOJLwfhN0KBUYUnjIcmDz66JdvLFk6YbDi\n\ QwFQta/NMgSlF8Ukg2908iVqccFJBFFODXSJur/lcmO6GWqSbpgsLaYScZ6q\n\ qy/T3rwgTYnbuOyWZ0tOrBSj+R/LJURlmN8U0uEnjwz9xX1LTz5xGBL8zvyl\n\ pk0mzuS+Cesrbswgtr3VPW9llF7247rB74APM7kDLuxvqZMbW7RejUPzGg9U\n\ rfVA4TYfpG0PQP2VA7gXE477KdHou5WMBC9/VFnZom6MM2pfc0bNKEc0jnVC\n\ +yJvlP/pj8i5eAolaQmoTUnArdNn0Jgehwfl6biffx0PirPIZxZq3vVF45rZ\n\ qF+zCK1LPdH5thda3d1RMmse0twXIHnVapT89BPJeGrZRNMvT7GQn89SM4YC\n\ bBLL85wxALmF+1hElpd82Iqu77DnKIStD6mq/gizSbqzUJbjpHPMVGMZ7Lgx\n\ wmEAMS+ScxjhAQnDbV+92paqdIc9W2EcXXMmMs1OVoa6qr08XMw1Ffzm+vB+\n\ E5iXmygSFpcgrwUx9fUMMrD6/TKUiSNY8ilxZZGG8wyTZTJDNVobkyelyNPq\n\ BFWddatNsTRiP5njZcOMD9QN1y+nCeu6PJgRqE9qnh/MozJpffEww+DW0V7n\n\ iy3KfgZlH+EcqHSdswoP94WzptJ1DkrKXoeFIophm7gmpU4GtNMmftbLkMeE\n\ c78s6ZssSeePagpJoSoq56dleZKhRWz9nYxVs5t+b0BDLtGLMreVqj3uIVKH\n\ wYQcT5g+ZDxcpWM/PWJlQG9CPqUcyDWkN+ODvlNVB31NuXOggTEYV76cQ8Ym\n\ YxMzkfzs0fTdf6FixUJUvk+I7CMv3PjjcjTG/oju2Ag8TIrGo4I0xC7yR9kw\n\ W2lqVb7qgEa3+aj5aAOyju5DXkwk2gtvoqsgk2Rb13En6hKqoy/iaWkKHhVd\n\ wy+VWei7Tchvy2K0LHZEzVw71Ds5onnOTNTYz0KZ/UxUuM5CgcscZM5dgIx3\n\ 1qE05Bxd9lMGk1aUy7cZzKQg1kIFwArFWSjIwB6X4YDEIdsIB0UapFyrf6xm\n\ hIQu9EaKSsJmvP75PZaJ6NMAS+UZDQEZjaNrPZRWKdvChmUiL1uKDYiJH0cR\n\ Ht/LB5eM0zS2BCk4REzAmM68lvwcSJeQgUhPzdL7RqmQXdxCo2YZEI0R6Rmb\n\ bqXqGAHd9S4TtNanjZRvyJ28mHeU6iFPSy1dlRBHkktkNQpP3giizEUHKcBs\n\ goWFA2RCyqZpgt7xPP2iShmuFdCDYxyphAdBVQ9+GoxgC5UnhUNvg6O9Ecpy\n\ EH/Ckcfb4sN77KSTsuokPhfK6VJ5JkZPeaw5biVP5+jCkWnKs1QoqkufrilY\n\ ZyiZPdghydS9KsElP+hGxXHI5Uwn7onzOgYPLyqhl/EDsfpnLeU1UipzqMKk\n\ 4uOMRk6x4qht+OQnT2cMs0Qt9w8xIDjOlfSYmNbhbrlsqKnnMLnWsiFDFEO0\n\ RBvyp5bjXtJjn4YbazyZY8/LyCcNSAhZV4eyNxej1MMVhW8tQFaQJ5I3LENz\n\ zI/ouRiOBwnReJCXivOLfJE8bBqK7WajfN1KZO/7AukhJ1EaFYmq6MuoSYhF\n\ S1Yy2nJSUHM1FnejIvAgNwGPcuLwtPgG+vIz0LDBB/eXu6LehSSGdjaod7BF\n\ 82RbVEyyQamrGyrtZ6PKbhaq7d1QOs8DBe9tQNXFS2i5U6ocJNa/jEAZzLyM\n\ zmA+i9UrUcNVuY3yHLjwbAXLw4x2Ylh7bIfDUrXQx7hNJ0I+b1tBVxm29QG+\n\ 0r78XLv4dgAKbfR+ylAGZepzsMpSXtBmZUrx/SblgUQDoxnki+8q4UZLSlnp\n\ UVlwsJyGSRCrXg+UPS899s9xk76RQdZWvjxKlaqILxSgsqmRbOFOLFPWJfrR\n\ VyFGy37oQ25ntHJqRHkxDWmTZ4r9yOgvczM8WalECEScyJkDmSAchzRMqeVw\n\ QnayidceqNJYZViSOs9AXpM0ykZqlBlSD4UyrXr8oRARPV/pp55YprWUOEpg\n\ Qo7SypMsajFap4yHadSboFHPUoREGzR8/SXq7VyQP8cNqY6uuOLoiMQgXzRJ\n\ kBiGThLCNyXF44z7QiTOd0f2lzuQevxHlMVeQsO1GNy9chEl4aG4FXIGBaHn\n\ UBUfhcrYSOSFnEZT3AV0JFzAg5vX0JtzA+UrfdC1wh21bs4onjsXOb5+KPhw\n\ K/I/+QS1sXGoS0gwI//iafCWEIeGK1GoiyF9fSvPcL1BOUEvQZVhSESnxEhD\n\ cNNPZ+MyW7GyuN/KW+azQIl8DWLm4Qb6GQR9amkOpi5M0WhFayWErXxomsLf\n\ y/OyZgP3PCVo/oTsqP/wbBCeif43zQb5FPs0NPz9B9yd7YYMG2fETLFH9BRb\n\ RFhPR0ygN2ou/4Dms6dQeuY0Ss+F4HLQKqTu/wqlVyPQU3gNDxty8KgxG/cq\n\ MqQtxYbkaJRGnEXWiWCkBx9D5vGjKDx1gpD8WbQnx6Iz+waKlvqh3HsBchcv\n\ RvE/DqNGwBpOIHris1A9QE++Kymd/hjBwANf5DZbZQ4ZbYzJ3hEFslBDUfBZ\n\ B/uAW2S0/jiN8c5eFaBPgdlpieedA+qDD+rDt2NNzgvTj/fT8alE7ebiNpJ8\n\ AMmMajKUGcYb6RIWxl5VammNZZPTg5/N4kG4OF+NJojUvNYs7WdavMKnRckd\n\ 1Gz8AKWT7XBhvDWiRlsj6XVrXJxqjeOTpiLUyx0VFw8g79BhFJ84jrLTJ1AR\n\ eRbNuYnoupOMrspUdNO/0mvoKExAc2o0WjJi0JEZibroEOTTHfkfDiCN3F94\n\ 7jQZiTfRW1mOHB935HrMR9GhQ7rRTE1jeLZQ4qp+AgxhWqjHobK/IPMHS7kJ\n\ M3bpl4ipTO5gowNOGjOD0oUUEPGp298old59ReYkXf0xWXmcJjXoY259aDaA\n\ NBObs+biiRDTk8BcqMyWMZUzUuKwf62fwf7GMzGAuZJS0oxV68VT459tTI/i\n\ 3Utf25qahtwDB5FCAp9cW1dcc/NAQsAKxHstQca6DYheHoATTi649MpUZP/5\n\ MzQmE5i/W44nLXV42tmEJ/da8eRhF3552oOnT3rwS18rnt5rwqP2Rjxqq8fj\n\ DvLXXI0HtZXouVuBltIy3G9twf/961+4G3wcqU6OSPX2RsWlS076jjNejJKP\n\ g+kHKe+nN031tpt8QZ4jYqDyu2cZHzaCF/nbotw0emCqRj2rQd47QaOeqqeG\n\ oKO5GfE+/ri+4i0Uf/8d6pKT0VxdRd+lyuBuMhrKypCwJABXRk/EERsbJHz8\n\ ARpOHkbDmWA0Rp5B+/UIdKZfQXtqJNpToqQXZ7ZdD0PrpZNoDP0JjeeOounM\n\ ETSePk6+n0B18FFU0deLbf8Y52bYI9baBlc9F6Ei4qLuXxquqhdVJgDQ0YFK\n\ gsqdbS3ME5NRmZmNrAM/4vzqVdhnPQln585AwxIP1G5Ygo796/H44Ab8emkn\n\ fo3fi18jtuOXxI/x5ML76Nu2EJ1B89H6tita/BzQ4D8bjW/OQelcV2SSaD2e\n\ qBZubY/wqfTVti4oOXlSpSI/lsBUlB0+EVFrVuPg5InI8ZyJJq+FaN+6Ck8O\n\ bcWjr9bi0Q8b8OSv6/Fr8Cb8+vN6PNm/Cvd3+aNniTP6Ns1Hd+As1Pi5o2nh\n\ bNR7zcGdma7Id3BBPAmbTr9hh8iJ1kjfuEl+j2ujLHc8c0NLYxNO+vri9NiJ\n\ qJ/ngdZ3AtC7YzUe7X4XT/+yDj3bA/FgbxAefuiPp38OwMPvV6FrTyBal7ig\n\ eb4tOjwI+vl5osp1Nmrf9Ea5+zyUOrqg2G0mkmc4Iub16UhYtkIaHZL8BrX8\n\ 0sREhFlPQ661A5rm+aJv3Sr0blmBe+8Hou2PK1AX6IvG1f5oD3THw93L8ODL\n\ lehY44023zlodLVDtb0NKny8Ubr/b6iOikL+F18gY81a3CI+vOPiipRJ9gh+\n\ dSpu7tuvIf81lF2OQuIMG1QtWoCuZUtx390HTUErUbxlE25/81+4c/wYcrZs\n\ Rr6fNxoCFuH+uoXofs8X7QtmoWmWI8odnVEVdo6vfrXV1aI8LAx5dP7MIvA1\n\ wQah8xfRlxDL4utF8UMQt349MkhX9Xj7oG91AFo/24P65CTpJcb8rEhrZSVu\n\ /P495BCTmgM9cW+VLzrmzkKbvT1uvb0C9dnZyrkQOjlLyAhLXuiDmOmOyP7+\n\ Lyq54xgaNNzKkyZxrfN84soVaE9PQ2dTkyWLkqjI9I0bUTh7DprnupOU1A31\n\ r0yTUkOiGj8kVUOmftZH2xDn6UVazJcE1YmCLJCz53NkzpqHSp/laLqZO5TJ\n\ r8vIkN6uVjV/NmocnFE+wwnlISHD2F3UjOxPd+Hm13+WJi8trpUb5u/tll7d\n\ /PZbyF+8FLW3bg1nDig+egy5JDFutnFAddC70glBHsXVEn7pbGuTfklN1ohN\n\ mqP01ClkBAag/k4Zu8eCdFwuUhb5osHaEWXvvS/d1i3f9joPQAh1pW7YiKqU\n\ FOXFpbQs65NPUUJorGj7DvE2Lq2zpUWBex6pVF9PRtrcBfRdvDrxHg79tF+S\n\ V7yN1PXrVddt2fXMP27D9VVr9BbKzet0v/l/ed5zfg=="], ImageSize -> {516, 41}, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}]], "DockedCell", Background -> GrayLevel[0.866682], CellFrame -> {{0, 0}, {0, 4}}, CellFrameColor -> RGBColor[0.690074, 0.12871, 0.194598], CellMargins -> {{0, 0}, {-3, 0}}, CellFrameMargins -> 0], Cell[ BoxData[ GridBox[{{ Cell[ GraphicsData[ "CompressedBitmap", "eJzVV0tIVFEYvs4dx9FkFtZCAh+LyhLMDDNNXJio+UILKqOVqOHbUtEEH5BR\n\ ahmC2MuQHhNFJpJIUFRChK4qNwWuWrSsdfjI/s5/zn/unHvnTpoMRBfunfP4\n\ H9/3/+f850xJRVtNdWNFW21lRXx+S8XZmtrK1vi85hY2pIdomjbP3th4DdvA\n\ mvSZh56eHja5/k8W/9HB6/XC7Owsvto5/hVjbJZLbDWLo+hSezS+TBy/Yux/\n\ E9f5NxJWZmoAHxzHZ/l+AW+vvD5v7gs5B3ac2NLchg7OYXvt+2f4uTgl9bis\n\ FgGrC3f4lDSDbXzWvr71M625TBbx/fXjG6rIaRWwAkAnVoq24CjAhv+RIP1q\n\ DlKTiFHTwb9ibKk3Bo0LN+y7fCsT6CG5UAOfZIjyWzaTG5d/bibKEYLw5BRd\n\ a/wiueTq3CAHh68pS/07DdKYKUbKgYMsSxhmjIl0im1uws6L05QlnmuBCR34\n\ SZuzYjcmGLsDYjcx13mX4GsCf7iBX8UuVQkNk2Wj6IzlkVzRmBJsxsCIwUxN\n\ RJC2FaHAFWEQ2kicXAYhjAs3ycAzdaeMxXAyX6vMMsafqXgC7RHeRjMoz+NF\n\ Y5vKlp1cqB1ZDLHE6+Z4/ZajL0e6ylqpAhaImH2qKWJvBydFGBSjINikSG58\n\ dE96tPEjjDG5uHABYt5k6aMFt5EcybXM65BdlQzzi49EzbyJZSCgelSo9hTt\n\ 4Qp1p9W9bo2Cb2tR6ZSrNHiJQQhqEG33TpSMr6gdbJHZ1j1S5cUDNwIWaEZa\n\ nl6sv15+jLpCtZHL+GqGQ6lkan4kCUIhuEYHBB2Isx1w7kqteCy7NrtJdRPs\n\ 3aSr4aIdkWCAlgTQu1wfvLpTVmyzphBSzhm+fLk+ydodV4H8oCwdEbhee2NY\n\ miU2tfxLvwYuSjO2KVS6Uu4s8Im+x49+IAoWug5+ZfCYFp9SP6w5DMqBFeq/\n\ 6VgdUWs/lQy6+viOS/mYyoZLVB1WWWRBpEucTrcHyzVQnA2hKg15mTQOFlzx\n\ SsHhQXKSN3nx5BH27QKlZDtNu0m5TkpuFqAmVUnGvwYK16Yrn+j/5Y3vn/01\n\ iCfx8YIi6G9q4r3tmzNxLy8fBmtrTSY2+OcqjsQvtrfDo+wcGCsp1R6qU064\n\ 0tAAk4eywJuTC30dHV7z7EBjIzxOTYfpjCwYqK/3kL2e7m7D1YjQiOE/Lj41\n\ erIchhjiuwl74d3+DBg/eiySNK8yg7dPnYberi5tVGjGkuaD3HzwVp+BqT1J\n\ 8CElDV4UF8JwVWUEaV5jmpOHc2Gkqkq7rmqGwQSj9jEtHV4lJ8JcUip8Kj0C\n\ 02VlcKGzk50YgslQfT08O5AJT7Ky0TlZ2EbGL7e2wmBTs+TAvm641NcHLwtL\n\ YDFqBzzdvQvepxyEL8VFsFBUDDfr6sIUw2/2ZcDzuEQYO37ihjCshfwGPGMf\nPw=="], Evaluatable -> False, ImageSize -> {199, 30}, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}], ButtonBox[ Cell[ GraphicsData[ "CompressedBitmap", "eJylVb1uAjEMDuSAUqTr1J234A3aqQ9xQpVgqFpRZkZWNkZWRkZmRkZmVkZ2\n\ xtSfY0e+9MrSSLkY27E//4W3aj55/6jm03E1fJ1VX5Pp+Hv48jkjlm8550a0\n\ y6EDHYiUzygsFgsS1o42Hw9hs9mE6/UasHCu12tI+KTVYbUy7Ha7pIZ1uVys\n\ GtPL5ZJpmLzdbrgTvXgrol+0XBHO5zOr4irtyO7zTWHx3u/3CRTo1Wol4FMM\n\ WBBB5Xg8MlDQsE6rYLUnjkFVIdputwm7qCYvigLmCCi5AvSSZapnbUFPY89l\n\ hN4zhE44HA4J3el0EtMcjHusAUHG8gTX4ikZIwxqpmwM1gwcqh7xC8k//CtU\n\ YrcFIthaXS1Z7IJuKiMyqcBI3pIIvHUtcRU5rDYLe4zKZgvVkLS4qJObw3eA\n\ +qeIkQG9Z20obm0/U2lpP5/CB09jRxW18mhPyoO7F9xzY87zNrTIgF56ovEO\n\ PGri8BsoRSeyB7U2w7ZtbNsOg1JIYCioBixtczewwZ+BWW9IEcrVES8NerUu\n\ gGcZqMju/womz5vtPnWNHOqMUkf+v0AohmIDDT19T/I7pBc90Rd3ZBycrY5W\n\ AEOn49JUHW+qowMKm6STXgVvX4GUTfsqEB1no8uXbTZBk3EdJ9RLbsgY9FJj\n\ 6kaXyMMRvelzjWRpIInt01MRX+KGPxo5XOsHSMiAwg=="], Evaluatable -> False, ImageSize -> {55, 14}, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}], ButtonData -> { URL["http://store.wolfram.com/view/app/playerpro/"], None}, ButtonNote -> "http://store.wolfram.com/view/app/playerpro/"], Cell[ GraphicsData[ "CompressedBitmap", "eJzzTSzJSM1NLMlMTlRwL0osyMhMLlZwyy8CCjEzMjAwMAExnwIDiP0fyIQS\n\ jP9bWloY/8+ZPZuBgfF/V2cn4//VK1cOFnZ7ezvj/+XLlgFdyggAJaVbgQ==\n"], Evaluatable -> False, ImageSize -> {2, 14}, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}], ButtonBox[ Cell[ GraphicsData[ "CompressedBitmap", "eJyVVj1vIjEQ9bIBRKKjyClFOn5NUvEjUBQpKU6JctSUtHSUtJSU1JSU1LSU\n\ 9JTOPHued0x2SWJpWXvGOx/Pb8YMR+OX53+j8evTaPD4MXp/eX36P3h4+xBR\n\ WTjnhvL0Bw5zL1P9GfrJZCLK7NUKr9LP53OPgVWQlVi5O386nbC0G/x0Og3z\n\ xWKRybHGgN7KMYcdjPV67TrBzZXfbreeQ+aMBQOfYMWty+UybZV5S5XH4zGJ\n\ xTK9xeB7/nA4BBEfbFHLYT6bzVyRA8EcEhDuPllnvjZXmiJOVs78VqtVJocN\n\ yJgUwrgKvnrBFrISWXhgd7PZhO8Uc9dVUBQM2onhdlOocKHm6V5SgoFekFlk\n\ 4AJuMd/tdn6/33+PTJlYUMn6GQtgktFbBJAVdOKG8lJNGnIlULCVx3seLfd2\n\ lBLWjdFH8+2MuwSlc6YDcMpfAQHGm0GIVCsDaJplxMVdJ5D5EWuCbz03Zg4T\n\ yErC0My7aRuzIWUS/PJLgKtDaEShpZlCDVcEsYq6zlysVDJczqxAZV1ixt+s\n\ Zs5xYG2wPCmHZzACMuiwjqSNfqDT2pAcILu5BFAWQwVqvwmcVMsYOAzwwcTX\n\ UpgotgAhXFJAgCoQ+29L5zYLzCZCOZIHORko25/dI+B0GsqGn3wtm95FTBRH\n\ V9ak09Zf08vYD6V2gLoTNrDrEV3Lip8wxXRXASvylMcANlBmbqrY6kgTUAlG\n\ 2FYtNGcBpK7zHSQSmCMnTNCNPZaUZgMEpNpj1YJekikdFkidTNLUkm2nAmBj\n\ QfcutYNgv82ClxIquO4ilghrG1vF0z/Z5U40eDEiFl72X2PN7cWLzNX+M3HF\nJ/Rd8Mk="], Evaluatable -> False, ImageSize -> {77, 14}, ImageMargins -> {{0, 0}, {0, 0}}, ImageRegion -> {{0, 1}, {0, 1}}], ButtonData -> { URL[ "http://www.wolfram.com/solutions/interactivedeployment/\ licensingterms.html"], None}, ButtonNote -> "http://www.wolfram.com/solutions/interactivedeployment/\ licensingterms.html"]}}, ColumnsEqual -> False, GridBoxAlignment -> {"Columns" -> {{Center}}, "Rows" -> {{Center}}}]], "DockedCell", Background -> GrayLevel[0.494118], CellFrame -> {{0, 0}, {4, 0}}, CellFrameColor -> RGBColor[0.690074, 0.12871, 0.194598], CellMargins -> 0, CellFrameMargins -> {{0, 0}, {0, -1}}, ButtonBoxOptions -> {ButtonFunction :> (FrontEndExecute[{ NotebookLocate[#2]}]& ), Appearance -> None, ButtonFrame -> None, Evaluator -> None, Method -> "Queued"}]}, {}], PrintingCopies->1, PrintingPageRange->{1, 2}, PageHeaders->{{Inherited, Inherited, Inherited}, {None, Inherited, None}}, PageFooters->{{Inherited, Inherited, Inherited}, { Cell[ TextData[{ CounterBox["Page"]}], "PageNumber"], Cell[ TextData["11/10/6"]], Cell[ TextData[{ ValueBox["FileName"]}], "Header"]}}, ShowSelection->True, TrackCellChangeTimes->False, Magnification:>FEPrivate`If[ FEPrivate`Equal[FEPrivate`$VersionNumber, 6.], 2., 2. Inherited], FrontEndVersion->"8.0 for Microsoft Windows (32-bit) (October 6, 2011)", StyleDefinitions->Notebook[{ Cell[ StyleData[StyleDefinitions -> "Default.nb"]]}, Visible -> False, FrontEndVersion -> "8.0 for Microsoft Windows (32-bit) (October 6, 2011)", StyleDefinitions -> "PrivateStylesheetFormatting.nb"], PrivateNotebookOptions -> {"NotebookAuthor" -> ""} ] (* End of Notebook Content *) (* Internal cache information *) (*CellTagsOutline CellTagsIndex->{} *) (*CellTagsIndex CellTagsIndex->{} *) (*NotebookFileOutline Notebook[{ Cell[CellGroupData[{ Cell[579, 22, 55, 1, 164, "Title"], Cell[637, 25, 68, 1, 99, "Subtitle"], Cell[708, 28, 130, 4, 94, "Subsubtitle"], Cell[CellGroupData[{ Cell[863, 36, 213, 7, 57, "Input", CellID->29643164], Cell[1079, 45, 91, 1, 82, "Output"] }, Open ]], Cell[1185, 49, 30, 0, 57, "Input"], Cell[1218, 51, 102, 3, 88, "Text"], Cell[CellGroupData[{ Cell[1345, 58, 135, 3, 140, "Section"], Cell[1483, 63, 4503, 73, 1309, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[6023, 141, 142, 3, 76, "Section"], Cell[6168, 146, 13074, 264, 7238, "Text"], Cell[19245, 412, 2183, 37, 1496, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[21465, 454, 90, 2, 76, "Section"], Cell[21558, 458, 1385, 27, 385, "Text"], Cell[22946, 487, 693, 19, 253, "Text"], Cell[23642, 508, 309, 9, 92, "Input"], Cell[CellGroupData[{ Cell[23976, 521, 92, 3, 73, "Subsection"], Cell[24071, 526, 138, 4, 55, "Text"], Cell[CellGroupData[{ Cell[24234, 534, 137, 4, 50, "Subsubsection"], Cell[CellGroupData[{ Cell[24396, 542, 2301, 68, 330, "Input"], Cell[26700, 612, 138, 4, 57, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[26887, 622, 206, 7, 52, "Subsubsection"], Cell[27096, 631, 1636, 51, 228, "Input"], Cell[28735, 684, 547, 18, 126, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[29331, 708, 177, 5, 53, "Subsection"], Cell[CellGroupData[{ Cell[29533, 717, 124, 2, 50, "Subsubsection"], Cell[29660, 721, 762, 22, 220, "Text"], Cell[CellGroupData[{ Cell[30447, 747, 2957, 79, 500, "Input"], Cell[33407, 828, 84, 2, 57, "Output"], Cell[33494, 832, 237, 5, 78, "Print"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[33792, 844, 172, 5, 53, "Subsection"], Cell[33967, 851, 1219, 23, 286, "Text"], Cell[CellGroupData[{ Cell[35211, 878, 87, 1, 50, "Subsubsection"], Cell[35301, 881, 201, 6, 88, "Text"], Cell[35505, 889, 187, 7, 57, "Input"], Cell[CellGroupData[{ Cell[35717, 900, 243, 8, 57, "Input"], Cell[35963, 910, 74, 2, 57, "Output"] }, Open ]], Cell[36052, 915, 290, 11, 88, "Text"], Cell[CellGroupData[{ Cell[36367, 930, 1672, 54, 262, "Input"], Cell[38042, 986, 712, 21, 92, "Output"], Cell[38757, 1009, 119, 3, 57, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[38925, 1018, 172, 7, 52, "Subsubsection"], Cell[CellGroupData[{ Cell[39122, 1029, 4438, 138, 466, "Input"], Cell[43563, 1169, 765, 12, 126, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[44365, 1186, 3313, 90, 602, "Input"], Cell[CellGroupData[{ Cell[47703, 1280, 1187, 34, 146, "Print"], Cell[48893, 1316, 448, 12, 43, "Print"] }, Open ]] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[49402, 1335, 172, 7, 52, "Subsubsection"], Cell[CellGroupData[{ Cell[49599, 1346, 6127, 194, 602, "Input"], Cell[55729, 1542, 1103, 17, 194, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[56869, 1564, 3011, 80, 466, "Input"], Cell[59883, 1646, 294, 7, 43, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[60226, 1659, 172, 7, 52, "Subsubsection"], Cell[CellGroupData[{ Cell[60423, 1670, 6462, 206, 636, "Input"], Cell[66888, 1878, 1182, 19, 194, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[68107, 1902, 3696, 100, 432, "Input"], Cell[71806, 2004, 204, 5, 43, "Print"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[72071, 2016, 123, 3, 53, "Subsection"], Cell[CellGroupData[{ Cell[72219, 2023, 116, 2, 50, "Subsubsection"], Cell[72338, 2027, 788, 12, 286, "Text"], Cell[CellGroupData[{ Cell[73151, 2043, 1889, 56, 219, "Input"], Cell[75043, 2101, 112, 3, 82, "Output"] }, Open ]], Cell[75170, 2107, 1010, 33, 160, "Input"], Cell[76183, 2142, 401, 9, 154, "Text"], Cell[76587, 2153, 746, 22, 160, "Input"], Cell[77336, 2177, 525, 14, 160, "Input"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[77910, 2197, 104, 3, 53, "Subsection"], Cell[78017, 2202, 346, 10, 121, "Text"], Cell[CellGroupData[{ Cell[78388, 2216, 2236, 63, 330, "Input"], Cell[80627, 2281, 541, 15, 78, "Print"], Cell[81171, 2298, 112, 3, 57, "Output"], Cell[81286, 2303, 1738, 60, 475, "Output"] }, Open ]], Cell[83039, 2366, 178, 8, 55, "Text"], Cell[83220, 2376, 397, 13, 57, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[83654, 2394, 160, 5, 53, "Subsection"], Cell[83817, 2401, 1876, 30, 517, "Text"], Cell[CellGroupData[{ Cell[85718, 2435, 807, 22, 160, "Input"], Cell[86528, 2459, 119, 2, 57, "Output"], Cell[86650, 2463, 2629, 72, 254, "Output"] }, Open ]], Cell[89294, 2538, 256, 5, 121, "Text"], Cell[CellGroupData[{ Cell[89575, 2547, 335, 10, 57, "Input"], Cell[89913, 2559, 10463, 228, 778, "Output"] }, Open ]], Cell[100391, 2790, 95, 2, 54, "Text"], Cell[CellGroupData[{ Cell[100511, 2796, 1874, 57, 330, "Input"], Cell[CellGroupData[{ Cell[102410, 2857, 263, 6, 43, "Print"], Cell[102676, 2865, 91, 1, 43, "Print"], Cell[102770, 2868, 108, 2, 43, "Print"] }, Open ]] }, Open ]], Cell[102905, 2874, 88, 2, 55, "Text"], Cell[CellGroupData[{ Cell[103018, 2880, 3355, 99, 466, "Input"], Cell[106376, 2981, 126, 3, 43, "Print"], Cell[106505, 2986, 84, 2, 57, "Output"], Cell[106592, 2990, 138, 4, 57, "Output"], Cell[106733, 2996, 211, 6, 78, "Print"] }, Open ]], Cell[106959, 3005, 787, 17, 253, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[107783, 3027, 111, 4, 53, "Subsection"], Cell[107897, 3033, 748, 24, 187, "Text"], Cell[108648, 3059, 260, 7, 88, "Text"], Cell[CellGroupData[{ Cell[108933, 3070, 1773, 60, 219, "Input"], Cell[110709, 3132, 3196, 97, 407, "Output"], Cell[113908, 3231, 2324, 48, 287, "Output"], Cell[116235, 3281, 1398, 35, 232, "Output"], Cell[117636, 3318, 978, 26, 167, "Output"] }, Open ]], Cell[118629, 3347, 156, 3, 88, "Text"], Cell[118788, 3352, 524, 17, 92, "Input"], Cell[CellGroupData[{ Cell[119337, 3373, 329, 10, 57, "Input"], Cell[119669, 3385, 6264, 151, 349, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[125970, 3541, 298, 9, 57, "Input"], Cell[126271, 3552, 1096, 27, 95, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[127428, 3586, 116, 3, 126, "Section"], Cell[127547, 3591, 2436, 35, 748, "Text"], Cell[129986, 3628, 4474, 115, 636, "Input"], Cell[134463, 3745, 156, 4, 88, "Text"], Cell[134622, 3751, 4491, 115, 602, "Input"], Cell[CellGroupData[{ Cell[139138, 3870, 529, 15, 92, "Input"], Cell[CellGroupData[{ Cell[139692, 3889, 38, 0, 43, "Print"], Cell[139733, 3891, 1149, 30, 158, "Print"], Cell[140885, 3923, 842, 23, 188, "Print"], Cell[141730, 3948, 1010, 24, 146, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[142789, 3978, 855, 22, 160, "Input"], Cell[CellGroupData[{ Cell[143669, 4004, 36, 0, 43, "Print"], Cell[143708, 4006, 1325, 37, 158, "Print"], Cell[145036, 4045, 917, 25, 188, "Print"], Cell[145956, 4072, 1102, 26, 146, "Print"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[147107, 4104, 948, 24, 160, "Input"], Cell[CellGroupData[{ Cell[148080, 4132, 38, 0, 43, "Print"], Cell[148121, 4134, 2369, 52, 158, "Print"], Cell[150493, 4188, 2921, 65, 194, "Print"], Cell[153417, 4255, 1400, 32, 214, "Print"] }, Open ]] }, Open ]], Cell[154844, 4291, 1264, 33, 352, "Text"], Cell[CellGroupData[{ Cell[156133, 4328, 342, 11, 82, "Input"], Cell[156478, 4341, 941, 24, 117, "Output"] }, Open ]], Cell[157434, 4368, 999, 32, 117, "Input"], Cell[CellGroupData[{ Cell[158458, 4404, 115, 3, 82, "Input"], Cell[158576, 4409, 1587, 31, 253, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[160200, 4445, 112, 3, 82, "Input"], Cell[160315, 4450, 1588, 31, 253, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[161940, 4486, 406, 13, 117, "Input"], Cell[162349, 4501, 1465, 29, 253, "Output"], Cell[163817, 4532, 96, 2, 82, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[163962, 4540, 73, 2, 76, "Section"], Cell[164038, 4544, 258, 6, 88, "Text"], Cell[164299, 4552, 102, 2, 55, "Text"], Cell[CellGroupData[{ Cell[164426, 4558, 641, 17, 151, "Input"], Cell[165070, 4577, 742, 22, 191, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[165849, 4604, 644, 18, 151, "Input"], Cell[166496, 4624, 673, 18, 191, "Output"] }, Open ]], Cell[167184, 4645, 484, 7, 187, "Text"], Cell[CellGroupData[{ Cell[167693, 4656, 3304, 86, 491, "Input"], Cell[171000, 4744, 2075, 59, 491, "Output"] }, Open ]], Cell[173090, 4806, 71, 2, 55, "Text"], Cell[CellGroupData[{ Cell[173186, 4812, 686, 16, 219, "Input"], Cell[173875, 4830, 1729, 53, 262, "Output"] }, Open ]], Cell[175619, 4886, 310, 5, 121, "Text"], Cell[CellGroupData[{ Cell[175954, 4895, 710, 16, 185, "Input"], Cell[176667, 4913, 1373, 33, 219, "Output"] }, Open ]], Cell[178055, 4949, 130, 3, 55, "Text"], Cell[CellGroupData[{ Cell[178210, 4956, 775, 17, 185, "Input"], Cell[178988, 4975, 1646, 40, 287, "Output"] }, Open ]], Cell[180649, 5018, 61, 2, 55, "Text"], Cell[CellGroupData[{ Cell[180735, 5024, 932, 24, 219, "Input"], Cell[181670, 5050, 1759, 46, 287, "Output"] }, Open ]], Cell[183444, 5099, 84, 2, 55, "Text"], Cell[CellGroupData[{ Cell[183553, 5105, 639, 15, 151, "Input"], Cell[184195, 5122, 1260, 32, 253, "Output"] }, Open ]], Cell[185470, 5157, 951, 14, 286, "Text"], Cell[186424, 5173, 1340, 35, 330, "Input"], Cell[187767, 5210, 207, 4, 88, "Text"], Cell[CellGroupData[{ Cell[187999, 5218, 2643, 72, 423, "Input"], Cell[190645, 5292, 781, 21, 257, "Output"], Cell[191429, 5315, 290, 6, 117, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[191756, 5326, 2601, 69, 423, "Input"], Cell[194360, 5397, 752, 18, 317, "Output"], Cell[195115, 5417, 180, 4, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[195332, 5426, 1781, 52, 321, "Input"], Cell[197116, 5480, 748, 18, 317, "Output"], Cell[197867, 5500, 353, 10, 82, "Output"], Cell[198223, 5512, 353, 10, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[198613, 5527, 1090, 31, 219, "Input"], Cell[199706, 5560, 615, 20, 257, "Output"], Cell[200324, 5582, 363, 7, 82, "Output"] }, Open ]], Cell[200702, 5592, 72, 2, 55, "Text"], Cell[CellGroupData[{ Cell[200799, 5598, 282, 8, 82, "Input"], Cell[201084, 5608, 117, 3, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[201238, 5616, 1889, 50, 389, "Input"], Cell[203130, 5668, 291, 11, 167, "Output"], Cell[203424, 5681, 684, 19, 117, "Output"] }, Open ]], Cell[204123, 5703, 197, 4, 88, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[204357, 5712, 92, 2, 76, "Section"], Cell[204452, 5716, 298, 7, 121, "Text"], Cell[CellGroupData[{ Cell[204775, 5727, 92, 1, 50, "Subsubsection"], Cell[204870, 5730, 399, 8, 121, "Text"], Cell[CellGroupData[{ Cell[205294, 5742, 5085, 135, 797, "Input"], Cell[210382, 5879, 3119, 89, 559, "Output"] }, Open ]], Cell[213516, 5971, 468, 10, 253, "Text"], Cell[213987, 5983, 322, 9, 88, "Text"], Cell[CellGroupData[{ Cell[214334, 5996, 4916, 134, 1001, "Input"], Cell[219253, 6132, 3119, 89, 559, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[222421, 6227, 104, 1, 50, "Subsubsection"], Cell[CellGroupData[{ Cell[222550, 6232, 279, 9, 82, "Input"], Cell[222832, 6243, 38, 0, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[222907, 6248, 4930, 134, 1001, "Input"], Cell[227840, 6384, 3136, 89, 559, "Output"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[231037, 6480, 62, 1, 76, "Section"], Cell[231102, 6483, 7617, 157, 2005, "Text"], Cell[CellGroupData[{ Cell[238744, 6644, 93, 3, 73, "Subsection"], Cell[CellGroupData[{ Cell[238862, 6651, 131, 3, 50, "Subsubsection"], Cell[238996, 6656, 377, 12, 121, "Text"], Cell[CellGroupData[{ Cell[239398, 6672, 1840, 54, 253, "Input"], Cell[241241, 6728, 112, 3, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[241390, 6736, 29, 0, 57, "Input"], Cell[241422, 6738, 2710, 63, 398, "Output"] }, Open ]] }, Open ]], Cell[CellGroupData[{ Cell[244181, 6807, 98, 2, 50, "Subsubsection"], Cell[244282, 6811, 146, 3, 88, "Text"], Cell[CellGroupData[{ Cell[244453, 6818, 1260, 34, 253, "Input"], Cell[245716, 6854, 1263, 37, 311, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[247016, 6896, 1286, 35, 228, "Input"], Cell[248305, 6933, 1122, 32, 286, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[249464, 6970, 1286, 35, 228, "Input"], Cell[250753, 7007, 1276, 37, 320, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[252066, 7049, 1286, 35, 228, "Input"], Cell[253355, 7086, 1155, 32, 320, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[254547, 7123, 1291, 35, 228, "Input"], Cell[255841, 7160, 1075, 30, 286, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[256953, 7195, 1240, 34, 194, "Input"], Cell[258196, 7231, 966, 27, 252, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[259199, 7263, 1342, 35, 262, "Input"], Cell[260544, 7300, 1229, 26, 228, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[261810, 7331, 1242, 31, 219, "Input"], Cell[263055, 7364, 1531, 45, 249, "Output"] }, Open ]], Cell[264601, 7412, 739, 20, 160, "Input"], Cell[265343, 7434, 740, 20, 160, "Input"], Cell[266086, 7456, 740, 20, 185, "Input"], Cell[266829, 7478, 439, 11, 121, "Text"], Cell[CellGroupData[{ Cell[267293, 7493, 188, 6, 57, "Input"], Cell[267484, 7501, 820, 19, 250, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[268341, 7525, 215, 7, 57, "Input"], Cell[268559, 7534, 820, 19, 250, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[269416, 7558, 288, 8, 57, "Input"], Cell[269707, 7568, 1572, 41, 318, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[271316, 7614, 215, 7, 57, "Input"], Cell[271534, 7623, 820, 19, 250, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[272391, 7647, 288, 8, 57, "Input"], Cell[272682, 7657, 1572, 41, 318, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[274291, 7703, 288, 8, 57, "Input"], Cell[274582, 7713, 1576, 41, 318, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[276195, 7759, 188, 6, 82, "Input"], Cell[276386, 7767, 1159, 26, 574, "Output"] }, Open ]] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[277606, 7800, 89, 3, 53, "Subsection"], Cell[277698, 7805, 912, 24, 253, "Text"], Cell[CellGroupData[{ Cell[278635, 7833, 51, 0, 50, "Subsubsection"], Cell[278689, 7835, 152, 3, 88, "Text"], Cell[CellGroupData[{ Cell[278866, 7842, 2475, 74, 355, "Input"], Cell[281344, 7918, 802, 24, 151, "Output"] }, Open ]], Cell[282161, 7945, 197, 5, 88, "Text"], Cell[CellGroupData[{ Cell[282383, 7954, 1622, 44, 355, "Input"], Cell[284008, 8000, 2361, 70, 404, "Output"] }, Open ]], Cell[286384, 8073, 1598, 43, 330, "Input"], Cell[287985, 8118, 1485, 38, 330, "Input"], Cell[289473, 8158, 1451, 37, 330, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[290961, 8200, 52, 0, 34, "Subsubsection"], Cell[291016, 8202, 2123, 65, 2147483647, "Input"], Cell[293142, 8269, 305, 11, 2147483647, "Text"], Cell[293450, 8282, 835, 25, 2147483647, "Input"], Cell[294288, 8309, 109, 3, 2147483647, "Text"], Cell[294400, 8314, 1021, 25, 2147483647, "Input"], Cell[295424, 8341, 835, 25, 2147483647, "Input"], Cell[296262, 8368, 1022, 25, 2147483647, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[297321, 8398, 53, 0, 34, "Subsubsection"], Cell[297377, 8400, 2809, 77, 2147483647, "Input"], Cell[300189, 8479, 779, 24, 2147483647, "Input"], Cell[300971, 8505, 1158, 29, 2147483647, "Input"], Cell[302132, 8536, 1134, 28, 2147483647, "Input"], Cell[303269, 8566, 1158, 29, 2147483647, "Input"], Cell[304430, 8597, 1158, 29, 2147483647, "Input"], Cell[305591, 8628, 1158, 29, 2147483647, "Input"], Cell[306752, 8659, 66, 1, 2147483647, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[306855, 8665, 49, 0, 34, "Subsubsection"], Cell[306907, 8667, 2224, 69, 2147483647, "Input"], Cell[309134, 8738, 679, 20, 2147483647, "Input"], Cell[309816, 8760, 782, 23, 2147483647, "Input"], Cell[310601, 8785, 705, 21, 2147483647, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[311343, 8811, 48, 0, 34, "Subsubsection"], Cell[311394, 8813, 1282, 38, 2147483647, "Input"], Cell[312679, 8853, 2523, 78, 2147483647, "Input"], Cell[315205, 8933, 769, 23, 2147483647, "Input"], Cell[315977, 8958, 705, 21, 2147483647, "Input"], Cell[316685, 8981, 782, 23, 2147483647, "Input"], Cell[317470, 9006, 705, 21, 2147483647, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[318212, 9032, 49, 0, 34, "Subsubsection"], Cell[318264, 9034, 2809, 77, 4544, "Input"], Cell[321076, 9113, 1227, 36, 1824, "Input"], Cell[322306, 9151, 974, 28, 1280, "Input"], Cell[323283, 9181, 1141, 34, 1552, "Input"], Cell[324427, 9217, 1141, 34, 7008, "Input"], Cell[325571, 9253, 1141, 34, 7008, "Input"] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[326761, 9293, 97, 3, 53, "Subsection"], Cell[326861, 9298, 246, 4, 121, "Text"], Cell[CellGroupData[{ Cell[327132, 9306, 491, 15, 117, "Input"], Cell[327626, 9323, 220, 6, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[327883, 9334, 491, 15, 117, "Input"], Cell[328377, 9351, 247, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[328661, 9363, 702, 21, 151, "Input"], Cell[329366, 9386, 248, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[329651, 9398, 492, 15, 151, "Input"], Cell[330146, 9415, 248, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[330431, 9427, 491, 15, 117, "Input"], Cell[330925, 9444, 220, 6, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[331182, 9455, 703, 21, 151, "Input"], Cell[331888, 9478, 279, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[332204, 9490, 515, 15, 151, "Input"], Cell[332722, 9507, 255, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[333014, 9519, 482, 15, 117, "Input"], Cell[333499, 9536, 245, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[333781, 9548, 59, 1, 82, "Input"], Cell[333843, 9551, 350, 10, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[334230, 9566, 519, 15, 117, "Input"], Cell[334752, 9583, 270, 7, 82, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[335059, 9595, 170, 5, 82, "Input"], Cell[335232, 9602, 130, 4, 82, "Output"] }, Open ]] }, Closed]] }, Closed]], Cell[CellGroupData[{ Cell[335423, 9613, 39, 0, 76, "Section"], Cell[335465, 9615, 3593, 80, 1012, "Text"], Cell[339061, 9697, 422, 10, 154, "Text"] }, Closed]], Cell[CellGroupData[{ Cell[339520, 9712, 61, 2, 76, "Section"], Cell[339584, 9716, 109, 4, 55, "Text"], Cell[339696, 9722, 314, 9, 121, "Text"], Cell[340013, 9733, 49, 1, 57, "Input"], Cell[340065, 9736, 890, 27, 220, "Text"], Cell[340958, 9765, 51, 1, 57, "Input"], Cell[341012, 9768, 657, 21, 154, "Text"], Cell[341672, 9791, 527, 12, 154, "Text"], Cell[342202, 9805, 53, 1, 57, "Input"], Cell[342258, 9808, 571, 11, 187, "Text"], Cell[342832, 9821, 55, 1, 57, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[342924, 9827, 50, 0, 76, "Section"], Cell[342977, 9829, 118, 4, 55, "Text"], Cell[343098, 9835, 63, 2, 55, "Text"], Cell[343164, 9839, 197, 5, 57, "Input"], Cell[343364, 9846, 1304, 32, 352, "Text"], Cell[344671, 9880, 175, 5, 82, "Input"], Cell[CellGroupData[{ Cell[344871, 9889, 2285, 61, 355, "Input"], Cell[347159, 9952, 3091, 86, 456, "Print"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[350299, 10044, 78, 0, 126, "Section"], Cell[350380, 10046, 3227, 60, 781, "Text"], Cell[353610, 10108, 46, 1, 57, "Input"], Cell[CellGroupData[{ Cell[353681, 10113, 1245, 37, 185, "Input"], Cell[354929, 10152, 518, 19, 104, "Output"], Cell[355450, 10173, 972, 30, 151, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[356459, 10208, 375, 11, 82, "Input"], Cell[356837, 10221, 677, 19, 143, "Output"] }, Open ]], Cell[CellGroupData[{ Cell[357551, 10245, 631, 13, 151, "Input"], Cell[358185, 10260, 2918, 79, 389, "Output"] }, Open ]] }, Closed]], Cell[CellGroupData[{ Cell[361152, 10345, 86, 3, 76, "Section"], Cell[361241, 10350, 773, 17, 203, "Text"], Cell[362017, 10369, 76, 2, 55, "Text"], Cell[362096, 10373, 1531, 42, 228, "Input"], Cell[363630, 10417, 168, 3, 88, "Text"], Cell[363801, 10422, 36754, 980, 3620, "Input", PageBreakWithin->Automatic, InitializationCell->True], Cell[400558, 11404, 416, 9, 121, "Text"], Cell[400977, 11415, 3127, 81, 228, "Input"], Cell[404107, 11498, 163, 4, 88, "Text"], Cell[404273, 11504, 1932, 52, 194, "Input"], Cell[406208, 11558, 317, 6, 121, "Text"], Cell[406528, 11566, 6239, 163, 461, "Input"], Cell[412770, 11731, 116, 3, 55, "Text"], Cell[412889, 11736, 1020, 19, 253, "Input", InitializationCell->True], Cell[413912, 11757, 262, 9, 57, "Input"], Cell[414177, 11768, 155, 5, 57, "Input"], Cell[CellGroupData[{ Cell[414357, 11777, 1415, 45, 194, "Input"], Cell[415775, 11824, 61, 1, 57, "Output"] }, Open ]], Cell[415851, 11828, 29, 0, 57, "Input"], Cell[415883, 11830, 1672, 42, 296, "Input"] }, Closed]], Cell[CellGroupData[{ Cell[417592, 11877, 56, 1, 76, "Section"], Cell[417651, 11880, 2171, 34, 501248, "Text"] }, Closed]] }, Open ]] } ] *) (* End of internal cache information *)