You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This issue is also related to the gap package Memoisation which cannot be used for AffineCrystGroups, e.g.:
gap> LoadPackage("Memoisation");
gap> MSpaceGroupIT := MemoisedFunction(SpaceGroupIT);
gap> PointGroup(MSpaceGroupIT(3,22));
#I Memo key: [ 3, 22 ]#I Key unknown. Computing result...
Group([[[-1, 0, 0], [0, -1, 0], [0, 0, 1]], [[-1, 0, 0], [0, 1, 0], [0, 0, -1]]])
gap> PointGroup(MSpaceGroupIT(3,22));
#I Memo key: [ 3, 22 ]#I Key known! Loading result from cache...
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 2nd choice method found for `IsAffineCrystGroupOnLeftOrRight' on 1 arguments at /usr/local/Cellar/gap/4.12.0/libexec/lib/methsel2.g:249 called from<<compiled GAP code>> from GAPROOT/lib/oper1.g:736 in function PointGroup default method requiring categories and checking properties called from<function "PointGroup default method requiring categories and checking properties">( <arguments> ) called from read-eval loop at *stdin*:48type 'quit;' to quit to outer loopbrk>
Generating all space groups is quite slow. On my machine it takes 21 seconds (3,2 GHz 6-Core Intel Core i7-8700B):
I could speed up by using the six cores.
However, I would like to restore them from a pickled file, since doing the same computation all the time is a waste of resources.
The functions
IO_Pickle
andIO_Unpickle
of the gap packageIO
can be executedbut the unpickled object is actually is not the identical object.
I have to call
AsAffineCrystGroupOnRight
to getAffineCrystGroups
:As you can see, this as slow as generating them again.
Can the support of
IO_Pickle
/IO_Unpickle
forAffineCrystGroups
be improved?I assume
IO_Pickle
currently falls back to matrix groups:taken from https://github.com/gap-packages/io/blob/master/gap/pickle.gi#L1193-L1209
As you can see the group is reconstructed by calling
GroupWithGenerators(gens)
which explains the behaviour.I assume to be faster the
AffineCrystGroup
should be reconstructed by the underlying objects:such as
PointGroup
,PointHomomorphism
,TranslationBasis
,InternalBasis
How should the
IO_Pickle
method look like?and how can one create an AffineCrystGroup on a lower level:
What about using
ObjectifyWithAttributes
? What is the family ofAffineCrystGroup
?The text was updated successfully, but these errors were encountered: