GAP 4.8.9 installation with standard packages -- copy to your CoCalc project to get it
#############################################################################
##
#W resolutionAccess_LargeGroupRep.gd HAPcryst package Marc Roeder
##
##
##
#H @(#)$Id: resolutionAccess_LargeGroupRep.gd, v 0.1.11 2013/10/27 18:31:09 gap Exp $
##
#Y Copyright (C) 2006 Marc Roeder
#Y
#Y This program is free software; you can redistribute it and/or
#Y modify it under the terms of the GNU General Public License
#Y as published by the Free Software Foundation; either version 2
#Y of the License, or (at your option) any later version.
#Y
#Y This program is distributed in the hope that it will be useful,
#Y but WITHOUT ANY WARRANTY; without even the implied warranty of
#Y MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#Y GNU General Public License for more details.
#Y
#Y You should have received a copy of the GNU General Public License
#Y along with this program; if not, write to the Free Software
#Y Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
##
Revision.("/Users/roeder/gap/HAPcryst/HAPcryst/lib/datatypes/resolutionAccess_LargeGroupRep_gd"):=
"@(#)$Id: resolutionAccess_LargeGroupRep.gd, v 0.1.11 2013/10/27 18:31:09 gap Exp $";
#############################################################################
##
## This file defines a representation for HapResolutions of lrge groups.
##
## Elements of the modules in these resolutions are integer- group element
## pairs.
##
##
DeclareRepresentation("IsHapLargeGroupResolutionRep",
IsHapResolutionRep,
["dimension2",
"boundary2"]
);
HapLargeGroupResolution:=NewType(HapResolutionFamily,IsHapLargeGroupResolutionRep);
#############################################################################
##
#O Dimension(<resolution>)
##
## overload the Hap function using !.diension2
##
#DeclareOperation("Dimension",[IsHapLargeGroupResolutionRep]);
#############################################################################
##
#O BoundaryMap(<resolution>)
##
## overload the Hap function using !.boundary2
##
DeclareOperation("BoundaryMap",[IsHapLargeGroupResolutionRep]);
#############################################################################
##
#O MultiplyGroupEltsNC(<resolution>,<x>,<y>)
#O MultiplyGroupEltsNC_LargeGroupRep(<resolution>,<x>,<y>)
##
## catch, convert, delegate, convert
##
DeclareOperation("MultiplyGroupEltsNC",
[IsHapLargeGroupResolutionRep,IsPosInt,IsPosInt]);
DeclareOperation("MultiplyGroupEltsNC_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsObject,IsObject]);
#############################################################################
##
#O MultiplyGroupElts_LargeGroupRep(<resolution>,<x>,<y>)
##
## internal method for this representation.
##
DeclareOperation("MultiplyGroupElts_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsObject,IsObject]);
#############################################################################
##
#O MultiplyGroupElts(<resolution>,<x>,<y>)
##
## for x,y in other representations
##
DeclareOperation("MultiplyGroupElts",
[IsHapLargeGroupResolutionRep,IsObject,IsObject]);
#############################################################################
##
#O StrongtestValidRepresentationForLetter(resolution,term,letter)
##
## returns the strongest representation in which <letter> is a valid letter
## for <resolution>
##
DeclareOperation("StrongestValidRepresentationForLetter",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O StrongtestValidRepresentationForWord(resolution,term,word)
##
## returns the strongest representation in which <word> is a valid letter
## for <word>
##
DeclareOperation("StrongestValidRepresentationForWord",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O ConvertStandardLetterNC(<resolution>,<term>,<letter>)
#O ConvertStandardLetter(<resolution>,<term>,<letter>)
##
DeclareOperation("ConvertStandardLetterNC",
[IsHapResolutionRep,IsInt,IsDenseList]);
DeclareOperation("ConvertStandardLetter",
[IsHapResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O ConvertStandardWordNC(<resolution>,<term>,<word>)
#O ConvertStandardWord(<resolution>,<term>,<word>)
##
DeclareOperation("ConvertStandardWordNC",
[IsHapResolutionRep,IsInt,IsDenseList]);
DeclareOperation("ConvertStandardWord",
[IsHapResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O ConvertLetterToStandardRepNC
#O ConvertLetterToStandardRep
##
DeclareOperation("ConvertLetterToStandardRepNC",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
DeclareOperation("ConvertLetterToStandardRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O ConvertLargeGroupRepWordToStandardRepNC
#O ConvertLargeGroupRepWordToStandardRep
##
DeclareOperation("ConvertWordToStandardRepNC",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
DeclareOperation("ConvertWordToStandardRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O IsFreeZGLetter_LargeGroupRep(<resolution>,<term>,<letter>)
##
## check if <letter> is a letter of the <term>th module of <resolution>.
## A letter is a word of length 1.
##
##
DeclareOperation("IsFreeZGLetter_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O IsFreeZGWord_LargeGroupRep(<resolution>,<term>,<word>)
##
## Check if <word> is an element of the <term>th module in <resolution>
##
##
DeclareOperation("IsFreeZGWord_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O MultiplyFreeZGLetterWithGroupEltNC_LargeGroupRep(<resolution>,<letter>,<g>)
##
## given a pair <letter> of positive integers which represent a generator-
## group element pair, this returns the letter multiplied with the group
## element <g>.
##
##
DeclareOperation("MultiplyFreeZGLetterWithGroupEltNC_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
#############################################################################
##
#O MultiplyFreeZGLetterWithGroupElt_LargeGroupRep(<resolution>,<letter>,<g>)
#O MultiplyFreeZGLetterWithGroupElt(<resolution>,<letter>,<g>)
##
## Check input for sanity and delegate to NC version
##
DeclareOperation("MultiplyFreeZGLetterWithGroupElt_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
DeclareOperation("MultiplyFreeZGLetterWithGroupElt",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
#############################################################################
##
#O MultiplyFreeZGWordWithGroupEltNC_LargeGroupRep(<resolution>,<word>,<g>)
##
## multiplies the word <word> with the group element <g>.
## No checks are performed.
##
DeclareOperation("MultiplyFreeZGWordWithGroupEltNC_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
DeclareOperation("MultiplyFreeZGWordWithGroupEltNC",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
#############################################################################
##
#O MultiplyFreeZGWordWithGroupElt_LargeGroupRep(<resolution>,<word>,<g>)
##
## Check input and delegate to NC version.
##
DeclareOperation("MultiplyFreeZGWordWithGroupElt_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
DeclareOperation("MultiplyFreeZGWordWithGroupElt",
[IsHapLargeGroupResolutionRep,IsDenseList,IsObject]);
#############################################################################
##
#O BoundaryOfFreeZGLetterNC(<resolution>,<term>,<letter>)
#O BoundaryOfFreeZGLetterNC_LargeGroupRep(<resolution>,<term>,<letter>)
##
## calculates the boundary of a letter in the <term>th module.
##
## catch, convert, delegate, convert
##
DeclareOperation("BoundaryOfFreeZGLetterNC",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
DeclareOperation("BoundaryOfFreeZGLetterNC_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O BoundaryOfFreeZGLetter_LargeGroupRep(<resolution>,<term>,<letter>)
##
## checks input and delegates to NC version
##
DeclareOperation("BoundaryOfFreeZGLetter_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
DeclareOperation("BoundaryOfFreeZGLetter",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O BoundaryOfFreeZGWordNC_LargeGroupRep(<resolution>,<term>,<word>)
##
## calculate the boundary of the element <word> of the <term>th module of the
## resolution <resolution>.
## No checks done.
##
DeclareOperation("BoundaryOfFreeZGWordNC_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
#############################################################################
##
#O BoundaryOfFreeZGWord_LargeGroupRep(<resolution>,<term>,<word>)
#O BoundaryOfFreeZGWord(<resolution>,<term>,<word>)
##
## Check input and delegate to NC version.
##
DeclareOperation("BoundaryOfFreeZGWord_LargeGroupRep",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);
DeclareOperation("BoundaryOfFreeZGWord",
[IsHapLargeGroupResolutionRep,IsInt,IsDenseList]);