From 63662edc59ab00011f40338ca8f95aa971ee6e18 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 11 Aug 2023 15:17:35 -0700 Subject: [PATCH 01/31] Enable subperiodic groups in Wyckoff The adaptation was performed by reverse-engineering the code here and tested on a few entries from International Tables vol E. --- gap/wyckoff.gi | 53 +++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 46 insertions(+), 7 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index db460b9..880cb29 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -8,6 +8,7 @@ ## ## Routines for the determination of Wyckoff positions ## +## THIS FILE HAS BEEN MODIFIED BY BERNARD FIELD (2023) ############################################################################# ## @@ -74,7 +75,8 @@ function( r ) r.basis := ReducedLatticeBasis( r.basis ); rk := Length( r.basis ); d := Length( r.translation ); - T := TranslationBasis( r.spaceGroup ); + T := InternalBasis( r.spaceGroup ); + # Using InternalBasis allows handling subperiodic groups. Ti := T^-1; if rk = d then @@ -519,7 +521,28 @@ end; ## WyPosStep := function( idx, G, M, b, lst ) - local g, G2, M2, b2, F, c, added, stop, f, d, w, O; + local g, G2, M2, b2, F, c, added, stop, f, d, w, O, IsTranslationInBasis; + # Ideally one would put this function somewhere else, but locally will do + IsTranslationInBasis := function(f) + local STB, t, S; + # From our record f, checks whether the translation vector lies within + # the group's translation basis. Returns Boolean. + S := f.spaceGroup; + # Trivial case: we have a space group + if IsSpaceGroup(S) then + return true; + fi; + # Otherwise, consider if the translation vector lies within the translation basis + t := f.translation; + STB := TranslationBasis(S); + # If the Wyckoff basis is non-empty, then maybe another point on the Wyckoff + # position lies in the crystal's translation basis. + if Length(f.basis) > 0 then + STB := Concatenation(STB, -f.basis); + fi; + # Using Rouche-Capelli theorem. + return RankMatrix(TransposedMat(STB)) = RankMatrix(TransposedMat(Concatenation(STB, [t]))); + end; g := lst.z[idx]; if not g in G then @@ -536,11 +559,15 @@ WyPosStep := function( idx, G, M, b, lst ) else F := []; fi; + # At this stage, F contains possible basis and translation information + # for the Wyckoff positions c := lst.c + 1; added := false; for f in F do d := Length( f.basis ) + 1; stop := d=lst.dim+1; + # Multiplying by the translation basis of the group takes it back + # to the original setting from the standard setting f.translation := f.translation * lst.T; if not IsEmpty( f.basis ) then f.basis := f.basis * lst.T; @@ -548,12 +575,16 @@ WyPosStep := function( idx, G, M, b, lst ) f.spaceGroup := lst.S; ReduceAffineSubspaceLattice( f ); if not f in lst.sp[d] then + # Exclude f if f.translation lies + # outside the span of TranslationBasis(lst.S). + if IsTranslationInBasis(f) then O := Orbit( lst.S2, Immutable(f), ImageAffineSubspaceLattice ); w := ShallowCopy( f ); w.class := c; UniteSet( lst.sp[d], O ); Add( lst.W[d], WyckoffPositionObject(w) ); added := true; + fi; fi; od; if added and not stop then @@ -585,16 +616,22 @@ WyPosAT := function( S ) S2 := TransposedMatrixGroup( S2 ); fi; - lst := rec( dim := d, T := TranslationBasis(S), S := S, c := 1, + lst := rec( dim := d, T := InternalBasis(S), S := S, c := 1, S2 := S2 ); + # T used to be TranslationBasis, but it's used for changing from Standard + # form to original form, so needs to be a full matrix. zz := []; mat := []; vec := []; for g in Zuppos( NiceObject( P ) ) do if g <> () then + # Record a point group operation *in standard basis* + # Meaning you might have permuted the bases. m := NiceToCrystStdRep(P,g); if IsAffineCrystGroupOnRight( S ) then m := TransposedMat(m); fi; + # The matrix M and vector b are used in a set of equations + # to solve for the Wyckoff positions M := m{[1..d]}{[1..d]}-IdentityMat(d); b := m{[1..d]}[d+1]; M := RowEchelonFormVector(M,b); @@ -608,13 +645,15 @@ WyPosAT := function( S ) lst.z := zz; lst.mat := mat; lst.vec := vec; - + + # This record is used to build the general position. s := rec( translation := ListWithIdenticalEntries(d,0), - basis := TranslationBasis(S), + basis := InternalBasis(S), spaceGroup := S ); ReduceAffineSubspaceLattice(s); lst.sp := List( [1..d+1], x-> [] ); Add( lst.sp[d+1], s ); - + + # Here we make the general position w := ShallowCopy( s ); w.class := 1; w := WyckoffPositionObject( w ); @@ -638,7 +677,7 @@ function( S ) # check if we indeed have a space group if not IsSpaceGroup( S ) then - Error("S must be a space group"); + Print("Warning: S is not a space group. Behaviour is experimental.\n"); fi; # for small dimensions, the recursive method is faster From 2a3d180fe121f7018c86fe9411cd379ac007ad39 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 14 Aug 2023 18:04:24 -0700 Subject: [PATCH 02/31] Catalogue of IT subperiodic groups --- .gitignore | 1 + grp/subgrp.gd | 63 ++++ grp/subgrp.gi | 161 ++++++++ grp/subgrp.grp | 974 +++++++++++++++++++++++++++++++++++++++++++++++++ init.g | 1 + read.g | 3 + 6 files changed, 1203 insertions(+) create mode 100644 grp/subgrp.gd create mode 100644 grp/subgrp.gi create mode 100644 grp/subgrp.grp diff --git a/.gitignore b/.gitignore index 8b4f584..a1f49a3 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /doc/manual.ps /doc/manual.toc /htm/ +**/*.swp diff --git a/grp/subgrp.gd b/grp/subgrp.gd new file mode 100644 index 0000000..b1252b3 --- /dev/null +++ b/grp/subgrp.gd @@ -0,0 +1,63 @@ +############################################################################# +## +#A subgrp.gd Cryst library Bernard Field +## +#Y Copyright 2023 by Bernard Field +## +## Declarations for IT subperiodic groups +## + +############################################################################# +## +#F SubPeriodicGroupSettingsIT . .available settings of IT subperiodic groups +## +DeclareGlobalFunction( "SubPeriodicGroupSettingsIT" ); + +############################################################################# +## +#F SubPeriodicGroupDataIT . . . . . data extractor for IT subperiodic groups +## +DeclareGlobalFunction( "SubPeriodicGroupDataIT" ); + +############################################################################# +## +#F SubPeriodicGroupFunIT . . . constructor function for IT subperiodic group +## +DeclareGlobalFunction( "SubPeriodicGroupFunIT" ); + +############################################################################# +## +#F SubPeriodicGroupOnRightIT . .constructor for IT subperiodic group OnRight +## +DeclareGlobalFunction( "SubPeriodicGroupOnRightIT" ); + +############################################################################# +## +#F SubPeriodicGroupOnLeftIT . . .constructor for IT subperiodic group OnLeft +## +DeclareGlobalFunction( "SubPeriodicGroupOnLeftIT" ); + +############################################################################# +## +#F SubPeriodicGroupIT . . . . . . . . . constructor for IT subperiodic group +## +DeclareGlobalFunction( "SubPeriodicGroupIT" ); + +############################################################################# +## +#F FriezeGroupIT . . . . . . . . . . . . . . constructor for IT frieze group +## +DeclareGlobalFunction( "FriezeGroupIT" ); + +############################################################################# +## +#F RodGroupIT . . . . . . . . . . . . . . . . . constructor for IT rod group +## +DeclareGlobalFunction( "RodGroupIT" ); + +############################################################################# +## +#F LayerGroupIT . . . . . . . . . . . . . . . constructor for IT layer group +## +DeclareGlobalFunction( "LayerGroupIT" ); + diff --git a/grp/subgrp.gi b/grp/subgrp.gi new file mode 100644 index 0000000..09b7ded --- /dev/null +++ b/grp/subgrp.gi @@ -0,0 +1,161 @@ +############################################################################# +## +#A subgrp.gi Cryst library Bernard Field +## +#Y Copyright 1997-1999 by Bettina Eick, Franz G"ahler and Werner Nickel +#Y Copyright 2023 by Bernard Field +## +## Extraction functions for IT subperiodic groups +## + +############################################################################# +## +#M SubPeriodicGroupSettingsIT . .available settings of IT subperiodic groups +## +InstallGlobalFunction( SubPeriodicGroupSettingsIT, function( type, nr ) + if type = "Frieze" then + if nr in [1..7] then + return List( RecNames( FriezeGroupList[nr] ), x -> x[1] ); + else + Error( "frieze group number must be in [1..7]" ); + fi; + elif type = "Rod" then + if nr in [1..75] then + return List( RecNames( RodGroupList[nr] ), x -> x[1] ); + else + Error( "rod group number must be in [1..75]" ); + fi; + elif type = "Layer" then + if nr in [1..80] then + return List( RecNames( LayerGroupList[nr] ), x -> x[1] ); + else + Error( "layer group number must be in [1..80]" ); + fi; + else + Error( "only types Frieze, Rod, or Layer are supported, but got ", type ); + fi; +end ); + +############################################################################# +## +#M SubPeriodicGroupDataIT . . . . . data extractor for IT subperiodic groups +## +InstallGlobalFunction( SubPeriodicGroupDataIT, function( r ) + + local settings; + if IsBound (r.setting) and r.setting <> '1' then + Error( "requested setting is not available" ); + fi; + r.setting := '1'; + if r.type = "Frieze" then + if r.nr in [1..7] then + return FriezeGroupList[r.nr].1; + else + Error( "frieze group number must be in [1..7]" ); + fi; + elif r.type = "Rod" then + if r.nr in [1..75] then + return RodGroupList[r.nr].1; + else + Error( "rod group number must be in [1..75]" ); + fi; + elif r.type = "Layer" then + if r.nr in [1..80] then + return LayerGroupList[r.nr].1; + else + Error( "layer group number must be in [1..80]" ); + fi; + else + Error( "space group number must be in [1..230]" ); + fi; + else + Error( "only types Frieze, Rod, or Layer are supported, but got ", type ); + fi; +end ); + +############################################################################# +## +#M SubPeriodicGroupFunIT . . . constructor function for IT subperiodic group +## +InstallGlobalFunction( SubPeriodicGroupFunIT, function( r ) + local data, gens, vec, name, norm, S, P, N; + data := SubPeriodicGroupDataIT( r ); + gens := ShallowCopy( data.generators ); + if r.action = LeftAction then + gens := List( gens, TransposedMat ); + S := AffineCrystGroupOnLeft( gens ); + name := "SubPeriodicGroupOnLeftIT("; + else + S := AffineCrystGroupOnRight( gens ); + name := "SubPeriodicGroupOnRightIT("; + fi; + SetName( S, Concatenation( name, r.type, ",", String(r.nr), + ",'", [r.setting], "')" ) ); + return S; +end ); + +############################################################################# +## +#M SubPeriodicGroupOnRightIT . .constructor for IT subperiodic group OnRight +## +InstallGlobalFunction( SubPeriodicGroupOnRightIT, function( arg ) + local r; + r := rec( type := arg[1], nr := arg[2], action := RightAction ); + if IsBound( arg[3] ) then + r.setting := arg[3]; + fi; + return SubPeriodicGroupFunIT( r ); +end ); + +############################################################################# +## +#M SubPeriodicGroupOnLeftIT . . .constructor for IT subperiodic group OnLeft +## +InstallGlobalFunction( SubPeriodicGroupOnLeftIT, function( arg ) + local r; + r := rec( type := arg[1], nr := arg[2], action := LeftAction ); + if IsBound( arg[3] ) then + r.setting := arg[3]; + fi; + return SubPeriodicGroupFunIT( r ); +end ); + +############################################################################# +## +#M SubPeriodicGroupIT . . . . . . . . . constructor for IT subperiodic group +## +InstallGlobalFunction( SubPeriodicGroupIT, function( arg ) + local r; + r := rec( type := arg[1], nr := arg[2], action := CrystGroupDefaultAction ); + if IsBound( arg[3] ) then + r.setting := arg[3]; + fi; + return SubPeriodicGroupFunIT( r ); +end ); + +############################################################################# +## +#M FriezeGroupIT . . . . . . . . . . . . . . constructor for IT frieze group +## +InstallGlobalFunction( FriezeGroupIT, function( arg ) + Add(arg, "Frieze", 1); + return SubPeriodicGroupIT(arg); +end ); + +############################################################################# +## +#M RodGroupIT . . . . . . . . . . . . . . . . . constructor for IT rod group +## +InstallGlobalFunction( RodGroupIT, function( arg ) + Add(arg, "Rod", 1); + return SubPeriodicGroupIT(arg); +end ); + +############################################################################# +## +#M LayerGroupIT . . . . . . . . . . . . . . . constructor for IT layer group +## +InstallGlobalFunction( LayerGroupIT, function( arg ) + Add(arg, "Layer", 1); + return SubPeriodicGroupIT("Layer", arg); +end ); diff --git a/grp/subgrp.grp b/grp/subgrp.grp new file mode 100644 index 0000000..0a0a2c4 --- /dev/null +++ b/grp/subgrp.grp @@ -0,0 +1,974 @@ +############################################################################# +## +#A subgrp.grp Cryst library Bernard Field +## +#Y Copyright 2023 by Bernard Field +## +## Data for IT subperiodic groups +## + +############################################################################# +## +#M FriezeGroupList . . . . . . . . . . . . . . . . data for IT frieze groups +## +BindGlobal("FriezeGroupList", +[ +rec(1:=rec(generators:=[[[1, 0, 0], [0, 1, 0], [0, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[-1, 0, 0], [0, 1, 0], [0, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0], [0, -1, 0], [0, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0], [0, -1, 0], [1/2, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], + [[-1, 0, 0], [0, 1, 0], [0, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), + +rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], + [[-1, 0, 0], [0, 1, 0], [1/2, 0, 1]], + [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])) +] +); + +############################################################################# +## +#M RodGroupList . . . . . . . . . . . . . . . . . . . data for IT rod groups +## +BindGlobal("RodGroupList", +[ +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/4, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 3/4, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/4, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 3/4, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])) +] +); + +############################################################################# +## +#M LayerGroupList . . . . . . . . . . . . . . . . . data for IT layer groups +## +BindGlobal("LayerGroupList", +[ +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], + [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], + [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), + +rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], + [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], + [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])) +] +); \ No newline at end of file diff --git a/init.g b/init.g index 0e84760..0ea0212 100644 --- a/init.g +++ b/init.g @@ -29,3 +29,4 @@ ReadPackage( "cryst", "gap/max.gd" ); # declarations for maximal subgroups ReadPackage( "cryst", "gap/color.gd" ); # declarations for color groups ReadPackage( "cryst", "gap/equiv.gd" ); # isomorphism test for space groups ReadPackage( "cryst", "grp/spacegrp.gd" ); # the IT space group catalogue +ReadPackage( "cryst", "grp/subgrp.gd" ); # the IT subperiodic group catalogue diff --git a/read.g b/read.g index 3880812..eefcbbd 100644 --- a/read.g +++ b/read.g @@ -56,3 +56,6 @@ ReadPackage( "cryst", "gap/equiv.gi" ); # conjugator between space groups ## ReadPackage( "cryst", "grp/spacegrp.grp" ); # the catalogue ReadPackage( "cryst", "grp/spacegrp.gi" ); # access functions +# And the subperiodic groups +ReadPackage( "cryst", "grp/subgrp.grp" ); # the catalogue +ReadPackage( "cryst", "grp/subgrp.gi" ); # access functions From 2285d1df1d919b7dc181dcee1bd86614b0d9f2e7 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Tue, 15 Aug 2023 12:10:47 -0700 Subject: [PATCH 03/31] Hotfixes in subgrp.gi Now that I've had a chance to test it, I've fixed all the bits that were broken. --- grp/subgrp.gi | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/grp/subgrp.gi b/grp/subgrp.gi index 09b7ded..27ea587 100644 --- a/grp/subgrp.gi +++ b/grp/subgrp.gi @@ -65,11 +65,8 @@ InstallGlobalFunction( SubPeriodicGroupDataIT, function( r ) else Error( "layer group number must be in [1..80]" ); fi; - else - Error( "space group number must be in [1..230]" ); - fi; else - Error( "only types Frieze, Rod, or Layer are supported, but got ", type ); + Error( "only types Frieze, Rod, or Layer are supported, but got ", r.type ); fi; end ); @@ -139,7 +136,7 @@ end ); ## InstallGlobalFunction( FriezeGroupIT, function( arg ) Add(arg, "Frieze", 1); - return SubPeriodicGroupIT(arg); + return CallFuncList(SubPeriodicGroupIT, arg); end ); ############################################################################# @@ -148,7 +145,7 @@ end ); ## InstallGlobalFunction( RodGroupIT, function( arg ) Add(arg, "Rod", 1); - return SubPeriodicGroupIT(arg); + return CallFuncList(SubPeriodicGroupIT, arg); end ); ############################################################################# @@ -157,5 +154,5 @@ end ); ## InstallGlobalFunction( LayerGroupIT, function( arg ) Add(arg, "Layer", 1); - return SubPeriodicGroupIT("Layer", arg); + return CallFuncList(SubPeriodicGroupIT, arg); end ); From bee84b0aff99ea6653f576b1c71f6223ad988547 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 20 Nov 2023 14:55:20 -0800 Subject: [PATCH 04/31] Update .gitignore --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index a1f49a3..e68d8ca 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /doc/manual.toc /htm/ **/*.swp +**/.DS_Store From 47d25e3ccbc429fb7b0e3ff58296e2376a604e16 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 20 Nov 2023 15:00:56 -0800 Subject: [PATCH 05/31] Scrap cached Wyckoffs when conjugating subperiodic groups Because the basis of subperiodic groups is not uniquely defined, we can get inconsistencies in WyckoffPositions when changing the basis (i.e. conjugating). --- gap/cryst.gi | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gap/cryst.gi b/gap/cryst.gi index e575e9b..2873cce 100644 --- a/gap/cryst.gi +++ b/gap/cryst.gi @@ -283,6 +283,12 @@ function ( S, conj ) # add Wyckoff positions if known if HasWyckoffPositions( S ) then + # If we have a sub-periodic group and C includes out-of-basis + # components, then we must scrap the cached Wyckoffs. + # Just to be safe, we'll scrap it without checking C, as there are + # too many edge cases. + # Scrapping Wyckoffs just means we don't call SetWyckoffPositions + if IsSpaceGroup(S) then W := []; for w in WyckoffPositions( S ) do r := rec( basis := w!.basis, @@ -294,6 +300,7 @@ function ( S, conj ) Add( W, WyckoffPositionObject( r ) ); od; SetWyckoffPositions( R, W ); + fi; fi; return R; @@ -331,6 +338,11 @@ function ( S, conj ) # add Wyckoff positions if known if HasWyckoffPositions( S ) then + # Transformations are only unique for space groups. + # Sub-periodic groups can lose information if there are out-of-plane + # components, which can make the Wyckoff positions inconsistent. + # So we'll only keep the cached Wyckoffs if it is a space group. + if IsSpaceGroup(S) then W := []; for w in WyckoffPositions( S ) do r := rec( basis := w!.basis, @@ -342,6 +354,7 @@ function ( S, conj ) Add( W, WyckoffPositionObject( r ) ); od; SetWyckoffPositions( R, W ); + fi; fi; return R; From c307b2ff7ab516b0b624713cb82c31c93a67ccc5 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 20 Nov 2023 16:55:34 -0800 Subject: [PATCH 06/31] Remove extraneous warning and comments --- gap/wyckoff.gi | 6 ------ 1 file changed, 6 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index d94ee4e..d12f4eb 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -8,7 +8,6 @@ ## ## Routines for the determination of Wyckoff positions ## -## THIS FILE HAS BEEN MODIFIED BY BERNARD FIELD (2023) ############################################################################# ## @@ -681,11 +680,6 @@ InstallMethod( WyckoffPositions, "for AffineCrystGroupOnLeftOrRight", true, [ IsAffineCrystGroupOnLeftOrRight ], 0, function( S ) - # check if we indeed have a space group - if not IsSpaceGroup( S ) then - Print("Warning: S is not a space group. Behaviour is experimental.\n"); - fi; - # for small dimensions, the recursive method is faster if DimensionOfMatrixGroup( S ) < 6 then return WyPosAT( S ); From 8e4e185fdd0959796fbe2180bd5c08d29dee1f62 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 20 Nov 2023 16:56:45 -0800 Subject: [PATCH 07/31] Tests for subperiodic groups Mostly checks the constructors and the Wyckoff positions. --- tst/subperiodic.tst | 218 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 218 insertions(+) create mode 100644 tst/subperiodic.tst diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst new file mode 100644 index 0000000..a8004ac --- /dev/null +++ b/tst/subperiodic.tst @@ -0,0 +1,218 @@ +gap> START_TEST( "Cryst: subperiodic.tst" ); + +# This test is for the subperiodic group features. +gap> SetAssertionLevel(1); +gap> SetCrystGroupDefaultAction(RightAction); + +# Test that layer groups are conjured correctly. +gap> G := LayerGroupIT( 5 ); +SubPeriodicGroupOnRightIT(Layer,5,'1') + +gap> IsAffineCrystGroupOnRight( G ); +true + +gap> G^IdentityMat(4); + + +gap> TranslationBasis( G ); +[ [ 1, 0, 0 ], [ 0, 1, 0 ] ] + +# Test that rod groups are conjured correctly +gap> G := RodGroupIT( 7 ); +SubPeriodicGroupOnRightIT(Rod,7,'1') + +gap> IsAffineCrystGroupOnRight( G ); +true + +gap> G^IdentityMat(4); + + +gap> TranslationBasis( G ); +[ [ 0, 0, 1 ] ] + +# Test that frieze groups are conjured correctly +gap> G := FriezeGroupIT( 2 ); +SubPeriodicGroupOnRightIT(Frieze,2,'1') + +gap> IsAffineCrystGroupOnRight( G ); +true + +gap> G^IdentityMat(3); +Group([ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ], + [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 1, 0, 1 ] ] ]) + +gap> TranslationBasis( G ); +[ [ 1, 0 ] ] + +# Test that different ways of calling the same group work +gap> SubPeriodicGroupIT("Layer", 23) = LayerGroupIT(23); +true + +gap> SubPeriodicGroupIT("Rod", 14) = RodGroupIT(14); +true + +gap> SubPeriodicGroupIT("Frieze", 3) = FriezeGroupIT(3); +true + +# Confirm that different groups are different +gap> RodGroupIT(4) = RodGroupIT(3); +false + +gap> LayerGroupIT(15) = RodGroupIT(15); +false + +gap> FriezeGroupIT(1) = RodGroupIT(1); +false + +# Test conjugation without Wyckoff positions +gap> G := FriezeGroupIT(3);; +gap> C := [[0,1,0],[1,0,0],[0,0,1]];; +gap> G^C; +Group([ [ [ 1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ], + [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 1, 1 ] ] ]) + +# Test generation of Wyckoff positions +gap> G := LayerGroupIT(56);; +gap> pos := WyckoffPositions(G); +[ < Wyckoff position, point group 2, translation := [ 0, 0, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 2, translation := [ 0, 1/2, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 3, translation := [ 0, 1/2, 0 ], + basis := [ [ 1, 1, 0 ], [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], + basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > + ] + +gap> WyckoffStabilizer( pos[4] ); +Group([ ]) + +gap> WyckoffStabilizer( pos[3] ); +Group( +[ [ [ 0, 1, 0, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ -1/2, 1/2, 0, 1 ] ] ]) + +gap> WyckoffStabilizer( pos[2] ); + + +# Test that conjugation of Wyckoff positions works as expected +# Make sure to include a Wyckoff with an empty basis +gap> G := LayerGroupIT(54);; +gap> pos := WyckoffPositions(G); +[ < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], + basis := [ ] > + , < Wyckoff position, point group 2, translation := [ 0, 0, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 2, translation := [ 0, 1/2, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 4, translation := [ 0, 1/2, 0 ], + basis := [ [ 1, 1, 0 ] ] > + , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], + basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > + ] + +# An arbitrary transformation, with translation +gap> C := [ [ 5, -1, 0, 0 ], [ 2, 0, 1, 0 ], [ -3, 1, -1, 0 ], [ 1/2, 1/3, 1, 1 ] ];; +gap> IsAffineCrystGroupOnRight( G^C ); +true + +gap> Set(WyckoffPositions( G^C )) = Set(WyckoffPositions( LayerGroupIT(54)^C )); +true + +# Test that Wyckoff works on the left +gap> G := SubPeriodicGroupOnLeftIT("Layer", 12); +SubPeriodicGroupOnLeftIT(Layer,12,'1') + +gap> G = TransposedMatrixGroup(LayerGroupIT(12)); +true + +gap> G := SubPeriodicGroupOnLeftIT("Layer", 54);; +gap> pos := WyckoffPositions(G); +[ < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], + basis := [ ] > + , < Wyckoff position, point group 2, translation := [ 0, 0, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 2, translation := [ 0, 1/2, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 4, translation := [ 0, 1/2, 0 ], + basis := [ [ 1, -1, 0 ] ] > + , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], + basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > + ] + +gap> WyckoffStabilizer( pos[5] ); +Group([ ]) + +gap> WyckoffStabilizer( pos[4] ); +Group( +[ [ [ 0, -1, 0, 1/2 ], [ -1, 0, 0, 1/2 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ] ]) + +gap> IsAffineCrystGroupOnLeft( G^TransposedMat(C) ); +true + +gap> Set(WyckoffPositions( G^TransposedMat(C) )) = Set(WyckoffPositions(SubPeriodicGroupOnLeftIT("Layer",54)^TransposedMat(C))); +true + +# Test that we get the right number of Wyckoff positions +gap> List( [1..7], i -> Length( WyckoffPositions( FriezeGroupIT(i) ) ) ); +[ 1, 3, 3, 2, 1, 6, 3 ] + +gap> List( [0..7], i -> Length( WyckoffPositions( RodGroupIT(10*i + 3) ) ) ); +[ 3, 8, 2, 3, 1, 2, 3, 12 ] + +gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2) ) ) ); +[ 3, 6, 3, 11, 10, 5, 5, 10 ] + +# Check that changing CrystGroupDefaultAction works as expected +gap> CrystGroupDefaultAction; +"RightAction" + +gap> SetCrystGroupDefaultAction(LeftAction); + +gap> G := LayerGroupIT(12); +SubPeriodicGroupOnLeftIT(Layer,12,'1') + +gap> G ^ IdentityMat(4); + + +gap> IsAffineCrystGroupOnLeft(G); +true + +gap> G := RodGroupIT(5); +SubPeriodicGroupOnLeftIT(Rod,5,'1') + +gap> IsAffineCrystGroupOnLeft(G); +true + +gap> G := FriezeGroupIT(2); +SubPeriodicGroupOnLeftIT(Frieze,2,'1') + +gap> IsAffineCrystGroupOnLeft(G); +true + +gap> G := SubPeriodicGroupIT("Layer", 54); +SubPeriodicGroupOnLeftIT(Layer,54,'1') + +gap> pos := WyckoffPositions(G); +[ < Wyckoff position, point group 3, translation := [ 1/2, 0, 0 ], + basis := [ ] > + , < Wyckoff position, point group 2, translation := [ 0, 0, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 2, translation := [ 0, 1/2, 0 ], + basis := [ [ 0, 0, 1 ] ] > + , < Wyckoff position, point group 4, translation := [ 0, 1/2, 0 ], + basis := [ [ 1, -1, 0 ] ] > + , < Wyckoff position, point group 1, translation := [ 0, 0, 0 ], + basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > + ] + +gap> C := [ [ 5, 2, -3, 1/2 ], [ -1, 0, 1, 1/3 ], [ 0, 1, -1, 1 ], [ 0, 0, 0, 1 ] ];; +gap> IsAffineCrystGroup( G^C ); +true + +gap> Set( WyckoffPositions( G^C ) ) = Set( WyckoffPositions( LayerGroupIT(54)^C ) ); +true + +# Revert to default +gap> SetCrystGroupDefaultAction(RightAction); + +gap> STOP_TEST( "subperiodic.tst", 10000 ); From fa8919fa3514b115aea60105f87823a9f02a3b6d Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 11 Jan 2024 15:14:42 -0800 Subject: [PATCH 08/31] Partial fix for subperiodic Wyckoff positions The basis being chosen for subperiodic groups should now respect symmetry operations. This has fixed some errors in determining Wyckoff positions, but not all of them. So this task is still WIP. --- gap/hom.gd | 6 ++ gap/hom.gi | 25 ++++++- gap/wyckoff.gd | 6 ++ gap/wyckoff.gi | 166 +++++++++++++++++++++++++++++++++++++++++--- tst/subperiodic.tst | 14 ++++ tst/wyckoff.tst | 5 ++ 6 files changed, 211 insertions(+), 11 deletions(-) diff --git a/gap/hom.gd b/gap/hom.gd index bc400dc..fb4ae86 100644 --- a/gap/hom.gd +++ b/gap/hom.gd @@ -25,6 +25,12 @@ DeclareAttribute( "NiceToCryst", IsPointGroup ); ## DeclareGlobalFunction( "NiceToCrystStdRep" ); +############################################################################# +## +#F NiceToCrystStdRepSymmetric( P, perm ) +## +DeclareGlobalFunction( "NiceToCrystStdRepSymmetric" ); + ############################################################################# ## #P IsFromAffineCrystGroupToFpGroup diff --git a/gap/hom.gi b/gap/hom.gi index ba523df..229d4aa 100644 --- a/gap/hom.gi +++ b/gap/hom.gi @@ -73,7 +73,7 @@ end ); #F NiceToCrystStdRep( P, perm ) ## InstallGlobalFunction( NiceToCrystStdRep, function( P, perm ) - local S, m, d, c; + local S, m; S := AffineCrystGroupOfPointGroup( P ); m := ImagesRepresentative( NiceToCryst( P ), perm ); if IsStandardAffineCrystGroup( S ) then @@ -83,6 +83,29 @@ InstallGlobalFunction( NiceToCrystStdRep, function( P, perm ) fi; end ); +############################################################################# +## +#F NiceToCrystStdRepSymmetric( P, perm ) +## +InstallGlobalFunction( NiceToCrystStdRepSymmetric, function( P, perm ) + local S, m, d, mat, lconj, rconj; + # Uses SymmetricInternalBasis rather than InternalBasis + S := AffineCrystGroupOfPointGroup( P ); + m := ImagesRepresentative( NiceToCryst( P ), perm ); + d := DimensionOfMatrixGroup( S ) - 1; + # Get transformation into standard basis + mat := AugmentedMatrix(SymmetricInternalBasis(S), ListWithIdenticalEntries(d, 0)); + if IsAffineCrystGroupOnRight( S ) then + lconj := mat; + rconj := mat^-1; + else + mat := TransposedMat(mat); + lconj := mat^-1; + rconj := mat; + fi; + return lconj * m * rconj; +end ); + ############################################################################# ## #M NaturalHomomorphismByNormalSubgroup( , ) . . for AffineCrystGroup diff --git a/gap/wyckoff.gd b/gap/wyckoff.gd index 1522193..ab96682 100644 --- a/gap/wyckoff.gd +++ b/gap/wyckoff.gd @@ -58,6 +58,12 @@ DeclareGlobalFunction( "ImageAffineSubspaceLattice" ); ## DeclareGlobalFunction( "ImageAffineSubspaceLatticePointwise" ); +############################################################################# +## +#A SymmetricInternalBasis . .internal basis that respects lattice symmetries +## +DeclareAttribute( "SymmetricInternalBasis", IsAffineCrystGroupOnLeftOrRight ); + ############################################################################# ## #A WyckoffStabilizer . . . . . . . . . stabilizer of representative subspace diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index d12f4eb..462ec57 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -62,6 +62,144 @@ InstallMethod( WyckoffTranslation, InstallMethod( WyckoffBasis, true, [ IsWyckoffPosition ], 0, w -> w!.basis ); +############################################################################# +## +#M SymmetricInternalBasis . .internal basis that respects lattice symmetries +## +InstallMethod( SymmetricInternalBasis, + true, [ IsAffineCrystGroupOnLeftOrRight ], 0, +function( S ) + local d, T, gens, g, vecs, eigenvals, ev, i, v, spare_eigenvecs, k, comp, + idx, e, j, order; + d := DimensionOfMatrixGroup(S) - 1; + T := TranslationBasis(S); + # If we have a space group, no need to find extra vectors + if Length(T) = d then + return T; + fi; + T := ShallowCopy(T); + # Get to consistent Action (okay, this might falter for point groups) + if not IsAffineCrystGroupOnRight(S) then + S := TransposedMatrixGroup(S); + fi; + # Grab the linear part of the non-trivial generators + gens := Filtered(List(GeneratorsOfGroup(S), x -> x{[1..d]}{[1..d]}), + x -> (x <> IdentityMat(d)) and (x <> -IdentityMat(d))); + # If we have no non-trivial operators, then the regular InternalBasis + # will do + if Length(gens) = 0 then + return InternalBasis( S ); + fi; + # (If I later find that this algorithm is deficient, I might need to consider + # all representative operators, not just the generators.) + # We want to consider not just the generators, but sums of generator products. + # This solves for a different set of vectors, like the rotational plane. + # (If GAP allowed complex numbers, we could get all eigenvectors from gens, + # but it doesn't.) + for i in [1..Length(gens)] do + order := Order(gens[i]); + if order > 2 then + # Order > 2 allows complex eigenvalues, so need a supplemental matrix + # to get complementary eigenvectors. + # Sum of products of the matrix up to the Order. This is guaranteed to + # have real eigenvalues (but not necessarily the same sets of degeneracy). + Add(gens, Sum(List([0..order-1], x -> gens[i]^x))); + fi; + od; + spare_eigenvecs := rec(); + # Go over each generator. Find the eigenvectors. + for g in gens do + vecs := Eigenvectors(Rationals, g); + # Get the eigenvalues for each eigenvector + eigenvals := []; + for v in vecs do + ev := v * g; # ev: v times eigenvalue + # Find the first non-zero value, if present, and divide + if ev = Zero(v) then + # If ev is zero vector, then eigenvalue is zero + Add(eigenvals, 0); + else + # Find the first non-zero value + i := PositionProperty(ev, x -> x <> 0); + Add(eigenvals, ev[i] / v[i]); + fi; + od; + # We'll sort the eigenvalues + StableSortParallel(eigenvals, vecs); + # Single out the eigenvectors with non-degenerate eigenvalues + # but keep the degenerate ones in case we exhaust the non-degenerate ones. + for e in eigenvals do + idx := Positions(eigenvals, e); + if Length(idx) > 1 then + # Pop degenerate eigenvectors + spare_eigenvecs.(Length(idx)) := vecs{idx}; + for i in Reversed(idx) do + Remove(vecs, i); + Remove(eigenvals, i); + od; + fi; + # Otherwise, just keep the vector in vecs + od; + # The vectors remaining in vecs have unique eigenvalues. + for v in vecs do + # Check whether this new vector extends T + # If yes, Add to T. + if Rank(Concatenation(T, [v])) > Length(T) then + Add(T, v); + if Length(T) = d then + if Determinant(T) < 0 then + # Rearrange to be positive determinant. + T{[d-1,d]} := T{[d,d-1]}; + fi; + return T; + fi; + fi; + od; + od; + # If we've made it here, we've exhausted the non-degenerate eigenvectors + # Now let's go through the spares in increasing order of degeneracy. + for i in Set(RecNames(spare_eigenvecs), Int) do + for v in spare_eigenvecs.(i) do + if Rank(Concatenation(T, [v])) > Length(T) then + Add(T, v); + if Length(T) = d then + if Determinant(T) < 0 then + # Rearrange to be positive determinant. + T{[d-1,d]} := T{[d,d-1]}; + fi; + return T; + fi; + fi; + od; + od; + # Iterate over all vectors until Length(T) = d. + # If somehow we exhaust all vectors before then, resort to InternalBasis' + # algorithm for filling out the remaining vectors. + if Length(T) = 0 then + return IdentityMat(d); + else + comp := NullMat( d - Length(T), d ); + i:=1; j:=1; k:=1; + while i <= Length( T ) do + while T[i][j] = 0 do + comp[k][j] := 1; + k := k+1; j:=j+1; + od; + i := i+1; j := j+1; + od; + while j <= d do + comp[k][j] := 1; + k := k+1; j:=j+1; + od; + Append(T, comp); + fi; + if Determinant(T) < 0 then + # Rearrange to be positive determinant. + T{[d-1,d]} := T{[d,d-1]}; + fi; + return T; +end ); + ############################################################################# ## #M ReduceAffineSubspaceLattice . . . . reduce affine subspace modulo lattice @@ -74,8 +212,8 @@ function( r ) r.basis := ReducedLatticeBasis( r.basis ); rk := Length( r.basis ); d := Length( r.translation ); - T := InternalBasis( r.spaceGroup ); - # Using InternalBasis allows handling subperiodic groups. + T := SymmetricInternalBasis( r.spaceGroup ); + # Using SymmetricInternalBasis allows handling subperiodic groups. Ti := T^-1; if rk = d then @@ -83,7 +221,8 @@ function( r ) elif rk > 0 then M := r.basis; v := r.translation; - if not IsStandardAffineCrystGroup( r.spaceGroup ) then + #if not IsStandardAffineCrystGroup( r.spaceGroup ) then + if T <> One(T) then M := M * Ti; v := v * Ti; fi; @@ -101,12 +240,13 @@ function( r ) Qi := Q^-1; P := Q{[1..d]}{[rk+1..d]} * Qi{[rk+1..d]}; v := List( v * P, FractionModOne ); - if not IsStandardAffineCrystGroup( r.spaceGroup ) then + #if not IsStandardAffineCrystGroup( r.spaceGroup ) then + if T <> One(T) then v := v * T; fi; - v := VectorModL( v, T ); + v := VectorModL( v, TranslationBasis(r.spaceGroup) ); else - v := VectorModL( r.translation, T ); + v := VectorModL( r.translation, TranslationBasis(r.spaceGroup) ); fi; r.translation := v; @@ -621,7 +761,7 @@ WyPosAT := function( S ) S2 := TransposedMatrixGroup( S2 ); fi; - lst := rec( dim := d, T := InternalBasis(S), S := S, c := 1, + lst := rec( dim := d, T := SymmetricInternalBasis(S), S := S, c := 1, S2 := S2 ); # T used to be TranslationBasis, but it's used for changing from Standard # form to original form, so needs to be a full matrix. @@ -631,7 +771,12 @@ WyPosAT := function( S ) if g <> () then # Record a point group operation *in standard basis* # Meaning you might have permuted the bases. - m := NiceToCrystStdRep(P,g); + if IsSpaceGroup( S ) then + m := NiceToCrystStdRep(P,g); + else + # If a sub-periodic group, need to do some slightly more expensive checks. + m := NiceToCrystStdRepSymmetric(P,g); + fi; if IsAffineCrystGroupOnRight( S ) then m := TransposedMat(m); fi; @@ -653,7 +798,7 @@ WyPosAT := function( S ) # This record is used to build the general position. s := rec( translation := ListWithIdenticalEntries(d,0), - basis := InternalBasis(S), + basis := SymmetricInternalBasis(S), spaceGroup := S ); ReduceAffineSubspaceLattice(s); lst.sp := List( [1..d+1], x-> [] ); Add( lst.sp[d+1], s ); @@ -681,7 +826,8 @@ InstallMethod( WyckoffPositions, "for AffineCrystGroupOnLeftOrRight", function( S ) # for small dimensions, the recursive method is faster - if DimensionOfMatrixGroup( S ) < 6 then + # Also, WyPosSGL is not yet implemented for subperiodic groups + if DimensionOfMatrixGroup( S ) < 6 or not IsSpaceGroup( S ) then return WyPosAT( S ); else return WyPosSGL( S ); diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index a8004ac..9f9f8e0 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -118,6 +118,10 @@ true gap> Set(WyckoffPositions( G^C )) = Set(WyckoffPositions( LayerGroupIT(54)^C )); true +gap> G := RodGroupIT(17);; +gap> Length(WyckoffPositions( G^C )) = Length(WyckoffPositions( RodGroupIT(17) )); +true + # Test that Wyckoff works on the left gap> G := SubPeriodicGroupOnLeftIT("Layer", 12); SubPeriodicGroupOnLeftIT(Layer,12,'1') @@ -152,6 +156,13 @@ true gap> Set(WyckoffPositions( G^TransposedMat(C) )) = Set(WyckoffPositions(SubPeriodicGroupOnLeftIT("Layer",54)^TransposedMat(C))); true +gap> G := SubPeriodicGroupOnLeftIT("Rod", 17);; +gap> Length(WyckoffPositions( G )) = Length(WyckoffPositions( RodGroupIT(17) )); +true + +gap> Length(WyckoffPositions( G^TransposedMat(C) )) = Length(WyckoffPositions( G )); +true + # Test that we get the right number of Wyckoff positions gap> List( [1..7], i -> Length( WyckoffPositions( FriezeGroupIT(i) ) ) ); [ 1, 3, 3, 2, 1, 6, 3 ] @@ -162,6 +173,9 @@ gap> List( [0..7], i -> Length( WyckoffPositions( RodGroupIT(10*i + 3) ) ) ); gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2) ) ) ); [ 3, 6, 3, 11, 10, 5, 5, 10 ] +gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2)^C ) ) ); +[ 3, 6, 3, 11, 10, 5, 5, 10 ] + # Check that changing CrystGroupDefaultAction works as expected gap> CrystGroupDefaultAction; "RightAction" diff --git a/tst/wyckoff.tst b/tst/wyckoff.tst index 1a15706..6ab3fa3 100644 --- a/tst/wyckoff.tst +++ b/tst/wyckoff.tst @@ -8,4 +8,9 @@ gap> List( [1..17], i -> Length( WyckoffPositions( SpaceGroupIT(2,i) ) ) ); gap> List( [1..23], i -> Length( WyckoffPositions( SpaceGroupIT(3,10*i-3) ) ) ); [ 1, 5, 5, 4, 27, 5, 15, 4, 9, 11, 5, 9, 12, 8, 7, 4, 6, 14, 15, 6, 11, 8, 9 ] +# Test conjugation +gap> C := [[5,-1,0,0],[2,0,1,0],[-3,1,-1,0],[1/2,1/3,1,1]];; +gap> List( [1..23], i -> Length( WyckoffPositions( SpaceGroupIT(3,10*i-3) ^ C ) ) ); +[ 1, 5, 5, 4, 27, 5, 15, 4, 9, 11, 5, 9, 12, 8, 7, 4, 6, 14, 15, 6, 11, 8, 9 ] + gap> STOP_TEST( "wyckoff.tst", 10000 ); From eb5b3d7f1301a2a2aa109f23b2627de7494fc2ec Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Tue, 16 Jan 2024 17:35:04 -0800 Subject: [PATCH 09/31] Partial fix: some cases with shifted origin work now IsTranslationInBasis did not account for the possibility of the origin not being at zero. A more thorough check fixes some cases. But not all cases. It's still possible for the solver to give a translation that is out of basis, but if a different translation mod 1 is chosen then it would be in basis. I think the proper solution may require rebuilding all the modZ portions. --- gap/wyckoff.gi | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 462ec57..934b571 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -669,7 +669,7 @@ WyPosStep := function( idx, G, M, b, lst ) local g, G2, M2, b2, F, c, added, stop, f, d, w, O, IsTranslationInBasis; # Ideally one would put this function somewhere else, but locally will do IsTranslationInBasis := function(f) - local STB, t, S; + local STB, t, S, rank, gens, xs; # From our record f, checks whether the translation vector lies within # the group's translation basis. Returns Boolean. S := f.spaceGroup; @@ -685,8 +685,23 @@ WyPosStep := function( idx, G, M, b, lst ) if Length(f.basis) > 0 then STB := Concatenation(STB, -f.basis); fi; - # Using Rouche-Capelli theorem. - return RankMatrix(TransposedMat(STB)) = RankMatrix(TransposedMat(Concatenation(STB, [t]))); + # Trivial case: the basis of allowed points fills the whole space + rank := RankMatrix(TransposedMat(STB)); + if rank = Length(t) then + return true; + fi; + # Now, we can't simply check if t is in the span of STB, because + # the origin may be non-zero. Instead, we must check if the vectors, + # when operated on, fit the span. + gens := GeneratorsOfGroup(S); + if IsAffineCrystGroupOnLeft(S) then + gens := List(gens, TransposedMat); + fi; + # xs are the difference between point t and point t after being operated on. + xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..Length(t)]}); + # Using Rouche-Capelli theorem. If all of xs are in the span of STB, then + # the extra ranks will vanish. If any are not, then the rank will be bigger. + return rank = RankMatrix(TransposedMat(Concatenation(STB, xs))); end; g := lst.z[idx]; From 353a150590494ac6c50a0aed977d8418ec5c498c Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Wed, 17 Jan 2024 15:42:16 -0800 Subject: [PATCH 10/31] Move IsTranslationInBasis out of local scope --- gap/wyckoff.gi | 78 ++++++++++++++++++++++++++------------------------ 1 file changed, 41 insertions(+), 37 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 934b571..be815e3 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -660,49 +660,53 @@ WyPosSGL := function( S ) end; +############################################################################# +## +#F IsTranslationInBasis( S ) . . . . tests if Wyckoff position is in lattice +## +IsTranslationInBasis := function(f) + local STB, t, S, rank, gens, xs; + # From our record f, checks whether the translation vector lies within + # the group's translation basis. Returns Boolean. + S := f.spaceGroup; + # Trivial case: we have a space group + if IsSpaceGroup(S) then + return true; + fi; + # Otherwise, consider if the translation vector lies within the translation basis + t := f.translation; + STB := TranslationBasis(S); + # If the Wyckoff basis is non-empty, then maybe another point on the Wyckoff + # position lies in the crystal's translation basis. + if Length(f.basis) > 0 then + STB := Concatenation(STB, -f.basis); + fi; + # Trivial case: the basis of allowed points fills the whole space + rank := RankMatrix(TransposedMat(STB)); + if rank = Length(t) then + return true; + fi; + # Now, we can't simply check if t is in the span of STB, because + # the origin may be non-zero. Instead, we must check if the vectors, + # when operated on, fit the span. + gens := GeneratorsOfGroup(S); + if IsAffineCrystGroupOnLeft(S) then + gens := List(gens, TransposedMat); + fi; + # xs are the difference between point t and point t after being operated on. + xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..Length(t)]}); + # Using Rouche-Capelli theorem. If all of xs are in the span of STB, then + # the extra ranks will vanish. If any are not, then the rank will be bigger. + return rank = RankMatrix(TransposedMat(Concatenation(STB, xs))); +end; + ############################################################################# ## #F WyPosStep . . . . . . . . . . . . . . . . . . .induction step for WyPosAT ## WyPosStep := function( idx, G, M, b, lst ) - local g, G2, M2, b2, F, c, added, stop, f, d, w, O, IsTranslationInBasis; - # Ideally one would put this function somewhere else, but locally will do - IsTranslationInBasis := function(f) - local STB, t, S, rank, gens, xs; - # From our record f, checks whether the translation vector lies within - # the group's translation basis. Returns Boolean. - S := f.spaceGroup; - # Trivial case: we have a space group - if IsSpaceGroup(S) then - return true; - fi; - # Otherwise, consider if the translation vector lies within the translation basis - t := f.translation; - STB := TranslationBasis(S); - # If the Wyckoff basis is non-empty, then maybe another point on the Wyckoff - # position lies in the crystal's translation basis. - if Length(f.basis) > 0 then - STB := Concatenation(STB, -f.basis); - fi; - # Trivial case: the basis of allowed points fills the whole space - rank := RankMatrix(TransposedMat(STB)); - if rank = Length(t) then - return true; - fi; - # Now, we can't simply check if t is in the span of STB, because - # the origin may be non-zero. Instead, we must check if the vectors, - # when operated on, fit the span. - gens := GeneratorsOfGroup(S); - if IsAffineCrystGroupOnLeft(S) then - gens := List(gens, TransposedMat); - fi; - # xs are the difference between point t and point t after being operated on. - xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..Length(t)]}); - # Using Rouche-Capelli theorem. If all of xs are in the span of STB, then - # the extra ranks will vanish. If any are not, then the rank will be bigger. - return rank = RankMatrix(TransposedMat(Concatenation(STB, xs))); - end; + local g, G2, M2, b2, F, c, added, stop, f, d, w, O; g := lst.z[idx]; if not g in G then From 710fd7e087b8e0c3dce1d1dc40e71bff027f5a85 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Wed, 17 Jan 2024 18:30:57 -0800 Subject: [PATCH 11/31] Solver for systems of linear Diophantine equations --- gap/common.gi | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/gap/common.gi b/gap/common.gi index 4a7c821..2d3c917 100644 --- a/gap/common.gi +++ b/gap/common.gi @@ -181,6 +181,47 @@ RowEchelonFormT := function( M, T ) return M{[1..i-1]}; end; +############################################################################# +## +#F SolveLinearDiophantineSystem . . solve a system of linear diophantine eqs +## +SolveLinearDiophantineSystem := function( A, b ) + local d, Q, j, sols; + # https://www.math.uwaterloo.ca/%7Ewgilbert/Research/GilbertPathria.pdf + b := ShallowCopy( b ); + d := Length(A[1]); + # Row reduce (A^T | I) to (R | Q). + Q := IdentityMat(d); + while Length(A) > 0 and not IsDiagonalMat(A) do + A := RowEchelonFormT( TransposedMat(A), Q ); + # Solve R^T k = b by back-substitution + if Length(A) > 0 and not IsDiagonalMat(A) then + A := RowEchelonFormVector( TransposedMat(A), b ); + fi; + od; + # We now solve the easier system of equations R^T k = b. + # where R is row-reduced diagonal A. + # Check that the system is consistent. + for j in [Length(A)+1 .. Length(b) ] do + if b[j] <> 0 then + return [ [ ], [ ] ]; + fi; + od; + # Solutions to R k = b. + sols := List( [1 .. Length(A)], i -> b[i] / A[i][i] ); + # Check that these are *integer* solutions + if not ForAll(sols, IsInt) then + return [ [ ], [ ] ]; + fi; + # Pad out missing values + sols := Concatenation( sols, 0 * [ (Length(A)+1) .. Length(b) ] ); + # Solutions to original A x = b are of form x = Q^T k. + sols := sols * Q; + # Return the specific solution, and a list of vectors which you can add + # integer multiples of to get the general solution. + return [ sols, Q{[(Length(A)+1) .. Length(Q)]} ]; +end; + ############################################################################# ## #F FractionModOne . . . . . . . . . . . . . . . . . . a fraction modulo one From 659f5357e2830381d1875b0291fec213ed152a65 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 18 Jan 2024 11:46:16 -0800 Subject: [PATCH 12/31] common.gi already had an integer equation solver Deleted SolveLinearDiophantineSystem. Replaced with IntSolutionsMat, which extends the existing IntSolutionMat. --- gap/common.gi | 55 +++++++++++---------------------------------------- 1 file changed, 11 insertions(+), 44 deletions(-) diff --git a/gap/common.gi b/gap/common.gi index 2d3c917..b303d73 100644 --- a/gap/common.gi +++ b/gap/common.gi @@ -181,47 +181,6 @@ RowEchelonFormT := function( M, T ) return M{[1..i-1]}; end; -############################################################################# -## -#F SolveLinearDiophantineSystem . . solve a system of linear diophantine eqs -## -SolveLinearDiophantineSystem := function( A, b ) - local d, Q, j, sols; - # https://www.math.uwaterloo.ca/%7Ewgilbert/Research/GilbertPathria.pdf - b := ShallowCopy( b ); - d := Length(A[1]); - # Row reduce (A^T | I) to (R | Q). - Q := IdentityMat(d); - while Length(A) > 0 and not IsDiagonalMat(A) do - A := RowEchelonFormT( TransposedMat(A), Q ); - # Solve R^T k = b by back-substitution - if Length(A) > 0 and not IsDiagonalMat(A) then - A := RowEchelonFormVector( TransposedMat(A), b ); - fi; - od; - # We now solve the easier system of equations R^T k = b. - # where R is row-reduced diagonal A. - # Check that the system is consistent. - for j in [Length(A)+1 .. Length(b) ] do - if b[j] <> 0 then - return [ [ ], [ ] ]; - fi; - od; - # Solutions to R k = b. - sols := List( [1 .. Length(A)], i -> b[i] / A[i][i] ); - # Check that these are *integer* solutions - if not ForAll(sols, IsInt) then - return [ [ ], [ ] ]; - fi; - # Pad out missing values - sols := Concatenation( sols, 0 * [ (Length(A)+1) .. Length(b) ] ); - # Solutions to original A x = b are of form x = Q^T k. - sols := sols * Q; - # Return the specific solution, and a list of vectors which you can add - # integer multiples of to get the general solution. - return [ sols, Q{[(Length(A)+1) .. Length(Q)]} ]; -end; - ############################################################################# ## #F FractionModOne . . . . . . . . . . . . . . . . . . a fraction modulo one @@ -253,9 +212,9 @@ end; ############################################################################# ## -#F IntSolutionMat( M, b ) . . integer solution for inhom system of equations +#F IntSolutionsMat( M, b ) . .integer solutions for inhom system of equations ## -IntSolutionMat := function( M, b ) +IntSolutionsMat := function( M, b ) local Q, den, sol, i, x; @@ -310,8 +269,16 @@ IntSolutionMat := function( M, b ) fi; od; - return sol*Q{[1..Length(sol)]}; + return [ sol*Q{[1..Length(sol)]}, Q{[Length(sol)+1..Length(Q)]} ]; + +end; +############################################################################# +## +#F IntSolutionMat( M, b ) . . integer solution for inhom system of equations +## +IntSolutionMat := function( M, b ) + return IntSolutionsMat( M, b )[1]; end; ############################################################################# From d041fee822d8c1a301b84380979b429d213eda18 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 18 Jan 2024 18:01:45 -0800 Subject: [PATCH 13/31] WIP New, advanced logic for IsTranslationInBasis The latter part of the algorithm, which checks for the general origin case with general lattice shifts, is still being temperamental, though. --- gap/common.gi | 8 ++++- gap/wyckoff.gi | 91 ++++++++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 91 insertions(+), 8 deletions(-) diff --git a/gap/common.gi b/gap/common.gi index b303d73..a6a98fa 100644 --- a/gap/common.gi +++ b/gap/common.gi @@ -278,7 +278,13 @@ end; #F IntSolutionMat( M, b ) . . integer solution for inhom system of equations ## IntSolutionMat := function( M, b ) - return IntSolutionsMat( M, b )[1]; + local r; + r := IntSolutionsMat( M, b ); + if r = fail then + return fail; + else + return IntSolutionsMat( M, b )[1]; + fi; end; ############################################################################# diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index be815e3..b5e1859 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -665,7 +665,7 @@ end; #F IsTranslationInBasis( S ) . . . . tests if Wyckoff position is in lattice ## IsTranslationInBasis := function(f) - local STB, t, S, rank, gens, xs; + local STB, t, d, S, gens, xs, translations, basis, t2, Q, R, sol, M, fvecs; # From our record f, checks whether the translation vector lies within # the group's translation basis. Returns Boolean. S := f.spaceGroup; @@ -675,15 +675,19 @@ IsTranslationInBasis := function(f) fi; # Otherwise, consider if the translation vector lies within the translation basis t := f.translation; + d := Length(t); STB := TranslationBasis(S); # If the Wyckoff basis is non-empty, then maybe another point on the Wyckoff # position lies in the crystal's translation basis. if Length(f.basis) > 0 then STB := Concatenation(STB, -f.basis); fi; + # Make all parts of STB integers, so can use RowEchelonForm safely. + # TODO + # Simplify (so Rank = Length) + STB := RowEchelonForm(STB); # Trivial case: the basis of allowed points fills the whole space - rank := RankMatrix(TransposedMat(STB)); - if rank = Length(t) then + if Length(STB) = d then return true; fi; # Now, we can't simply check if t is in the span of STB, because @@ -693,11 +697,81 @@ IsTranslationInBasis := function(f) if IsAffineCrystGroupOnLeft(S) then gens := List(gens, TransposedMat); fi; + # We'll also filter the pure translations out of gens, because those have + # been caught in TranslationBasis(S); + gens := Filtered(gens, g -> g{[1..d]}{[1..d]} <> IdentityMat(d)); + # Let us check for a simpler case: the origin is at zero. + # This is guaranteed if there are no translation components in the generators, + # or the translation components are within the span of the translation basis. + translations := List(gens, g -> g[d+1]{[1..d]}); + if RankMatrix(Concatenation(STB, translations)) = Length(STB) then + # There are no symmetry operators to take the origin outside the lattice + # Can use a cheaper check, as solutions don't need to account for an + # extra translation. + if RankMatrix(Concatenation(STB, [t])) = Length(STB) then + return true; + else + # Check if t modulo Z is usable + # Because earlier parts of the algorithm give the translation modulo + # fictitious lattice vectors, so we want to choose the correct modulo. + # Convert to standard basis + basis := SymmetricInternalBasis(S); + t := t * Inverse(basis); + STB := STB * Inverse(basis); + Q := IdentityMat(d); + R := RowEchelonFormT(TransposedMat(STB), Q); + # Q * TransposedMat(STB) = R (except R drops zero rows) + t2 := Q * t; + # Grab just the inconsistent part of the solution vector. + t2{[1..Length(R)]} := 0 * [1..Length(R)]; + t2 := Inverse(Q) * t2; # Convert out of row echelon form + # Check that it is integers + if not ForAll(t2, IsInt) then + return false; + fi; + # If it is, correct the translation. + f.translation := f.translation - t2 * basis; + #ReduceAffineSubspaceLattice(f); + return true; + fi; + fi; + # xs are the difference between point t and point t after being operated on. - xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..Length(t)]}); - # Using Rouche-Capelli theorem. If all of xs are in the span of STB, then - # the extra ranks will vanish. If any are not, then the rank will be bigger. - return rank = RankMatrix(TransposedMat(Concatenation(STB, xs))); + xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..d]}); + # If xs are all in the span of the translation basis, then the point being + # acted on is staying inside the lattice, so is valid. + if Length(STB) = RankMatrix(Concatenation(STB, xs)) then + return true; + fi; + # Otherwise, we need to test if this point shifted by an integer number of + # fictitious lattice vectors would give a point in the lattice. + # First, grab the fictitious lattice vectors. + fvecs := Filtered( SymmetricInternalBasis(S), v -> not v in TranslationBasis(S) ); + # We now solve the system of all xs simultaneously. + Q := IdentityMat(d * Length(gens)); + R := RowEchelonFormT(KroneckerProduct(IdentityMat(Length(gens)), TransposedMat(STB)), Q); + t2 := Q * Flat(xs); # Q is the transformation taking to REF. + # Grab just the inconsistent part + t2{[1..Length(R)]} := 0 * [1..Length(R)]; + t2 := Inverse(Q) * t2; # Convert out of REF. + # We now have (g-I) * fvec * n = t2. + # We want to find n if it is integers. + # Stack up all the linear parts of the generators. + # (Remember that gens are RightAction, so normally act on row vectors.) + # (But I'm doing maths with column vectors at the moment.) + M := Concatenation(List(gens, g -> TransposedMat(g{[1..d]}{[1..d]}) - IdentityMat(d) )); + # Multiply by the vectors of interest. + M := M * TransposedMat(fvecs); + # Find an integer solution. (IntSolutionMat works on RightAction) + sol := IntSolutionMat(TransposedMat(M), t2); + if sol = fail then + return false; + else + # We have a solution. Correct the translation and go home. + f.translation := f.translation - sol * fvecs; + #ReduceAffineSubspaceLattice(f); + return true; + fi; end; ############################################################################# @@ -741,6 +815,9 @@ WyPosStep := function( idx, G, M, b, lst ) if not f in lst.sp[d] then # Exclude f if f.translation lies # outside the span of TranslationBasis(lst.S). + # IsTranslationInBasis also accounts for f.translation possibly + # being off modulo 1 and corrects it, and accounts for + # non-centered origins. if IsTranslationInBasis(f) then O := Orbit( lst.S2, Immutable(f), ImageAffineSubspaceLattice ); w := ShallowCopy( f ); From d32a8c7d1af0c927160f2be7846d1d176176a6a4 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:14:31 -0800 Subject: [PATCH 14/31] IsTranslationInBasis now properly finds some vectors It now identifies when an integer change in the ficticious basis can be performed and does it. Fixes from last commit: - Fractions in STB. - Solutions to the inconsistent part being rejected because they change the consistent part. - Forgetting to ReduceAffineSubspaceLattice (important for taking into canonical form). However, a bug has arisen: I now get *too many* Wyckoff positions in some cases. --- gap/wyckoff.gi | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index b5e1859..57423c9 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -682,8 +682,10 @@ IsTranslationInBasis := function(f) if Length(f.basis) > 0 then STB := Concatenation(STB, -f.basis); fi; - # Make all parts of STB integers, so can use RowEchelonForm safely. - # TODO + # Make all vectors in STB integers, so can use RowEchelonForm safely. + # We can do this safely because we don't care about the magnitude of these + # vectors, only their span. + STB := List( STB, v -> v * Lcm(List(v, DenominatorRat)) ); # Simplify (so Rank = Length) STB := RowEchelonForm(STB); # Trivial case: the basis of allowed points fills the whole space @@ -731,11 +733,10 @@ IsTranslationInBasis := function(f) fi; # If it is, correct the translation. f.translation := f.translation - t2 * basis; - #ReduceAffineSubspaceLattice(f); + ReduceAffineSubspaceLattice(f); return true; fi; fi; - # xs are the difference between point t and point t after being operated on. xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..d]}); # If xs are all in the span of the translation basis, then the point being @@ -753,7 +754,6 @@ IsTranslationInBasis := function(f) t2 := Q * Flat(xs); # Q is the transformation taking to REF. # Grab just the inconsistent part t2{[1..Length(R)]} := 0 * [1..Length(R)]; - t2 := Inverse(Q) * t2; # Convert out of REF. # We now have (g-I) * fvec * n = t2. # We want to find n if it is integers. # Stack up all the linear parts of the generators. @@ -761,15 +761,17 @@ IsTranslationInBasis := function(f) # (But I'm doing maths with column vectors at the moment.) M := Concatenation(List(gens, g -> TransposedMat(g{[1..d]}{[1..d]}) - IdentityMat(d) )); # Multiply by the vectors of interest. - M := M * TransposedMat(fvecs); - # Find an integer solution. (IntSolutionMat works on RightAction) - sol := IntSolutionMat(TransposedMat(M), t2); + # Move to the same REF + M := Q * M * TransposedMat(fvecs); + # Find an integer solution, for just the inconsistent part. + # (IntSolutionMat works on RightAction) + sol := IntSolutionMat(TransposedMat(M{[Length(R)+1..Length(M)]}), t2{[Length(R)+1..Length(t2)]}); if sol = fail then return false; else # We have a solution. Correct the translation and go home. f.translation := f.translation - sol * fvecs; - #ReduceAffineSubspaceLattice(f); + ReduceAffineSubspaceLattice(f); return true; fi; end; From 2ac4f939d55bb28e9f1ed466bf3faf1269254914 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:20:09 -0800 Subject: [PATCH 15/31] Fix duplicate Wyckoff positions I needed to adjust the translation before checking for duplicates, otherwise I could create duplicates. This may have slightly reduced performance for non-pathological cases, but I don't care. IT WORKS NOW! --- gap/wyckoff.gi | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 57423c9..746eded 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -814,13 +814,15 @@ WyPosStep := function( idx, G, M, b, lst ) fi; f.spaceGroup := lst.S; ReduceAffineSubspaceLattice( f ); - if not f in lst.sp[d] then + if IsTranslationInBasis(f) then # Exclude f if f.translation lies # outside the span of TranslationBasis(lst.S). # IsTranslationInBasis also accounts for f.translation possibly # being off modulo 1 and corrects it, and accounts for # non-centered origins. - if IsTranslationInBasis(f) then + if not f in lst.sp[d] then + # We check for duplicates after we potentially correct + # the translation. O := Orbit( lst.S2, Immutable(f), ImageAffineSubspaceLattice ); w := ShallowCopy( f ); w.class := c; From ed30a07e51bd30bee09cb685cfa85494973f80f5 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 19 Jan 2024 14:41:30 -0800 Subject: [PATCH 16/31] Remove unnecessary new function IntSolutionsMat I thought I would need it. Turns out I don't. I only needed a single specific solution. Best not to clutter the namespace. --- gap/common.gi | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/gap/common.gi b/gap/common.gi index a6a98fa..4a7c821 100644 --- a/gap/common.gi +++ b/gap/common.gi @@ -212,9 +212,9 @@ end; ############################################################################# ## -#F IntSolutionsMat( M, b ) . .integer solutions for inhom system of equations +#F IntSolutionMat( M, b ) . . integer solution for inhom system of equations ## -IntSolutionsMat := function( M, b ) +IntSolutionMat := function( M, b ) local Q, den, sol, i, x; @@ -269,24 +269,10 @@ IntSolutionsMat := function( M, b ) fi; od; - return [ sol*Q{[1..Length(sol)]}, Q{[Length(sol)+1..Length(Q)]} ]; + return sol*Q{[1..Length(sol)]}; end; -############################################################################# -## -#F IntSolutionMat( M, b ) . . integer solution for inhom system of equations -## -IntSolutionMat := function( M, b ) - local r; - r := IntSolutionsMat( M, b ); - if r = fail then - return fail; - else - return IntSolutionsMat( M, b )[1]; - fi; -end; - ############################################################################# ## #F ReducedLatticeBasis . . . . . . . . . reduce lattice basis to normal form From dbb23ce81eabfa065feb70acaa450876e33c8739 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Wed, 24 Jan 2024 16:56:54 -0800 Subject: [PATCH 17/31] SymmetricInternalBasis now guarantees order Now, the vectors from TranslationBasis always come first and the extra vectors are appended on, rather than the extra vectors getting shuffled into the mix. --- gap/wyckoff.gi | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 746eded..a0980d9 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -148,8 +148,8 @@ function( S ) Add(T, v); if Length(T) = d then if Determinant(T) < 0 then - # Rearrange to be positive determinant. - T{[d-1,d]} := T{[d,d-1]}; + # Change sign to be positive determinant. + T[d] := -T[d]; fi; return T; fi; @@ -164,8 +164,8 @@ function( S ) Add(T, v); if Length(T) = d then if Determinant(T) < 0 then - # Rearrange to be positive determinant. - T{[d-1,d]} := T{[d,d-1]}; + # Change sign to be positive determinant. + T[d] := -T[d]; fi; return T; fi; @@ -194,8 +194,8 @@ function( S ) Append(T, comp); fi; if Determinant(T) < 0 then - # Rearrange to be positive determinant. - T{[d-1,d]} := T{[d,d-1]}; + # Change sign to be positive determinant. + T[d] := -T[d]; fi; return T; end ); From b45b42a0f15bee419416a46927618d8d24945f70 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Wed, 24 Jan 2024 17:07:47 -0800 Subject: [PATCH 18/31] Subperiodic Wyckoff test covers non-shifted-origin The code for shifted and non-shifted origins in WyckoffPositions includes some different parts, so best to test it. --- tst/subperiodic.tst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index 9f9f8e0..fb79838 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -176,6 +176,12 @@ gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2) ) ) ); gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2)^C ) ) ); [ 3, 6, 3, 11, 10, 5, 5, 10 ] +# An arbitrary transformation without a translation, +# just to ensure code coverage of the non-shifted case. +gap> C := [ [ 5, -1, 0, 0 ], [ 2, 0, 1, 0 ], [ -3, 1, -1, 0 ], [ 0, 0, 0, 1 ] ];; +gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2)^C ) ) ); +[ 3, 6, 3, 11, 10, 5, 5, 10 ] + # Check that changing CrystGroupDefaultAction works as expected gap> CrystGroupDefaultAction; "RightAction" From f981fbf8552bcb07037bf93da19517a313e0af2e Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Wed, 24 Apr 2024 17:46:28 -0700 Subject: [PATCH 19/31] Include all the subperiodic group settings This includes changing the default setting. It is no longer always '1' (sometimes '1' isn't even a setting). If you weren't trying to pass the setting information before, then there will be no change to your code. --- grp/subgrp.gi | 60 +- grp/subgrp.grp | 4452 ++++++++++++++++++++++++++++++++++--------- tst/subperiodic.tst | 30 +- 3 files changed, 3580 insertions(+), 962 deletions(-) diff --git a/grp/subgrp.gi b/grp/subgrp.gi index 27ea587..05e5c0b 100644 --- a/grp/subgrp.gi +++ b/grp/subgrp.gi @@ -20,7 +20,12 @@ InstallGlobalFunction( SubPeriodicGroupSettingsIT, function( type, nr ) Error( "frieze group number must be in [1..7]" ); fi; elif type = "Rod" then - if nr in [1..75] then + if nr in [3..22] then + # The settings are "abc" etc, not single characters. + # Sorry if this breaks the convention, but the alternative is to + # not follow the International Tables. + return RecNames( RodGroupList[nr] ); + elif nr in [1..75] then return List( RecNames( RodGroupList[nr] ), x -> x[1] ); else Error( "rod group number must be in [1..75]" ); @@ -42,26 +47,56 @@ end ); ## InstallGlobalFunction( SubPeriodicGroupDataIT, function( r ) - local settings; - if IsBound (r.setting) and r.setting <> '1' then - Error( "requested setting is not available" ); + local settings, setting; + settings := SubPeriodicGroupSettingsIT(r.type, r.nr); + if IsBound(r.setting) then + if not (r.setting in settings) then + Error( "requested setting is not available" ); + fi; + else + # No setting provided. Find the default setting. + if r.type = "Frieze" then + r.setting := 'a'; + elif r.type = "Rod" then + if "abc" in settings then + r.setting := "abc"; + else + r.setting := '1'; + fi; + elif r.type = "Layer" then + if 'a' in settings then + r.setting := 'a'; + elif r.nr in [52,62,64] then + # The alternative origin choice. + r.setting := '2'; + else + r.setting := '1'; + fi; + else + Error( "only types Frieze, Rod, or Layer are supported, but got ", r.type ); + fi; + fi; + # Convert from character to string, if required. + if not IsList(r.setting) then + setting := [r.setting]; + else + setting := r.setting; fi; - r.setting := '1'; if r.type = "Frieze" then if r.nr in [1..7] then - return FriezeGroupList[r.nr].1; + return FriezeGroupList[r.nr].(setting); else Error( "frieze group number must be in [1..7]" ); fi; elif r.type = "Rod" then if r.nr in [1..75] then - return RodGroupList[r.nr].1; + return RodGroupList[r.nr].(setting); else Error( "rod group number must be in [1..75]" ); fi; elif r.type = "Layer" then if r.nr in [1..80] then - return LayerGroupList[r.nr].1; + return LayerGroupList[r.nr].(setting); else Error( "layer group number must be in [1..80]" ); fi; @@ -75,7 +110,7 @@ end ); #M SubPeriodicGroupFunIT . . . constructor function for IT subperiodic group ## InstallGlobalFunction( SubPeriodicGroupFunIT, function( r ) - local data, gens, vec, name, norm, S, P, N; + local data, gens, vec, name, norm, S, P, N, setting; data := SubPeriodicGroupDataIT( r ); gens := ShallowCopy( data.generators ); if r.action = LeftAction then @@ -86,8 +121,13 @@ InstallGlobalFunction( SubPeriodicGroupFunIT, function( r ) S := AffineCrystGroupOnRight( gens ); name := "SubPeriodicGroupOnRightIT("; fi; + if not IsList(r.setting) then + setting := [r.setting]; + else + setting := r.setting; + fi; SetName( S, Concatenation( name, r.type, ",", String(r.nr), - ",'", [r.setting], "')" ) ); + ",'", setting, "')" ) ); return S; end ); diff --git a/grp/subgrp.grp b/grp/subgrp.grp index 0a0a2c4..f492733 100644 --- a/grp/subgrp.grp +++ b/grp/subgrp.grp @@ -12,30 +12,65 @@ #M FriezeGroupList . . . . . . . . . . . . . . . . data for IT frieze groups ## BindGlobal("FriezeGroupList", -[ -rec(1:=rec(generators:=[[[1, 0, 0], [0, 1, 0], [0, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[-1, 0, 0], [0, 1, 0], [0, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0], [0, -1, 0], [0, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0], [0, -1, 0], [1/2, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], - [[-1, 0, 0], [0, 1, 0], [0, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])), - -rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], - [[-1, 0, 0], [0, 1, 0], [1/2, 0, 1]], - [[1, 0, 0], [0, 1, 0], [1, 0, 1]]])) -] +[rec( +a := rec( +generators := +[[[1,0,0],[0,1,0],[0,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[1,0,0],[0,1,0],[0,0,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := +[[[-1,0,0],[0,1,0],[0,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := +[[[1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[-1,0,0],[0,1,0],[0,0,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := [[[1,0,0],[0,-1,0],[1/2,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := [[[-1,0,0],[0,1,0],[0,-1/2,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[-1,0,0],[0,1,0],[0,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +a := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[-1,0,0],[0,1,0],[1/2,0,1]], +[[1,0,0],[0,1,0],[1,0,1]]]), +b := rec( +generators := +[[[-1,0,0],[0,-1,0],[0,0,1]], +[[1,0,0],[0,-1,0],[0,-1/2,1]], +[[1,0,0],[0,1,0],[0,-1,1]]]))] ); ############################################################################# @@ -43,411 +78,1959 @@ rec(1:=rec(generators:=[[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], #M RodGroupList . . . . . . . . . . . . . . . . . . . data for IT rod groups ## BindGlobal("RodGroupList", -[ -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/4, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 3/4, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/4, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 3/4, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 2/3, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 2/3, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 1/2, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 1/2, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 1, 1]]])) -] +[rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +abc := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +acb := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]]]), +bac := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +bca := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +cab := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]]), +cba := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/4,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,3/4,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/4,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,3/4,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,2/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,2/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,1/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,1/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,2/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,1/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,2/3,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,1/2,1]], +[[1,1,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,1,1]]]))] ); ############################################################################# @@ -455,520 +2038,1497 @@ rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, #M LayerGroupList . . . . . . . . . . . . . . . . . data for IT layer groups ## BindGlobal("LayerGroupList", -[ -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [1/2, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [1/2, 1/2, 0, 1]], - [[0, 1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [1/2, 0, 0, 1]], - [[-1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 1/2, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[0, -1, 0, 0], [-1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])), - -rec(1:=rec(generators:=[[[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [-1, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]], - [[0, 1, 0, 0], [1, 0, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[-1, 0, 0, 0], [0, -1, 0, 0], [0, 0, -1, 0], [0, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [1, 0, 0, 1]], - [[1, 0, 0, 0], [0, 1, 0, 0], [0, 0, 1, 0], [0, 1, 0, 1]]])) -] -); \ No newline at end of file +[rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[-1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]]), +3 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,-1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[-1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]]), +3 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[-1,-1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +a := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +b := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,-1,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]), +2 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0], +[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]])),rec( +1 := rec( +generators := +[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +], +[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], +[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0], +[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], +[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[1,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,1,0], +[0,1,0,1]]]))] +); diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index fb79838..7026022 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -17,9 +17,12 @@ gap> G^IdentityMat(4); gap> TranslationBasis( G ); [ [ 1, 0, 0 ], [ 0, 1, 0 ] ] +gap> G := LayerGroupIT( 8, 'b' ); +SubPeriodicGroupOnRightIT(Layer,8,'b') + # Test that rod groups are conjured correctly gap> G := RodGroupIT( 7 ); -SubPeriodicGroupOnRightIT(Rod,7,'1') +SubPeriodicGroupOnRightIT(Rod,7,'abc') gap> IsAffineCrystGroupOnRight( G ); true @@ -30,9 +33,15 @@ gap> G^IdentityMat(4); gap> TranslationBasis( G ); [ [ 0, 0, 1 ] ] +gap> G := RodGroupIT( 12, "bca" ); +SubPeriodicGroupOnRightIT(Rod,12,'bca') + +gap> TranslationBasis( G ); +[ [ 0, 1, 0 ] ] + # Test that frieze groups are conjured correctly gap> G := FriezeGroupIT( 2 ); -SubPeriodicGroupOnRightIT(Frieze,2,'1') +SubPeriodicGroupOnRightIT(Frieze,2,'a') gap> IsAffineCrystGroupOnRight( G ); true @@ -44,6 +53,12 @@ Group([ [ [ -1, 0, 0 ], [ 0, -1, 0 ], [ 0, 0, 1 ] ], gap> TranslationBasis( G ); [ [ 1, 0 ] ] +gap> G := FriezeGroupIT( 2, 'b' ); +SubPeriodicGroupOnRightIT(Frieze,2,'b') + +gap> TranslationBasis( G ); +[ [ 0, 1 ] ] + # Test that different ways of calling the same group work gap> SubPeriodicGroupIT("Layer", 23) = LayerGroupIT(23); true @@ -124,7 +139,7 @@ true # Test that Wyckoff works on the left gap> G := SubPeriodicGroupOnLeftIT("Layer", 12); -SubPeriodicGroupOnLeftIT(Layer,12,'1') +SubPeriodicGroupOnLeftIT(Layer,12,'a') gap> G = TransposedMatrixGroup(LayerGroupIT(12)); true @@ -189,7 +204,7 @@ gap> CrystGroupDefaultAction; gap> SetCrystGroupDefaultAction(LeftAction); gap> G := LayerGroupIT(12); -SubPeriodicGroupOnLeftIT(Layer,12,'1') +SubPeriodicGroupOnLeftIT(Layer,12,'a') gap> G ^ IdentityMat(4); @@ -197,14 +212,17 @@ gap> G ^ IdentityMat(4); gap> IsAffineCrystGroupOnLeft(G); true +gap> LayerGroupIT(8, 'b'); +SubPeriodicGroupOnLeftIT(Layer,8,'b') + gap> G := RodGroupIT(5); -SubPeriodicGroupOnLeftIT(Rod,5,'1') +SubPeriodicGroupOnLeftIT(Rod,5,'abc') gap> IsAffineCrystGroupOnLeft(G); true gap> G := FriezeGroupIT(2); -SubPeriodicGroupOnLeftIT(Frieze,2,'1') +SubPeriodicGroupOnLeftIT(Frieze,2,'a') gap> IsAffineCrystGroupOnLeft(G); true From ec2ddc0212c96b440eb2a05fa3a5850d940fce9e Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 25 Apr 2024 16:18:13 -0700 Subject: [PATCH 20/31] Precomputed translation basis in IT subperiodic groups Presumably this was to save on computation? It's how space groups are done. I have not pre-computed the Normalizer. One would want to ensure that the Normalizer works properly for subperiodic groups first (possibly by replacing InternalBasis with SymmetricInternalBasis). --- grp/subgrp.gi | 11 +- grp/subgrp.grp | 2818 +++++++++++++++---------------------------- tst/subperiodic.tst | 6 +- 3 files changed, 979 insertions(+), 1856 deletions(-) diff --git a/grp/subgrp.gi b/grp/subgrp.gi index 05e5c0b..5220ded 100644 --- a/grp/subgrp.gi +++ b/grp/subgrp.gi @@ -110,15 +110,19 @@ end ); #M SubPeriodicGroupFunIT . . . constructor function for IT subperiodic group ## InstallGlobalFunction( SubPeriodicGroupFunIT, function( r ) - local data, gens, vec, name, norm, S, P, N, setting; + local data, gens, vec, name, S, setting, d; data := SubPeriodicGroupDataIT( r ); gens := ShallowCopy( data.generators ); + d := Length(data.basis[1]); + for vec in data.basis do + Add( gens, AugmentedMatrix( IdentityMat( d ), vec ) ); + od; if r.action = LeftAction then gens := List( gens, TransposedMat ); - S := AffineCrystGroupOnLeft( gens ); + S := AffineCrystGroupOnLeftNC( gens, IdentityMat(d+1) ); name := "SubPeriodicGroupOnLeftIT("; else - S := AffineCrystGroupOnRight( gens ); + S := AffineCrystGroupOnRightNC( gens, IdentityMat(d+1) ); name := "SubPeriodicGroupOnRightIT("; fi; if not IsList(r.setting) then @@ -126,6 +130,7 @@ InstallGlobalFunction( SubPeriodicGroupFunIT, function( r ) else setting := r.setting; fi; + AddTranslationBasis( S, data.basis ); SetName( S, Concatenation( name, r.type, ",", String(r.nr), ",'", setting, "')" ) ); return S; diff --git a/grp/subgrp.grp b/grp/subgrp.grp index f492733..3d2127b 100644 --- a/grp/subgrp.grp +++ b/grp/subgrp.grp @@ -14,63 +14,59 @@ BindGlobal("FriezeGroupList", [rec( a := rec( -generators := -[[[1,0,0],[0,1,0],[0,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +basis := [[1,0]], +generators := []), b := rec( -generators := -[[[1,0,0],[0,1,0],[0,0,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +basis := [[0,1]], +generators := [])),rec( a := rec( -generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +basis := [[1,0]], +generators := [[[-1,0,0],[0,-1,0],[0,0,1]]]), b := rec( -generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +basis := [[0,1]], +generators := [[[-1,0,0],[0,-1,0],[0,0,1]]])), +rec( a := rec( -generators := -[[[-1,0,0],[0,1,0],[0,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +basis := [[1,0]], +generators := [[[-1,0,0],[0,1,0],[0,0,1]]]), b := rec( -generators := -[[[1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +basis := [[0,1]], +generators := [[[1,0,0],[0,-1,0],[0,0,1]]])), +rec( a := rec( -generators := -[[[1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +basis := [[1,0]], +generators := [[[1,0,0],[0,-1,0],[0,0,1]]]), b := rec( -generators := -[[[-1,0,0],[0,1,0],[0,0,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +basis := [[0,1]], +generators := [[[-1,0,0],[0,1,0],[0,0,1]]])), +rec( a := rec( -generators := [[[1,0,0],[0,-1,0],[1/2,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +basis := [[1,0]], +generators := [[[1,0,0],[0,-1,0],[1/2,0,1]]]), b := rec( -generators := [[[-1,0,0],[0,1,0],[0,-1/2,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +basis := [[0,1]], +generators := [[[-1,0,0],[0,1,0],[0,-1/2,1]]])), +rec( a := rec( +basis := [[1,0]], generators := [[[-1,0,0],[0,-1,0],[0,0,1]], -[[-1,0,0],[0,1,0],[0,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +[[-1,0,0],[0,1,0],[0,0,1]]]), b := rec( +basis := [[0,1]], generators := [[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,1,0],[0,-1,1]]])),rec( +[[1,0,0],[0,-1,0],[0,0,1]]])),rec( a := rec( +basis := [[1,0]], generators := [[[-1,0,0],[0,-1,0],[0,0,1]], -[[-1,0,0],[0,1,0],[1/2,0,1]], -[[1,0,0],[0,1,0],[1,0,1]]]), +[[-1,0,0],[0,1,0],[1/2,0,1]]]), b := rec( +basis := [[0,1]], generators := [[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,-1,0],[0,-1/2,1]], -[[1,0,0],[0,1,0],[0,-1,1]]]))] +[[1,0,0],[0,-1,0],[0,-1/2,1]]]))] ); ############################################################################# @@ -80,1405 +76,1122 @@ generators := BindGlobal("RodGroupList", [rec( 1 := rec( -generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +basis := [[0,0,1]], +generators := [])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[ +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] +]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[ +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] +]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[ +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] +]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[ +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] +]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,-1/2,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[-1/2,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[-1/2,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( abc := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), acb := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,-1/2,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]]]), +[0,0,0,1]]]), bac := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), bca := rec( +basis := [[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), cab := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]]), +[0,0,0,1]]]), cba := rec( +basis := [[1,0,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [-1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/4,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/4,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,3/4,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,3/4,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,1/4,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,3/4,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,1/2,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -1486,13 +1199,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -1500,13 +1211,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -1514,13 +1223,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -1528,457 +1235,373 @@ generators := [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,2/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,2/3,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,2/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,2/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/3,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,2/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,1/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,2/3,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,2/3,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,1/2,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,1/2,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,1/2,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], @@ -1986,13 +1609,11 @@ generators := [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], @@ -2000,13 +1621,11 @@ generators := [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,1/2,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], @@ -2014,13 +1633,11 @@ generators := [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[0,0,1]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], @@ -2028,9 +1645,7 @@ generators := [[1,1,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1,1]]]))] +[0,0,0,1]]]))] ); ############################################################################# @@ -2040,1197 +1655,788 @@ generators := BindGlobal("LayerGroupList", [rec( 1 := rec( -generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +basis := [[1,0,0],[0,1,0]], +generators := [])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[ +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] +]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), 2 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]]), +[-1/2,-1/2,0,1]]]), 3 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,-1,0,1]]])),rec( +[0,1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), 2 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [-1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]]), +[0,0,0,1]]]), 3 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[-1,-1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( a := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,0,0,1]]])),rec( a := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[ +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] +]]), b := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[ +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] +]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,-1/2,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,-1/2,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,1/2,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[1/2,-1/2,0,1]]])),rec( a := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,0,0,1]]]), b := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,-1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,-1/2,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( a := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[0,0,0,1]]]), b := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[1,0,0,0],[0,-1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,-1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1/2,1/2,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1,1,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [1,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,1/2,0,1]]]), 2 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[1/2,1/2,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3238,15 +2444,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1,1,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3254,15 +2456,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,1/2,0,1]]]), 2 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3270,15 +2468,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3286,15 +2480,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1,1,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3302,15 +2492,11 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [1/2,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]), +[1/2,1/2,0,1]]]), 2 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [1/2,1/2,0,1]], [[0,1,0,0],[-1,0,0,0],[0,0,1,0], @@ -3318,207 +2504,143 @@ generators := [[-1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,1/2,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[1,0,0,0],[0,1,0,0],[0,0,-1,0], [0,0,0,1]], [[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]])),rec( +[0,0,0,1]]])),rec( 1 := rec( +basis := [[1,0,0],[0,1,0]], generators := -[[[1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -], +[ [[0,1,0,0],[-1,-1,0,0],[0,0,1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,1,0], @@ -3526,9 +2648,5 @@ generators := [[0,1,0,0],[1,0,0,0],[0,0,-1,0], [0,0,0,1]], [[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[1,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1,0,1]]]))] +[0,0,0,1]]]))] ); diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index 7026022..db8acaf 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -12,7 +12,7 @@ gap> IsAffineCrystGroupOnRight( G ); true gap> G^IdentityMat(4); - + gap> TranslationBasis( G ); [ [ 1, 0, 0 ], [ 0, 1, 0 ] ] @@ -28,7 +28,7 @@ gap> IsAffineCrystGroupOnRight( G ); true gap> G^IdentityMat(4); - + gap> TranslationBasis( G ); [ [ 0, 0, 1 ] ] @@ -207,7 +207,7 @@ gap> G := LayerGroupIT(12); SubPeriodicGroupOnLeftIT(Layer,12,'a') gap> G ^ IdentityMat(4); - + gap> IsAffineCrystGroupOnLeft(G); true From 0525b6fad9c6de979814d3568ac33e9f020a6c38 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 25 Apr 2024 18:21:45 -0700 Subject: [PATCH 21/31] Implement WyPosSGL and WyckoffPositionsByStabilizer for subperiodic groups This was as simple as substituting in the replacement functions and tests I had implemented for WyPosAT. I spotted a potential bug in testing WyckoffPositionsByStabilizer, but that bug is also present when using a space group, so I'll leave it to someone else to fix. Specifically, the routine will also return Wyckoff positions with a subgroup of the stabilizer if the positions share a basis. --- gap/wyckoff.gi | 182 +++++++++++++++++++++++--------------------- tst/subperiodic.tst | 28 +++++++ 2 files changed, 123 insertions(+), 87 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index a0980d9..b08afa9 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -579,87 +579,6 @@ IsSubspaceAffineSubspaceLattice := function( U, V ) fi; end; -############################################################################# -## -#F WyPos( S, stabs, lift ) . . . . . . . . . . . . . . . . Wyckoff positions -## -WyPos := function( S, stabs, lift ) - - local d, W, T, i, lst, w, dim, a, s, r, new, orb, I, gen, U, c; - - # get representative affine subspace lattices - d := DimensionOfMatrixGroup( S ) - 1; - W := List( [0..d], i -> [] ); - T := TranslationBasis( S ); - for i in [1..Length(stabs)] do - lst := List( GeneratorsOfGroup( stabs[i] ), lift ); - if IsAffineCrystGroupOnLeft( S ) then - lst := List( lst, TransposedMat ); - fi; - lst := FixedPointsModZ( lst, d ); - for w in lst do - dim := Length( w.basis ) + 1; - w.translation := w.translation * T; - if not IsEmpty( w.basis ) then - w.basis := w.basis * T; - fi; - w.spaceGroup := S; - w.class := i; - ReduceAffineSubspaceLattice( w ); - Add( W[dim], w ); - od; - od; - - # eliminate multiple copies - I := IdentityMat( d ); - gen := Filtered( GeneratorsOfGroup( S ), g -> g{[1..d]}{[1..d]} <> I ); - if IsAffineCrystGroupOnLeft( S ) then - gen := List( gen, TransposedMat ); - fi; - U := AffineCrystGroupOnRight( gen, One( S ) ); - for i in [1..d+1] do - lst := ShallowCopy( W[i] ); - new := []; - while lst <> [] do - s := lst[1]; - c := s.class; - Unbind( s.class ); - orb := Orbit( U, Immutable(s), ImageAffineSubspaceLattice ); - lst := Filtered( lst, - x -> not rec( translation := x.translation, - basis := x.basis, - spaceGroup := x.spaceGroup ) in orb ); - s.class := c; - Add( new, WyckoffPositionObject( s ) ); - od; - W[i] := new; - od; - return Flat( W ); - -end; - -############################################################################# -## -#F WyPosSGL( S ) . . . Wyckoff positions via subgroup lattice of point group -## -WyPosSGL := function( S ) - - local P, N, lift, stabs, W; - - # get point group P, and its nice representation N - P := PointGroup( S ); - N := NiceObject( P ); - - # set up lift from nice rep to std rep - lift := x -> NiceToCrystStdRep( P, x ); - stabs := List( ConjugacyClassesSubgroups( N ), Representative ); - Sort( stabs, function(x,y) return Size(x) > Size(y); end ); - - # now get the Wyckoff positions - return WyPos( S, stabs, lift ); - -end; - ############################################################################# ## #F IsTranslationInBasis( S ) . . . . tests if Wyckoff position is in lattice @@ -668,6 +587,8 @@ IsTranslationInBasis := function(f) local STB, t, d, S, gens, xs, translations, basis, t2, Q, R, sol, M, fvecs; # From our record f, checks whether the translation vector lies within # the group's translation basis. Returns Boolean. + # Also corrects the translation vector in-place to account for false + # translations from the fake internal basis vectors. S := f.spaceGroup; # Trivial case: we have a space group if IsSpaceGroup(S) then @@ -776,6 +697,93 @@ IsTranslationInBasis := function(f) fi; end; +############################################################################# +## +#F WyPos( S, stabs, lift ) . . . . . . . . . . . . . . . . Wyckoff positions +## +WyPos := function( S, stabs, lift ) + + local d, W, T, i, lst, w, dim, a, s, r, new, orb, I, gen, U, c; + + # get representative affine subspace lattices + d := DimensionOfMatrixGroup( S ) - 1; + W := List( [0..d], i -> [] ); + T := SymmetricInternalBasis( S ); + for i in [1..Length(stabs)] do + lst := List( GeneratorsOfGroup( stabs[i] ), lift ); + if IsAffineCrystGroupOnLeft( S ) then + lst := List( lst, TransposedMat ); + fi; + lst := FixedPointsModZ( lst, d ); + for w in lst do + dim := Length( w.basis ) + 1; + w.translation := w.translation * T; + if not IsEmpty( w.basis ) then + w.basis := w.basis * T; + fi; + w.spaceGroup := S; + w.class := i; + ReduceAffineSubspaceLattice( w ); + if IsTranslationInBasis(w) then + Add( W[dim], w ); + fi; + od; + od; + + # eliminate multiple copies + I := IdentityMat( d ); + gen := Filtered( GeneratorsOfGroup( S ), g -> g{[1..d]}{[1..d]} <> I ); + if IsAffineCrystGroupOnLeft( S ) then + gen := List( gen, TransposedMat ); + fi; + U := AffineCrystGroupOnRight( gen, One( S ) ); + for i in [1..d+1] do + lst := ShallowCopy( W[i] ); + new := []; + while lst <> [] do + s := lst[1]; + c := s.class; + Unbind( s.class ); + orb := Orbit( U, Immutable(s), ImageAffineSubspaceLattice ); + lst := Filtered( lst, + x -> not rec( translation := x.translation, + basis := x.basis, + spaceGroup := x.spaceGroup ) in orb ); + s.class := c; + Add( new, WyckoffPositionObject( s ) ); + od; + W[i] := new; + od; + return Flat( W ); + +end; + +############################################################################# +## +#F WyPosSGL( S ) . . . Wyckoff positions via subgroup lattice of point group +## +WyPosSGL := function( S ) + + local P, N, lift, stabs, W; + + # get point group P, and its nice representation N + P := PointGroup( S ); + N := NiceObject( P ); + + # set up lift from nice rep to std rep + if IsSpaceGroup(S) then + lift := x -> NiceToCrystStdRep( P, x ); + else + lift := x -> NiceToCrystStdRepSymmetric( P, x ); + fi; + stabs := List( ConjugacyClassesSubgroups( N ), Representative ); + Sort( stabs, function(x,y) return Size(x) > Size(y); end ); + + # now get the Wyckoff positions + return WyPos( S, stabs, lift ); + +end; + ############################################################################# ## #F WyPosStep . . . . . . . . . . . . . . . . . . .induction step for WyPosAT @@ -926,8 +934,7 @@ InstallMethod( WyckoffPositions, "for AffineCrystGroupOnLeftOrRight", function( S ) # for small dimensions, the recursive method is faster - # Also, WyPosSGL is not yet implemented for subperiodic groups - if DimensionOfMatrixGroup( S ) < 6 or not IsSpaceGroup( S ) then + if DimensionOfMatrixGroup( S ) < 6 then return WyPosAT( S ); else return WyPosSGL( S ); @@ -944,9 +951,6 @@ InstallGlobalFunction( WyckoffPositionsByStabilizer, function( S, stb ) local stabs, P, lift; # check the arguments - if not IsSpaceGroup( S ) then - Error( "S must be a space group" ); - fi; if IsGroup( stb ) then stabs := [ stb ]; else @@ -957,7 +961,11 @@ InstallGlobalFunction( WyckoffPositionsByStabilizer, function( S, stb ) P := PointGroup( S ); # set up lift from nice rep to std rep - lift := x -> NiceToCrystStdRep( P, x ); + if IsSpaceGroup(S) then + lift := x -> NiceToCrystStdRep( P, x ); + else + lift := x -> NiceToCrystStdRepSymmetric( P, x ); + fi; stabs := List( stabs, x -> Image( NiceMonomorphism( P ), x ) ); Sort( stabs, function(x,y) return Size(x) > Size(y); end ); diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index db8acaf..d16fe1a 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -137,6 +137,34 @@ gap> G := RodGroupIT(17);; gap> Length(WyckoffPositions( G^C )) = Length(WyckoffPositions( RodGroupIT(17) )); true +# Test that WyckoffPositionsByStabilizer (and, by extension, WyPos) works +gap> G := LayerGroupIT(24);; +gap> W := WyckoffPositions(G);; +gap> sub := Group([[[-1,0,0],[0,1,0],[0,0,1]]]);; +gap> IsSubgroup(PointGroup(G), sub); +true + +gap> wp := WyckoffPositionsByStabilizer(G, sub); +[ < Wyckoff position, point group 1, translation := [ 1/4, 0, 0 ], + basis := [ [ 0, 1, 0 ], [ 0, 0, 1 ] ] > + ] + +gap> wp[1] = W[3]; +true + +# Test that the WyPosSGL algorithm works just as well as default. +gap> G := LayerGroupIT(26);; +gap> W1 := WyPosSGL(G);; +gap> W2 := WyPosAT(G);; +gap> Set(W1) = Set(W2); +true + +gap> C := [ [ 5, -1, 0, 0 ], [ 2, 0, 1, 0 ], [ -3, 1, -1, 0 ], [ 1/2, 1/3, 1, 1 ] ];; +gap> W1 := WyPosSGL( G^C );; +gap> W2 := WyPosAT( G^C );; +gap> Set(W1) = Set(W2); +true + # Test that Wyckoff works on the left gap> G := SubPeriodicGroupOnLeftIT("Layer", 12); SubPeriodicGroupOnLeftIT(Layer,12,'a') From 3db6127357dae610481a6bb802ebc639d5a0debb Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 26 Apr 2024 12:14:30 -0700 Subject: [PATCH 22/31] Update documentation in Wyckoffs Wyckoffs is no longer exclusive to space groups. can be any crystallographic group, now. (Except maybe point groups. Haven't tested those.) --- doc/cryst.tex | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/doc/cryst.tex b/doc/cryst.tex index f7ae52e..ac18322 100644 --- a/doc/cryst.tex +++ b/doc/cryst.tex @@ -470,7 +470,7 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{Wyckoff positions} -A Wyckoff position of a space group is an equivalence class of +A Wyckoff position of a crystallographic group is an equivalence class of points in Euclidean space, having stabilizers which are conjugate subgroups of . Apart from a subset of lower dimension, which contains points with even bigger stabilizers, a Wyckoff position @@ -480,7 +480,7 @@ \>WyckoffPositions( ) A -returns the list of Wyckoff positions of the space group . +returns the list of Wyckoff positions of the group . \beginexample gap> S := SpaceGroupIT(2,14); @@ -501,12 +501,12 @@ In the previous example, has three kinds of special points (the basis is empty), whose representatives all have a stabilizer -with the same point group (with label 1), one kind of special line +with the same point group (with label 3), one kind of special line (the basis has length 1), and the general position. \>WyckoffPositionsByStabilizer( , ) O -where is a space group and a subgroup of the point group or +where is a group and a subgroup of the point group or a list of such subgroups, determines only the Wyckoff positions whose representatives have a stabilizer with a point group equal to the subgroup or contained in the list , respectively. @@ -553,7 +553,7 @@ \>WyckoffSpaceGroup( ) O -returns the space group of which is a Wyckoff position. +returns the crystallographic group of which is a Wyckoff position. \beginexample gap> WyckoffSpaceGroup( W[1] ); From 5aafd89006d8bfd36a87385d1f731e0cf794f1da Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 26 Apr 2024 14:12:08 -0700 Subject: [PATCH 23/31] Comments identifying obscure bug in Wyckoff WyckoffStabilizer and WyckoffOrbit gives spurious results if S is a subperiodic group with an origin outside the span of its translation basis. --- gap/wyckoff.gi | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index b08afa9..2898620 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -221,7 +221,6 @@ function( r ) elif rk > 0 then M := r.basis; v := r.translation; - #if not IsStandardAffineCrystGroup( r.spaceGroup ) then if T <> One(T) then M := M * Ti; v := v * Ti; @@ -240,7 +239,6 @@ function( r ) Qi := Q^-1; P := Q{[1..d]}{[rk+1..d]} * Qi{[rk+1..d]}; v := List( v * P, FractionModOne ); - #if not IsStandardAffineCrystGroup( r.spaceGroup ) then if T <> One(T) then v := v * T; fi; @@ -362,6 +360,9 @@ InstallMethod( WyckoffStabilizer, true, [ IsWyckoffPosition ], 0, function( w ) local S, t, B, d, I, gen, U, r, new, n, g, v; + # BUG: Potentially returns Wyckoff Stabilizers that are too small if S is + # a subperiodic group with an origin outside the span of its translation + # basis. S := WyckoffSpaceGroup( w ); t := WyckoffTranslation( w ); B := WyckoffBasis( w ); @@ -401,6 +402,9 @@ InstallMethod( WyckoffOrbit, true, [ IsWyckoffPosition ], 0, function( w ) local S, t, B, d, I, gen, U, r, o, s; + # BUG: Potentially returns Wyckoff Orbits with too many members if S is + # a subperiodic group with an origin outside the span of its translation + # basis. S := WyckoffSpaceGroup( w ); t := WyckoffTranslation( w ); B := WyckoffBasis( w ); From 25e61fe787c4c5ab183017092591149c2e9b138f Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Fri, 26 Apr 2024 17:48:50 -0700 Subject: [PATCH 24/31] Add documentation for SubPeriodic groups (International Tables) --- doc/cryst.tex | 83 +++++++++++++++++++++++++++++++++++++++++++++++--- doc/manual.six | 13 ++++++++ 2 files changed, 91 insertions(+), 5 deletions(-) diff --git a/doc/cryst.tex b/doc/cryst.tex index ac18322..33d32ef 100644 --- a/doc/cryst.tex +++ b/doc/cryst.tex @@ -564,7 +564,7 @@ returns the stabilizer of the (generic) points in the representative affine subspace of the Wyckoff position . This stabilizer is a -subgroup of the space group of , and thus an `AffineCrystGroup'. +subgroup of the crystallographic group of , and thus an `AffineCrystGroup'. \beginexample gap> stab := WyckoffStabilizer( W[4] ); @@ -576,13 +576,13 @@ \>WyckoffOrbit( ) O determines the orbit of the representative affine subspace of the -Wyckoff position under the space group of (modulo lattice +Wyckoff position under the crystallographic group of (modulo lattice translations). The affine subspaces in this orbit are then converted into a list of Wyckoff positions, which is returned. The Wyckoff positions in this list are just different representations of . Their `WyckoffBasis' and `WyckoffTranslation' are chosen such that the induced parametrizations of their representative subspaces are -mapped onto each other under the space group operation. +mapped onto each other under the crystallographic group operation. \beginexample gap> orb := WyckoffOrbit( W[4] ); @@ -881,8 +881,9 @@ %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% \Section{International Tables} -For the user's convenience, a table with the 17 plane groups and the -230 space groups is included in {\Cryst}. These groups are given in +For the user's convenience, tables with the 17 plane groups, 230 +space groups, 7 frieze groups, 75 rod groups, and 80 layer groups +are included in {\Cryst}. These groups are given in exactly the same settings (i.e., choices of basis and origin) as in the International Tables. Space groups with a centered lattice are therefore given in the non-primitive basis crystallographers are @@ -904,6 +905,34 @@ in a rhombohedral basis (setting `\pif{r}\pif'). `\pif{h}\pif' is the default setting. +For the frieze groups, two different settings are available. +The possible settings are labelled with the characters `\pif{a}\pif' +and `\pif{b}\pif'. `\pif{a}\pif' is the default setting. + +For the orthorhombic rod groups, six settings are available. +These are labelled with the string `\pif\pif{abc}\pif\pif' or permutations +of its characters. These correspond to permutations of the , +, and directions. `\pif\pif{abc}\pif\pif' is the default setting. + +For some of the tetragonal, trigonal, and hexagonal rod groups, +two basis choices exist: `\pif{1}\pif' and `\pif{2}\pif'. `\pif{1}\pif' +is the default setting. + +For layer groups 5 and 7, three cell choices exist, which differ +by whether the glide vector is along the direction (setting +`\pif{1}\pif'), the direction (setting `\pif{2}\pif'), or the + direction (setting `\pif{3}\pif'). `\pif{1}\pif' is the default +setting. + +For some orthorhombic layer groups, they have two settings, +`\pif{a}\pif' for the abc setting, and `\pif{b}\pif' for the bac setting. +`\pif{a}\pif' is the default setting. + +For some layer groups (52, 62, and 64), there exists a point of higher +symmetry than the origin of the `\pif{1}\pif' setting. In such cases, +a second setting `\pif{2}\pif' which has this higher symmetry point as +the origin is available and is the default setting. + \>SpaceGroupSettingsIT( , ) F returns a string, whose characters label the available settings of @@ -940,5 +969,49 @@ SpaceGroupOnRightIT(3,146,'r') \endexample +The subperiodic group functions accept an argument , which is +a string which is either `\pif\pif{Frieze}\pif\pif', `\pif\pif{Rod}\pif\pif', or +`\pif\pif{Layer}\pif\pif'. This specifies the type of subperiodic group. + +\>SubPeriodicGroupSettingsIT( , ) F + +returns a string (or list), whose characters (or strings, for +multi-character settings) label the available settings of +the subperiodic group with number and type . + +\> SubPeriodicGroupOnRightIT( , ) F +\> SubPeriodicGroupOnRightIT( , , ) F + +returns subperiodic group number with type in the +representation acting on the right. In the third argument, +the desired setting can be specified. Otherwise, the +group is returned in the default setting for that group. + +\> SubPeriodicGroupOnLeftIT( , ) F +\> SubPeriodicGroupOnLeftIT( , , ) F + +returns subperiodic group number with type in the +representation acting on the left. In the third argument, +the desired setting can be specified. Otherwise, the +group is returned in the default setting for that group. + +\> SubPeriodicGroupIT( , ) F +\> SubPeriodicGroupIT( , , ) F + +returns either `SubPeriodicGroupOnRightIT' or `SubPeriodicGroupOnLeftIT' with +the same arguments, depending on the value of `CrystGroupDefaultAction'. + +\> FriezeGroupIT( ) F +\> FriezeGroupIT( , ) F + +returns `SubPeriodicGroupIT(\pif\pif{Frieze}\pif\pif, , )'. + +\> RodGroupIT( ) F +\> RodGroupIT( , ) F + +returns `SubPeriodicGroupIT(\pif\pif{Rod}\pif\pif, , )'. +\> LayerGroupIT( ) F +\> LayerGroupIT( , ) F +returns `SubPeriodicGroupIT(\pif\pif{Layer}\pif\pif, , )'. \ No newline at end of file diff --git a/doc/manual.six b/doc/manual.six index 5dfb14d..5fa693a 100644 --- a/doc/manual.six +++ b/doc/manual.six @@ -109,3 +109,16 @@ F 2.11. SpaceGroupOnLeftIT F 2.11. SpaceGroupOnLeftIT F 2.11. SpaceGroupIT F 2.11. SpaceGroupIT +F 2.11. SubPeriodicGroupSettingsIT +F 2.11. SubPeriodicGroupOnRightIT +F 2.11. SubPeriodicGroupOnRightIT +F 2.11. SubPeriodicGroupOnLeftIT +F 2.11. SubPeriodicGroupOnLeftIT +F 2.11. SubPeriodicGroupIT +F 2.11. SubPeriodicGroupIT +F 2.11. FriezeGroupIT +F 2.11. FriezeGroupIT +F 2.11. RodGroupIT +F 2.11. RodGroupIT +F 2.11. LayerGroupIT +F 2.11. LayerGroupIT From d4b0887b084d319bcdc5c83f7efa9a75ffe45082 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:26:19 -0700 Subject: [PATCH 25/31] Test fix: inconsistent representation of trivial WyckoffStabilizer Some GAP versions give Group([ ]) (specifically, 4.12), some . So now I test for being trivial directly. That should be stable across versions. --- tst/subperiodic.tst | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index d16fe1a..f84bb47 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -99,8 +99,9 @@ gap> pos := WyckoffPositions(G); basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > ] -gap> WyckoffStabilizer( pos[4] ); -Group([ ]) +# Some GAP versions give Group([ ]), some . +gap> IsTrivial( WyckoffStabilizer( pos[4] ) ); +true gap> WyckoffStabilizer( pos[3] ); Group( @@ -186,8 +187,9 @@ gap> pos := WyckoffPositions(G); basis := [ [ 1, 0, 0 ], [ 0, 1, 0 ], [ 0, 0, 1 ] ] > ] -gap> WyckoffStabilizer( pos[5] ); -Group([ ]) +# Some GAP versions give Group([ ]), some +gap> IsTrivial( WyckoffStabilizer( pos[5] ) ); +true gap> WyckoffStabilizer( pos[4] ); Group( From 7a9666686aa774851f1d99a87a6f5efcf34d9634 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 24 Jun 2024 14:49:12 -0700 Subject: [PATCH 26/31] Replace RankMatrix with RankMat for backwards compatibility with GAP 4.11 --- gap/wyckoff.gi | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 2898620..4d0f158 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -631,11 +631,11 @@ IsTranslationInBasis := function(f) # This is guaranteed if there are no translation components in the generators, # or the translation components are within the span of the translation basis. translations := List(gens, g -> g[d+1]{[1..d]}); - if RankMatrix(Concatenation(STB, translations)) = Length(STB) then + if RankMat(Concatenation(STB, translations)) = Length(STB) then # There are no symmetry operators to take the origin outside the lattice # Can use a cheaper check, as solutions don't need to account for an # extra translation. - if RankMatrix(Concatenation(STB, [t])) = Length(STB) then + if RankMat(Concatenation(STB, [t])) = Length(STB) then return true; else # Check if t modulo Z is usable @@ -666,7 +666,7 @@ IsTranslationInBasis := function(f) xs := List(gens, g -> (Concatenation(t, [1]) * (g - One(g))){[1..d]}); # If xs are all in the span of the translation basis, then the point being # acted on is staying inside the lattice, so is valid. - if Length(STB) = RankMatrix(Concatenation(STB, xs)) then + if Length(STB) = RankMat(Concatenation(STB, xs)) then return true; fi; # Otherwise, we need to test if this point shifted by an integer number of From a9d40f80b274171884a1cff548159a9ee1ce125f Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 8 Aug 2024 16:48:55 -0700 Subject: [PATCH 27/31] Missing critical test-case: Wyckoff positions of Rod Groups. Cryst now FAILS the new test. I'll need to redo the SymmetricInternalBasis logic. --- tst/subperiodic.tst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index f84bb47..f1ac81d 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -227,6 +227,11 @@ gap> C := [ [ 5, -1, 0, 0 ], [ 2, 0, 1, 0 ], [ -3, 1, -1, 0 ], [ 0, 0, 0, 1 ] ]; gap> List( [1..8], i -> Length( WyckoffPositions( LayerGroupIT(10*i - 2)^C ) ) ); [ 3, 6, 3, 11, 10, 5, 5, 10 ] +# Also need to ensure I get good results in the harder case where two +# internal basis vectors need to be generated +gap> List( [0..7], i -> Length( WyckoffPositions( RodGroupIT(10*i + 3)^C ) ) ); +[ 3, 8, 2, 3, 1, 2, 3, 12 ] + # Check that changing CrystGroupDefaultAction works as expected gap> CrystGroupDefaultAction; "RightAction" From 32cdc382d1817ac87dd68460ea569ba8a00f170d Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Thu, 8 Aug 2024 18:12:57 -0700 Subject: [PATCH 28/31] WIP rewrite of SymmetricInternalBasis Currently a regression, but necessary steps to improve mathematical robustness. We do not want out basis to be strongly dependent on the order we read the operators. Consistency is important such that transforming to Standard basis actually is standard basis. Current strategy involves grabbing all the potential basis vectors then Reducing them. Currently the results are hit-or-miss. --- gap/wyckoff.gi | 103 +++++++++++++++++++++++++++++++++++-------------- 1 file changed, 74 insertions(+), 29 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index 4d0f158..ec85d95 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -70,7 +70,7 @@ InstallMethod( SymmetricInternalBasis, true, [ IsAffineCrystGroupOnLeftOrRight ], 0, function( S ) local d, T, gens, g, vecs, eigenvals, ev, i, v, spare_eigenvecs, k, comp, - idx, e, j, order; + idx, e, j, order, rotations, M, vlist, newbasis, T2, tmpbasis; d := DimensionOfMatrixGroup(S) - 1; T := TranslationBasis(S); # If we have a space group, no need to find extra vectors @@ -83,15 +83,12 @@ function( S ) S := TransposedMatrixGroup(S); fi; # Grab the linear part of the non-trivial generators - gens := Filtered(List(GeneratorsOfGroup(S), x -> x{[1..d]}{[1..d]}), - x -> (x <> IdentityMat(d)) and (x <> -IdentityMat(d))); + gens := Filtered(PointGroup(S), x -> (x <> IdentityMat(d)) and (x <> -IdentityMat(d))); # If we have no non-trivial operators, then the regular InternalBasis # will do if Length(gens) = 0 then return InternalBasis( S ); fi; - # (If I later find that this algorithm is deficient, I might need to consider - # all representative operators, not just the generators.) # We want to consider not just the generators, but sums of generator products. # This solves for a different set of vectors, like the rotational plane. # (If GAP allowed complex numbers, we could get all eigenvectors from gens, @@ -107,6 +104,7 @@ function( S ) fi; od; spare_eigenvecs := rec(); + newbasis := []; # Go over each generator. Find the eigenvectors. for g in gens do vecs := Eigenvectors(Rationals, g); @@ -132,7 +130,11 @@ function( S ) idx := Positions(eigenvals, e); if Length(idx) > 1 then # Pop degenerate eigenvectors - spare_eigenvecs.(Length(idx)) := vecs{idx}; + if IsBound(spare_eigenvecs.(Length(idx))) then + Add(spare_eigenvecs.(Length(idx)), vecs{idx}); + else + spare_eigenvecs.(Length(idx)) := [vecs{idx}]; + fi; for i in Reversed(idx) do Remove(vecs, i); Remove(eigenvals, i); @@ -142,46 +144,89 @@ function( S ) od; # The vectors remaining in vecs have unique eigenvalues. for v in vecs do - # Check whether this new vector extends T - # If yes, Add to T. - if Rank(Concatenation(T, [v])) > Length(T) then - Add(T, v); - if Length(T) = d then - if Determinant(T) < 0 then - # Change sign to be positive determinant. - T[d] := -T[d]; - fi; - return T; - fi; + # Check whether this new vector extends T and we don't already have it + # If yes, Add to list of candidate vectors + if (Rank(Concatenation(T, [v])) > Length(T)) and not v in newbasis then + Add(newbasis, v); fi; od; od; + # Now that we have candidate (non-degenerate) vectors for the internal basis, + # let us reduce this fictional lattice. + newbasis := ReducedLatticeBasis(newbasis); + if Length(newbasis) + Length(T) > d then + ErrorNoReturn("Somehow have more basis vectors than dimensions!?!"); + fi; + if Length(newbasis) + Length(T) = d then + # We've found a full basis! + T := Concatenation(T, newbasis); + if Determinant(T) < 0 then + # Ensure our basis has a positive determinant. This is to avoid + # accidentally changing chirality when going to standard basis. + T[d] := -T[d]; + fi; + return T; + fi; # If we've made it here, we've exhausted the non-degenerate eigenvectors + # When going through the degenerate eigenvectors, it will be useful to have rotations on hand + # so we can pick symmetric degenerate sets. + # Get the Order > 2 operations + rotations := []; + # Get the actual generators, without the product sum. + gens := Filtered(PointGroup(S), x -> (x <> IdentityMat(d)) and (x <> -IdentityMat(d))); + for g in gens do + M := g{[1..d]}{[1..d]}; + if Order(M) > 2 and not M in rotations then + Add(rotations, M); + fi; + od; + #Print("SymmetricInternalBasis going to degenerate evecs.\n"); # Now let's go through the spares in increasing order of degeneracy. for i in Set(RecNames(spare_eigenvecs), Int) do - for v in spare_eigenvecs.(i) do - if Rank(Concatenation(T, [v])) > Length(T) then - Add(T, v); - if Length(T) = d then - if Determinant(T) < 0 then - # Change sign to be positive determinant. - T[d] := -T[d]; - fi; - return T; + tmpbasis := []; + for vlist in spare_eigenvecs.(i) do + for v in vlist do + if Rank(Concatenation(T, newbasis, tmpbasis, [v])) > Length(T)+Length(newbasis)+Length(tmpbasis) then + Add(tmpbasis, v); + # Test rotated versions of this vector + for g in rotations do + if Rank(Concatenation(T, newbasis, tmpbasis, [v * g])) > Length(T)+Length(newbasis)+Length(tmpbasis) then + Add(tmpbasis, v * g); + fi; + od; + fi; + od; + # Add our new basis vectors to the set + tmpbasis := ReducedLatticeBasis(tmpbasis); + Append(newbasis, tmpbasis); + newbasis := ReducedLatticeBasis(newbasis); + if Length(newbasis) + Length(T) > d then + ErrorNoReturn("Somehow have more basis vectors than dimensions!?!"); + fi; + if Length(newbasis) + Length(T) = d then + # We've found a full basis! + T := Concatenation(T, newbasis); + if Determinant(T) < 0 then + # Ensure our basis has a positive determinant. This is to avoid + # accidentally changing chirality when going to standard basis. + T[d] := -T[d]; fi; + return T; fi; od; od; # Iterate over all vectors until Length(T) = d. # If somehow we exhaust all vectors before then, resort to InternalBasis' # algorithm for filling out the remaining vectors. + Print("SymmetricInternalBasis got through all the eigenvectors.\n"); if Length(T) = 0 then return IdentityMat(d); else - comp := NullMat( d - Length(T), d ); + T2 := ReducedLatticeBasis(T); # InternalBasis assumes T is reduced + comp := NullMat( d - Length(T2), d ); i:=1; j:=1; k:=1; - while i <= Length( T ) do - while T[i][j] = 0 do + while i <= Length( T2 ) do + while T2[i][j] = 0 do comp[k][j] := 1; k := k+1; j:=j+1; od; From 34521c552b8485d2954c1bccccdb81f3415ed309 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 12 Aug 2024 13:55:46 -0700 Subject: [PATCH 29/31] Fix bug in SymmetricInternalBasis Bug where SymmetricInternalBasis would sometimes give lattice vectors which did not symmetrically map to each other. Mostly by getting the length wrong. This was resolved by ensuring we prioritise vectors in the same Orbit. --- gap/wyckoff.gi | 98 +++++++++++++++++++++++++++++++++++--------------- 1 file changed, 70 insertions(+), 28 deletions(-) diff --git a/gap/wyckoff.gi b/gap/wyckoff.gi index ec85d95..8671d94 100644 --- a/gap/wyckoff.gi +++ b/gap/wyckoff.gi @@ -62,6 +62,62 @@ InstallMethod( WyckoffTranslation, InstallMethod( WyckoffBasis, true, [ IsWyckoffPosition ], 0, w -> w!.basis ); +############################################################################# +## +#F IsVectorInSpan . . . . . . .is a vector in the span of a list of vectors? +## +IsVectorInSpan := function( v, T ) + # Catch trivial cases + if IsEmpty(T) then + return false; + fi; + if IsZero(v) then + return true; + fi; + # I could catch errors, but for an internal function I can assume + # well-behaved input + # Check if is in span + return Rank(Concatenation(T,[v])) = Rank(T); +end; + +############################################################################# +## +#F ReducedLatticeBasisByOrbits . .helper function for SymmetricInternalBasis +## +ReducedLatticeBasisByOrbits := function( T, S ) + # Like ReducedLatticeBasis, but recursively optimises the basis to have + # elements in the same orbit. This is because, when building the internal + # basis, only the orientations of the fictitious lattice vectors are defined; + # the lengths are free variables. But we want the lattive to respect the + # symmetries, so the lengths need to be related. + # T: fictitious basis vectors to reduce. + # S: Crystallographic group (to get point group and dimensionality). + local P, d, T2, t; + # Catch trivial case + if IsEmpty(T) then + return []; + fi; + P := PointGroup(S); + d := DimensionOfMatrixGroup(P); + # Initial reduction so have consistent starting point + T := ReducedLatticeBasis(T); + T2 := []; + # Iterate through vectors in T until we have full basis or exhaust T. + for t in T do + # Only consider a vector if it expands the basis. + if not IsVectorInSpan(t, T2) then + # Get all vectors in the same orbit. + Append(T2, Orbit(P, t)); + # Reduce to minimal basis set. + T2 := ReducedLatticeBasis(T2); + if Length(T2) = d then + return T2; + fi; + fi; + od; + return T2; +end; + ############################################################################# ## #M SymmetricInternalBasis . .internal basis that respects lattice symmetries @@ -100,7 +156,10 @@ function( S ) # to get complementary eigenvectors. # Sum of products of the matrix up to the Order. This is guaranteed to # have real eigenvalues (but not necessarily the same sets of degeneracy). - Add(gens, Sum(List([0..order-1], x -> gens[i]^x))); + M := Sum(List([0..order-1], x -> gens[i]^x)); + if not M in gens then + Add(gens, M); + fi; fi; od; spare_eigenvecs := rec(); @@ -131,7 +190,10 @@ function( S ) if Length(idx) > 1 then # Pop degenerate eigenvectors if IsBound(spare_eigenvecs.(Length(idx))) then - Add(spare_eigenvecs.(Length(idx)), vecs{idx}); + # Don't record duplicates + if not vecs{idx} in spare_eigenvecs.(Length(idx)) then + Add(spare_eigenvecs.(Length(idx)), vecs{idx}); + fi; else spare_eigenvecs.(Length(idx)) := [vecs{idx}]; fi; @@ -146,14 +208,14 @@ function( S ) for v in vecs do # Check whether this new vector extends T and we don't already have it # If yes, Add to list of candidate vectors - if (Rank(Concatenation(T, [v])) > Length(T)) and not v in newbasis then + if not IsVectorInSpan(v, T) and not v in newbasis then Add(newbasis, v); fi; od; od; # Now that we have candidate (non-degenerate) vectors for the internal basis, # let us reduce this fictional lattice. - newbasis := ReducedLatticeBasis(newbasis); + newbasis := ReducedLatticeBasisByOrbits(newbasis, S); if Length(newbasis) + Length(T) > d then ErrorNoReturn("Somehow have more basis vectors than dimensions!?!"); fi; @@ -168,38 +230,19 @@ function( S ) return T; fi; # If we've made it here, we've exhausted the non-degenerate eigenvectors - # When going through the degenerate eigenvectors, it will be useful to have rotations on hand - # so we can pick symmetric degenerate sets. - # Get the Order > 2 operations - rotations := []; - # Get the actual generators, without the product sum. - gens := Filtered(PointGroup(S), x -> (x <> IdentityMat(d)) and (x <> -IdentityMat(d))); - for g in gens do - M := g{[1..d]}{[1..d]}; - if Order(M) > 2 and not M in rotations then - Add(rotations, M); - fi; - od; - #Print("SymmetricInternalBasis going to degenerate evecs.\n"); # Now let's go through the spares in increasing order of degeneracy. for i in Set(RecNames(spare_eigenvecs), Int) do tmpbasis := []; for vlist in spare_eigenvecs.(i) do for v in vlist do - if Rank(Concatenation(T, newbasis, tmpbasis, [v])) > Length(T)+Length(newbasis)+Length(tmpbasis) then - Add(tmpbasis, v); - # Test rotated versions of this vector - for g in rotations do - if Rank(Concatenation(T, newbasis, tmpbasis, [v * g])) > Length(T)+Length(newbasis)+Length(tmpbasis) then - Add(tmpbasis, v * g); - fi; - od; + if not IsVectorInSpan(v, Concatenation(T, newbasis, tmpbasis)) then + # Add all rotations of this vector, but cut out redundant vectors + Append(tmpbasis, ReducedLatticeBasis(Orbit(PointGroup(S), v))); fi; od; # Add our new basis vectors to the set - tmpbasis := ReducedLatticeBasis(tmpbasis); Append(newbasis, tmpbasis); - newbasis := ReducedLatticeBasis(newbasis); + newbasis := ReducedLatticeBasisByOrbits(newbasis, S); if Length(newbasis) + Length(T) > d then ErrorNoReturn("Somehow have more basis vectors than dimensions!?!"); fi; @@ -218,7 +261,6 @@ function( S ) # Iterate over all vectors until Length(T) = d. # If somehow we exhaust all vectors before then, resort to InternalBasis' # algorithm for filling out the remaining vectors. - Print("SymmetricInternalBasis got through all the eigenvectors.\n"); if Length(T) = 0 then return IdentityMat(d); else From 3cd0fbe3b8529f2b2b3d62be19a33d6f6813a4a2 Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 12 Aug 2024 15:39:59 -0700 Subject: [PATCH 30/31] Improve code coverage in grp/subgrp.gi --- tst/subperiodic.tst | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tst/subperiodic.tst b/tst/subperiodic.tst index f1ac81d..fdb9b7e 100644 --- a/tst/subperiodic.tst +++ b/tst/subperiodic.tst @@ -63,10 +63,10 @@ gap> TranslationBasis( G ); gap> SubPeriodicGroupIT("Layer", 23) = LayerGroupIT(23); true -gap> SubPeriodicGroupIT("Rod", 14) = RodGroupIT(14); +gap> SubPeriodicGroupOnRightIT("Rod", 14) = RodGroupIT(14); true -gap> SubPeriodicGroupIT("Frieze", 3) = FriezeGroupIT(3); +gap> SubPeriodicGroupOnRightIT("Frieze", 3, 'a') = FriezeGroupIT(3); true # Confirm that different groups are different From 7b6c01966dc110379e42792414feb4db02614d8f Mon Sep 17 00:00:00 2001 From: Bernard Field <51108483+bfield1@users.noreply.github.com> Date: Mon, 14 Oct 2024 14:51:14 -0700 Subject: [PATCH 31/31] L44 has only one setting, not two Accidentally gave it settings a and b before, but these two settings are actually identical in pbam (L44). Now it only has setting '1'. --- grp/subgrp.grp | 2659 +++++++++++++----------------------------------- 1 file changed, 689 insertions(+), 1970 deletions(-) diff --git a/grp/subgrp.grp b/grp/subgrp.grp index 3d2127b..816e352 100644 --- a/grp/subgrp.grp +++ b/grp/subgrp.grp @@ -2,7 +2,7 @@ ## #A subgrp.grp Cryst library Bernard Field ## -#Y Copyright 2023 by Bernard Field +#Y Copyright 2024 by Bernard Field ## ## Data for IT subperiodic groups ## @@ -24,49 +24,44 @@ basis := [[1,0]], generators := [[[-1,0,0],[0,-1,0],[0,0,1]]]), b := rec( basis := [[0,1]], -generators := [[[-1,0,0],[0,-1,0],[0,0,1]]])), -rec( +generators := [[[-1,0,0],[0,-1,0],[0,0,1]]])),rec( a := rec( basis := [[1,0]], generators := [[[-1,0,0],[0,1,0],[0,0,1]]]), b := rec( basis := [[0,1]], -generators := [[[1,0,0],[0,-1,0],[0,0,1]]])), -rec( +generators := [[[1,0,0],[0,-1,0],[0,0,1]]])),rec( a := rec( basis := [[1,0]], generators := [[[1,0,0],[0,-1,0],[0,0,1]]]), b := rec( basis := [[0,1]], -generators := [[[-1,0,0],[0,1,0],[0,0,1]]])), -rec( +generators := [[[-1,0,0],[0,1,0],[0,0,1]]])),rec( a := rec( basis := [[1,0]], generators := [[[1,0,0],[0,-1,0],[1/2,0,1]]]), b := rec( basis := [[0,1]], -generators := [[[-1,0,0],[0,1,0],[0,-1/2,1]]])), -rec( +generators := [[[-1,0,0],[0,1,0],[0,-1/2,1]]])),rec( a := rec( basis := [[1,0]], generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[-1,0,0],[0,1,0],[0,0,1]]]), +[[[-1,0,0],[0,-1,0],[0,0,1]],[[-1,0,0],[0,1,0],[0,0,1]]]), b := rec( basis := [[0,1]], generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,-1,0],[0,0,1]]])),rec( +[[[-1,0,0],[0,-1,0],[0,0,1]],[[1,0,0],[0,-1,0],[0,0,1]]])) +,rec( a := rec( basis := [[1,0]], generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[-1,0,0],[0,1,0],[1/2,0,1]]]), +[[[-1,0,0],[0,-1,0],[0,0,1]],[[-1,0,0],[0,1,0],[1/2,0,1]]]) +, b := rec( basis := [[0,1]], generators := -[[[-1,0,0],[0,-1,0],[0,0,1]], -[[1,0,0],[0,-1,0],[0,-1/2,1]]]))] +[[[-1,0,0],[0,-1,0],[0,0,1]],[[1,0,0],[0,-1,0],[0,-1/2,1]]] +))] ); ############################################################################# @@ -80,1572 +75,793 @@ basis := [[0,0,1]], generators := [])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])), +rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] -]])),rec( +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]]])), +rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]]])), +rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,1/2,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( abc := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), acb := rec( basis := [[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bac := rec( basis := [[0,0,1]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), bca := rec( basis := [[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cab := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), cba := rec( basis := [[1,0,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/4,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/4,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,3/4,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,3/4,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/4,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/4,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,3/4,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,3/4,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/2,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]]])), +rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]]])), +rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,2/3,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,2/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0],[0,0,2/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,1/3,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,1/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,2/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,1/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,1/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,1/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,2/3,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,2/3,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,2/3,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,2/3,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,1/2,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,1/2,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,-1,0,0],[0,1,0,0],[0,0,1,0], -[0,0,1/2,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,-1,0,0],[0,1,0,0],[0,0,1,0],[0,0,1/2,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,1/2,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,1/2,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[0,0,1]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,1/2,1]], -[[1,1,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]))] +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,1/2,1]], +[[1,1,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]))] ); ############################################################################# @@ -1659,994 +875,497 @@ basis := [[1,0,0],[0,1,0]], generators := [])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])), +rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1] -]])),rec( +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]]), 2 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[-1/2,-1/2,0,1]]]), +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[-1/2,-1/2,0,1]]]), 3 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]]])), +rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 2 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[-1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[-1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), 3 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]])), +rec( a := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]]])), +rec( a := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1] -]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), b := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1] -]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,-1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,-1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,-1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,-1/2,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,-1/2,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[1/2,1/2,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,-1/2,0,1]]])),rec( a := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[0,0,0,1]]]), b := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,1,0], -[1/2,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,1,0],[1/2,0,0,1]]]), b := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( -a := rec( -basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), -b := rec( +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( +1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( a := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]), +generators := [[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]), b := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,-1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,-1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1/2,1/2,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1,1,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]]), 2 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1,1,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]]), 2 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1,1,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[1/2,1/2,0,1]]]), +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1,1,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[1/2,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[1/2,1/2,0,1]]]), 2 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[1/2,1/2,0,1]], -[[0,1,0,0],[-1,0,0,0],[0,0,1,0], -[1/2,0,0,1]], -[[-1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,1/2,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[1/2,1/2,0,1]], +[[0,1,0,0],[-1,0,0,0],[0,0,1,0],[1/2,0,0,1]], +[[-1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,1/2,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,-1,0,0],[-1,0,0,0],[0,0,1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,-1,0,0],[-1,0,0,0],[0,0,1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[1,0,0,0],[0,1,0,0],[0,0,-1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]]])),rec( +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[1,0,0,0],[0,1,0,0],[0,0,-1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]]])),rec( 1 := rec( basis := [[1,0,0],[0,1,0]], -generators := -[ -[[0,1,0,0],[-1,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,1,0], -[0,0,0,1]], -[[0,1,0,0],[1,0,0,0],[0,0,-1,0], -[0,0,0,1]], -[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0], -[0,0,0,1]]]))] +generators := [[[0,1,0,0],[-1,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,1,0],[0,0,0,1]], +[[0,1,0,0],[1,0,0,0],[0,0,-1,0],[0,0,0,1]], +[[-1,0,0,0],[0,-1,0,0],[0,0,-1,0],[0,0,0,1]]]))] );