Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
Real-time collaboration for Jupyter Notebooks, Linux Terminals, LaTeX, VS Code, R IDE, and more,
all in one place.
| Download
GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
Project: cocalc-sagemath-dev-slelievre
Views: 418346############################################################################# ## #W pcpgrp3.gi Karel Dekimpe #W Bettina Eick ## ## This file contains the 3-dimensional almost crystallographic groups ## as pcp groups. There are 17 types groups. ## ACPcpGroupDim3Nr01 := function (k1) local FTL; FTL := FromTheLeftCollector( 3 ); SetConjugate( FTL, 2, 1, [2,1, 3,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr02 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [2,0, 3,0, 4,k4] ); SetConjugate( FTL, 2, 1, [2,-1, 3,0, 4,k2] ); SetConjugate( FTL, 3, 1, [2,0, 3,-1, 4,k3] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr03 := function (k1, k2) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [2,0, 3,0, 4,0] ); SetConjugate( FTL, 2, 1, [2,1, 3,0, 4,-k2] ); SetConjugate( FTL, 3, 1, [2,0, 3,-1, 4,0] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,-1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr04 := function (k1, k2) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [2,1, 3,0, 4,k2] ); SetConjugate( FTL, 2, 1, [2,1, 3,0, 4,2*k2] ); SetConjugate( FTL, 3, 1, [2,0, 3,-1, 4,-k1] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,-1] ); SetConjugate( FTL, 3, 2, [3,1, 4,2*k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr05 := function (k1, k2) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [2,0, 3,0, 4,0] ); SetConjugate( FTL, 2, 1, [2,0, 3,1, 4,-k2] ); SetConjugate( FTL, 3, 1, [2,1, 3,0, 4,-k2] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,-1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr06 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 1 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,1, 4,0, 5,-k2] ); SetConjugate( FTL, 4, 1, [3,0, 4,-1, 5,0] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 2 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,-1, 4,0, 5,k2] ); SetConjugate( FTL, 4, 2, [3,0, 4,-1, 5,k3] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr07 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 1 , 3,0, 4,-1, 5,-2*k3 - k4] ); SetConjugate( FTL, 3, 1, [3,1, 4,0, 5,k1 - k2] ); SetConjugate( FTL, 4, 1, [3,0, 4,-1, 5,0] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 2 ); SetPower( FTL, 2, [3,0, 4,0, 5,k3] ); SetConjugate( FTL, 3, 2, [3,-1, 4,0, 5,k2] ); SetConjugate( FTL, 4, 2, [3,0, 4,-1, 5,-2*(k3 + k4)] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,2*k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr08 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,1, 4,0, 5,-k3] ); SetConjugate( FTL, 2, 1, [2, 1 , 3,1, 4,-1, 5,-2*k1 + k2 - 2*k3 - k4] ); SetConjugate( FTL, 3, 1, [3,1, 4,0, 5,-2*k3] ); SetConjugate( FTL, 4, 1, [3,0, 4,-1, 5,-k1] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 2 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,-1, 4,0, 5,k1 + 2*k3] ); SetConjugate( FTL, 4, 2, [3,0, 4,-1, 5,-k1 + 2*k2 - 2*k3] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,2*k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr09 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 1 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,0, 4,1, 5,-k3] ); SetConjugate( FTL, 4, 1, [3,1, 4,0, 5,-k3] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 2 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,-1, 4,0, 5,k2] ); SetConjugate( FTL, 4, 2, [3,0, 4,-1, 5,-k2 + 2*k3] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr10 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 4 ); SetPower( FTL, 1, [2,0, 3,0, 4,k4] ); SetConjugate( FTL, 2, 1, [2,0, 3,-1, 4,k3] ); SetConjugate( FTL, 3, 1, [2,1, 3,0, 4,-k2] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr11 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 3 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,1, 4,0, 5,-k2 - k3] ); SetConjugate( FTL, 4, 1, [3,0, 4,-1, 5,0] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 4 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,0, 4,-1, 5,k3] ); SetConjugate( FTL, 4, 2, [3,1, 4,0, 5,-k2] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr12 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,1, 4,0, 5,k3] ); SetConjugate( FTL, 2, 1, [2, 3 , 3,0, 4,-1, 5,-k2 - k3 - k4] ); SetConjugate( FTL, 3, 1, [3,1, 4,0, 5,2*k3] ); SetConjugate( FTL, 4, 1, [3,0, 4,-1, 5,-k1] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 4 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,0, 4,-1, 5,k1 - k2 - 2*k3] ); SetConjugate( FTL, 4, 2, [3,1, 4,0, 5,-k2] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,2*k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr13 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 3 ); SetPower( FTL, 1, [2,0, 3,0, 4,k4] ); SetConjugate( FTL, 2, 1, [2,-1, 3,-1, 4,k2 + k3] ); SetConjugate( FTL, 3, 1, [2,1, 3,0, 4,-k2] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr14 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 2 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,0, 4,-1, 5,-k2] ); SetConjugate( FTL, 4, 1, [3,-1, 4,0, 5,k2] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 3 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,-1, 4,-1, 5,k2 + k3] ); SetConjugate( FTL, 4, 2, [3,1, 4,0, 5,-k2] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr15 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 2 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,0, 4,1, 5,-k2] ); SetConjugate( FTL, 4, 1, [3,1, 4,0, 5,-k2] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 3 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,-1, 4,-1, 5,k1 + 3*k2 - k3] ); SetConjugate( FTL, 4, 2, [3,1, 4,0, 5,-k1 - 3*k2 + 2*k3] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr16 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 4 ); SetRelativeOrder( FTL, 1, 6 ); SetPower( FTL, 1, [2,0, 3,0, 4,k4] ); SetConjugate( FTL, 2, 1, [2,0, 3,-1, 4,k3] ); SetConjugate( FTL, 3, 1, [2,1, 3,1, 4,k1 - k2 - k3] ); SetConjugate( FTL, 4, 1, [2,0, 3,0, 4,1] ); SetConjugate( FTL, 3, 2, [3,1, 4,k1] ); SetConjugate( FTL, 4, 2, [3,0, 4,1] ); SetConjugate( FTL, 4, 3, [4,1] ); return PcpGroupByCollector(FTL); end; ACPcpGroupDim3Nr17 := function (k1, k2, k3 , k4) local FTL; FTL := FromTheLeftCollector( 5 ); SetRelativeOrder( FTL, 1, 2 ); SetPower( FTL, 1, [3,0, 4,0, 5,0] ); SetConjugate( FTL, 2, 1, [2, 5 , 3,0, 4,0, 5,-k4] ); SetConjugate( FTL, 3, 1, [3,0, 4,1, 5,-k3] ); SetConjugate( FTL, 4, 1, [3,1, 4,0, 5,-k3] ); SetConjugate( FTL, 5, 1, [3,0, 4,0, 5,-1] ); SetRelativeOrder( FTL, 2, 6 ); SetPower( FTL, 2, [3,0, 4,0, 5,k4] ); SetConjugate( FTL, 3, 2, [3,0, 4,-1, 5,k3] ); SetConjugate( FTL, 4, 2, [3,1, 4,1, 5,k1 - k2 - k3] ); SetConjugate( FTL, 5, 2, [3,0, 4,0, 5,1] ); SetConjugate( FTL, 4, 3, [4,1, 5,k1] ); return PcpGroupByCollector(FTL); end; ############################################################################# ## ## some small helpers ## ACPcpDim3Funcs := [ ACPcpGroupDim3Nr01, ACPcpGroupDim3Nr02, ACPcpGroupDim3Nr03, ACPcpGroupDim3Nr04, ACPcpGroupDim3Nr05, ACPcpGroupDim3Nr06, ACPcpGroupDim3Nr07, ACPcpGroupDim3Nr08, ACPcpGroupDim3Nr09, ACPcpGroupDim3Nr10, ACPcpGroupDim3Nr11, ACPcpGroupDim3Nr12, ACPcpGroupDim3Nr13, ACPcpGroupDim3Nr14, ACPcpGroupDim3Nr15, ACPcpGroupDim3Nr16, ACPcpGroupDim3Nr17 ]; MakeReadOnlyGlobal( "ACPcpDim3Funcs" );