Giter Site home page Giter Site logo

gap-docker's People

Contributors

alex-konovalov avatar james-d-mitchell avatar sebasguts avatar slel avatar snim2 avatar ssiccha avatar zachnewbery avatar zickgraf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

gap-docker's Issues

UnitLib is unable to save files

My UnitLib package uses SingleHTTPRequest from IO to save data for groups of order 243 from the server into unitlib/data. It also has functionality for saving computed groups into unitlib/userdata. This assumes that the user has write access to those directories.

gap> PcNormalizedUnitGroupSmallGroup(243,1);
Error, no method found! For debugging hints type ?Recovery from NoMethodFound
Error, no 1st choice method found for `Length' on 1 arguments called from
Length( code[1] ) called from
<function "PcNormalizedUnitGroupSmallGroup">( <arguments> )
 called from read-eval loop at line 2 of *stdin*
you can 'quit;' to quit to outer loop, or
you can 'return;' to continue
brk> code;
[ fail, [ [ [ 1, 1 ], [ 2, 1 ], [ 3, 1 ], [ 4, 1 ], [ 5, 1 ] ], [ 1, 3, 9, 27, 81 ] ] ]
brk> 

Upgrade to GAP 4.8.5

Time to do this. Note for myself that this should switch from using external InstPackages.sh script to using bin/BuildPackages.sh which is now included in GAP installation.

HPC-GAP Docker container

To investigate: can we provide a way to run HPC-GAP via Docker container (this or a separate one)?

Improving documentation for users of GAP docker container

Before we publicise this wider, it would be useful to document better various use cases in the README.md:

  • using gap-container and adding only needed packages
  • using full gap-docker image
  • mounting local directories
  • duplicating our setup to wrap a reproducible experiment
  • using Travis CI to test the container

etc.

Missing main GAP manuals

I've traced the problem in #5

########> Diff in [ "./helpintf.xml", 163, 167 ]
# Input is:
stream := InputTextFile( file );;
# Expected output:
# But found:
Error, no method found! For debugging hints type ?Recovery from NoMeth\
odFound
Error, no 1st choice method found for `InputTextFile' on 1 arguments
########

This code

dirs := DirectoriesLibrary( "doc/ref" );;
file := Filename( dirs, "manual.six" );;
stream := InputTextFile( file );;  

does not work because file is fail, and this happens because no documentation is provided. Indeed, GAP container uses gap4r7p9_nopackages.zip archive of the core GAP system without packages, and that archive does not include prebuilt manuals.

What to do? Adding latex packages to gap-docker-base does not look very interesting: you need

  • texlive-latex-base
  • texlive-latex-recommended
  • texlive-latex-extra
  • texlive-extra-utils
  • texlive-fonts-recommended
  • texlive-fonts-extra

and this will increase it further, but we need them only to build manuals. Getting precompiled GAP manuals from elsewhere may be more preferable.

errors in manual examples

The test of manual examples with default packages shows three diffs:

########> Diff in [ "./files.xml", 310, 313 ]
# Input is:
IsWritableFile( "/bin/date" );  # file `/bin/date' is not writable
# Expected output:
false
# But found:
true
########
########> Diff in [ "./string.xml", 94, 111 ]
# Input is:
s := "German uses strange characters: äöüß\n";
# Expected output:
"German uses strange characters: äöüß\n"
# But found:
"German uses strange characters: äöþß\n"
########
########> Diff in [ "./helpintf.xml", 163, 167 ]
# Input is:
stream := InputTextFile( file );;
# Expected output:
# But found:
Error, no method found! For debugging hints type ?Recovery from NoMeth\
odFound
Error, no 1st choice method found for `InputTextFile' on 1 arguments
########

which are not observed in other environments. The 2nd will likely be fixed by setting LANG to en_GB.UTF-8, the two others seem to be related with user permissions.

Why is "sudo" recommended in the README?

I am not using sudo, but rather invoke docker directly, and it works fine. Any particular reasons you reocmmend using it? It feels a bit icky to run something with rights it doesn't seem to need...

Building Carat package

It would be nice to fix this, if not at the GAP level (see gap-system/gap#737) then in the Docker container.

Franz Gähler explained today in GAP Support mailing list:

It brings its own GMP 
library, which unfortunately is built with both a static and a
dynamic version. Until some time ago, the static version was
preferred when linking the Carat programs, but apparently this
is no longer so. When loading a dynamically linked Carat program,
however, its GMP library is not found.

The solution is to force Carat executables to be linked with the
static GMP library, and to do so, the simplest is to avoid building
the dynamic version of the GMP library. This can be achieved as
follows:

1. In the main Carat makefile, add a -static flag to the build
  rule of the Gmp target, like here:

Gmp:
       cd functions ; tar xvzf gmp-4.2.1.tar.gz
       cd functions/Gmp ; ./configure --prefix="$(TOPDIR)" ;\
        make CFLAGS="$(CFLAGS) -static" CC="$(CC)" install 

2. After that, build Carat again, with "make clean; make"

Alternatively, you can also delete all dynamic libraries in
carat-2.1b1/lib/, delete the Carat executables in
carat-2.1b1/bin/x86*/ (or where they ended up), and just rebuild
the executables, with "make Executables".

Getting PolymakeInterface to work

polymakeinterface package is not loadable now:

gap> Filtered(RecNames(GAPInfo.PackagesInfo),n->LoadPackage(n)=fail);
[ "polymakeinterface", "itc", "linboxing", "xgap" ]
gap> 

Testing GAP 4.9.1 update

Except the problem with loading Float (gap-system/gap-docker-base#10) the other of the packages that are not loadable via LoadPackage are: "polymakeinterface", "zeromqinterface", "itc", "linboxing", "xgap". It's fine to ignore "itc", "linboxing", "xgap" for now, but we should try to get "polymakeinterface" and "zeromqinterface" to the working order. In particular, "zeromqinterface" is crucial for Jupyter.

last2 reported as not documented

make teststandard reports

########> Diff in /home/gap/inst/gap4r7/tst/bugfix.tst, line 2045:
# Input is:
IsDocumentedWord( "last2" );
# Expected output:
true
# But found:
false
########

which is not observed otherwise. Maybe a bad test design - should be checked.

Failed tests after switch to gcc-7 in new bionic GAP 4.9.1 container

The build at https://travis-ci.org/gap-system/gap-docker-pkg-tests-stable-4.9/builds/387912434 is made with the new GAP 4.9.1 container which has gcc-7 as a default compiler.

The following packages which used to pass tests now fail. The tick box means that the problem has been fixed).

In more details below.

  1. cvec - see gap-packages/cvec#6

  2. fining - the problem disappears if cvec is fixed as suggested in gap-packages/cvec#6

  3. cryst - only when all packages are loaded:

testing: /home/gap/inst/gap-4.9.1/pkg/cryst/tst/cryst.tst
########> Diff in /home/gap/inst/gap-4.9.1/pkg/cryst/tst/cryst.tst:175
# Input is:
g := PreImage(iso, h);
# Expected output:
[ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -1, 0, 0 ], [ -7/4, 5/4, 3/4, 1 ] ]
# But found:
[ [ 0, -1, 0, 0 ], [ -1, 0, 0, 0 ], [ 0, 0, -1, 0 ], [ -1/4, 3/4, 3/4, 1 ] ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/cryst/tst/cryst.tst:314
# Input is:
NaturalHomomorphismByNormalSubgroup( G, K );
# Expected output:
CompositionMapping( [ g1, g2, g3, g4, g5, g6, g7 ] -> 
[ g1, g2, g3, g4, id, id, id ], 
[ [ [ 1, 0, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -1, 0, 0 ], [ -7/4, 5/4, 3/4, 1 ] ]
    , [ [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ -1/2, -1/2, 1, 1 ] ]
    , 
  [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 0, -1/2, 1 ] ],
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1/2, 1/2, 1/2, 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, 1, 1 ] ] ] -> 
[ g1, g2, g3, g4, g5, g6, g7 ] )

# But found:
CompositionMapping( [ g1, g2, g3, g4, g8, g5, g6, g7, g8^2, g9, g10 ] -> 
[ g1, g2, g3, g4, g5, id, id, id, id, id, id ], 
[ [ [ 0, -1, 0, 0 ], [ -1, 0, 0, 0 ], [ 0, 0, -1, 0 ], [ -1/4, 3/4, 3/4, 1 ] ]
    , [ [ 0, 0, 1, 0 ], [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 3, -2, 1, 1 ] ], 
  [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, 1, 0 ], [ -7/2, 0, -3/2, 1 ] ], 
  [ [ -1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, -3/2, -7/2, 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 ] ], 
  [ [ 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 ], [ -3/2, -3/2, -3/2, 1 ] ],
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, -3, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ -3, 0, 0, 1 ] ] ] -> 
[ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10 ] )
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/cryst/tst/cryst.tst:330
# Input is:
NaturalHomomorphismByNormalSubgroup( G, K );
# Expected output:
CompositionMapping( [ g1, g2, g3, g4, g5, g6, g7, g8 ] -> 
[ g1, g2, g3, g4, g5, id, id, id ], 
[ [ [ -1, 0, 0, 0 ], [ 0, 1, 0, 1/2 ], [ 0, 0, 1, 1/2 ], [ 0, 0, 0, 1 ] ], 
  [ [ 0, 0, 1, 0 ], [ 0, 1, 0, 0 ], [ -1, 0, 0, 1/2 ], [ 0, 0, 0, 1 ] ], 
  [ [ 0, 0, 1, 0 ], [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ -1, 0, 0, 1/2 ], [ 0, 1, 0, 0 ], [ 0, 0, -1, 1/2 ], [ 0, 0, 0, 1 ] ], 
  [ [ -1, 0, 0, 1/2 ], [ 0, -1, 0, 1/2 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 1 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 0, 0, 0, 1 ] ] ] -> 
[ g1, g2, g3, g4, g5, g6, g7, g8 ] )

# But found:
CompositionMapping( [ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11 ] -> 
[ g1, g2, g3, g4, g5, id, id, id, id, id, id ], 
[ [ [ 0, -1, 0, 1/2 ], [ -1, 0, 0, 1/2 ], [ 0, 0, -1, 1/2 ], [ 0, 0, 0, 1 ] ],
  [ [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 1, 0, 0, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ -1, 0, 0, 1/2 ], [ 0, -1, 0, 1/2 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, -1, 0, 1/2 ], [ 0, 0, -1, 1/2 ], [ 0, 0, 0, 1 ] ], 
  [ [ -1, 0, 0, 0 ], [ 0, -1, 0, 0 ], [ 0, 0, -1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 1 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 1 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 1 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 3 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 3 ], [ 0, 0, 1, 0 ], [ 0, 0, 0, 1 ] ], 
  [ [ 1, 0, 0, 0 ], [ 0, 1, 0, 0 ], [ 0, 0, 1, 3 ], [ 0, 0, 0, 1 ] ] ] -> 
[ g1, g2, g3, g4, g5, g6, g7, g8, g9, g10, g11 ] )
########
  1. FR - only when all packages are loaded. Not yet clear what triggers this.
########> Diff in /home/gap/inst/gap-4.9.1/pkg/fr-2.4.5/tst/cp.tst:67
# Input is:
IsConjugate(GrigorchukGroup,pairs[1][1][1],pairs[1][1][2]);
# Expected output:
#I  Init FRBranchGroupConjugacyData
#I  Finished Init FRBranchGroupConjugacyData
true
# But found:
#I  Init FRBranchGroupConjugacyData
Error, List Element: <list>[1] must have an assigned value
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/fr-2.4.5/tst/cp.tst:73
# Input is:
SetFRBranchGroupConjugacyData(GuptaSidkiGroup,
 rec(initial_conj_dic:=NewDictionary([One(GuptaSidkiGroup),One(GuptaSidkiGroup\
)],true),
    Branchstructure:=BranchStructure(GuptaSidkiGroup),
    RepSystem:=List(~.Branchstructure.group,x->PreImagesRepresentative(~.Branc\
hstructure.quo,x)))
 );
# Expected output:
# But found:
Error, List Element: <list>[1] must have an assigned value
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/fr-2.4.5/tst/cp.tst:78
# Input is:
CallFuncList(function(a,t) 
            local G,D,g,h;
            G:= GuptaSidkiGroup;
            D:= FRBranchGroupConjugacyData(G).initial_conj_dic;
            for g in [a,a^2,t,t^2] do
              for h in [a,a^2,t,t^2] do
               if g<>h then
                AddDictionary(D,[g,h],[]);
               fi;
              od;
            od;
            AddDictionary(D,[a,a],[One(G),a,a^2]);
            AddDictionary(D,[a^2,a^2],[One(G),a,a^2]);
            AddDictionary(D,[t,t],[One(G),,,t,,,t^2]);
            AddDictionary(D,[t^2,t^2],[One(G),,,t,,,t^2]);
          end,GeneratorsOfGroup(GuptaSidkiGroup)
  );
# Expected output:
# But found:
#I  Init FRBranchGroupConjugacyData
Error, List Element: <list>[1] must have an assigned value
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/fr-2.4.5/tst/cp.tst:96
# Input is:
IsConjugate(GuptaSidkiGroup,GuptaSidkiGroup.1^GuptaSidkiGroup.2,GuptaSidkiGrou\
p.1);
# Expected output:
true
# But found:
#I  Init FRBranchGroupConjugacyData
Error, List Element: <list>[1] must have an assigned value
########
  1. NQ - only when all packages are loaded. This is triggered by loading Semigroups and then LPRES and explained by @fingolfin in gap-packages/cvec#6 (comment).
########> Diff in /home/gap/inst/gap-4.9.1/pkg/nq-2.5.3/tst/nq.tst:41
# Input is:
H := NilpotentQuotient( G, 11 );
# Expected output:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 2, 0, 2, 2, 0, 0, 2, 2, 0, 5, 2, 
  2, 2, 3, 0, 5, 5, 2, 2, 2, 2, 3, 0, 5, 5, 2, 2, 2, 2, 2, 2, 3, 0, 0, 5, 5, 
  5 ]
# But found:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 5, 6, 5, 4, 0, 5, 
  2, 5, 6, 5, 4, 0, 2, 5, 4, 0, 2, 5, 6, 5, 2, 0 ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/nq-2.5.3/tst/nq.tst:125
# Input is:
H := NilpotentQuotient( G, 8 );
# Expected output:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 3, 0, 2, 
  2, 3, 3, 0, 6, 2, 2, 2, 3, 3, 6, 2, 3, 6, 2, 2, 2, 2, 3, 3, 3, 2, 2, 3, 3, 
  6, 2 ]
# But found:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 2, 3, 0, 
  2, 0, 2, 3, 2, 3, 2, 2, 3, 0, 2, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 3, 2, 2, 2, 
  2, 3, 3, 2, 3, 2, 2, 3, 2, 3 ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/nq-2.5.3/tst/nq.tst:150
# Input is:
H := NilpotentQuotient( G, 10 );
# Expected output:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 2, 0, 3, 3, 2, 2, 
  0, 0, 3, 3, 3, 2, 2, 2, 2, 0, 0, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 0, 3, 3, 3, 
  3, 3, 3, 3, 2, 2, 2, 5, 0, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 5, 3, 3, 3, 
  3, 3, 3, 3, 3, 3, 3, 3, 3 ]
# But found:
Pcp-group with orders [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 6, 0, 3, 0, 
  6, 0, 3, 3, 2, 3, 36, 0, 2, 3, 3, 3, 2, 2, 3, 90, 3, 6, 0, 3, 2, 3, 3, 3, 
  3, 90, 2, 3, 18, 3, 3, 3, 3, 3, 3, 3, 3, 3 ]
########
  1. SgpViz - only when all packages are loaded. I have checked and this is triggered after loading the Semigroups package.
########> Diff in /home/gap/inst/gap-4.9.1/pkg/SgpViz-0.999.1/tst/testall.tst:
68
# Input is:
f1 := SemigroupFactorization(poi3,el1);
# Expected output:
[ [ Transformation( [ 1, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] ) ] ]
# But found:
WARNING: you are possibly using twice the same generator and this may cause pr\
\
oblems...
[ [ Transformation( [ 1, 3, 4, 4 ] ), Transformation( [ 4, 1, 2, 4 ] ) ] ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/SgpViz-0.999.1/tst/testall.tst:
70
# Input is:
f1[1][1] * f1[1][2] = el1;
# Expected output:
true
# But found:
false
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/SgpViz-0.999.1/tst/testall.tst:
72
# Input is:
SemigroupFactorization(poi3,[el1,el2]);
# Expected output:
[ [ Transformation( [ 1, 3, 4, 4 ] ), Transformation( [ 2, 4, 3, 4 ] ) ], 
  [ Transformation( [ 2, 4, 3, 4 ] ) ] ]

# But found:
WARNING: you are possibly using twice the same generator and this may cause pr\
\
oblems...
[ [ Transformation( [ 1, 3, 4, 4 ] ), Transformation( [ 4, 1, 2, 4 ] ) ], 
  [ Transformation( [ 2, 4, 3, 4 ] ), Transformation( [ 1, 3, 4, 4 ] ) ] ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/SgpViz-0.999.1/tst/testall.tst:
86
# Input is:
DisplayEggBoxOfDClass(D);
# Expected output:
[ [  1,  1,  0,  0 ],
  [  1,  1,  0,  0 ],
  [  0,  0,  1,  1 ],
  [  0,  0,  1,  1 ] ]
# But found:
[ [  1,  0,  1,  0 ],
  [  0,  1,  0,  1 ],
  [  0,  1,  0,  1 ],
  [  1,  0,  1,  0 ] ]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/SgpViz-0.999.1/tst/testall.tst:
107
# Input is:
rcg := RightCayleyGraphAsAutomaton(b21);
# Expected output:
< deterministic automaton on 2 letters with 6 states >
# But found:
WARNING: you are possibly using twice the same generator and this may cause pr\
\
oblems...
< deterministic automaton on 2 letters with 6 states >
########
  1. XModAlg - in all three variants of package loading (no/all/default). Presumably this is also triggered by Semigroups, which is in dependencies.
########> Diff in /home/gap/inst/gap-4.9.1/pkg/XModAlg-1.16/tst/xmod.tst:117
# Input is:
X1 := XModAlgebra( A, B );
# Expected output:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0\
)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )]
# But found:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/XModAlg-1.16/tst/xmod.tst:124
# Input is:
X2 := XModAlgebra( C, D );
# Expected output:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0\
)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )]
# But found:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 ] )]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/XModAlg-1.16/tst/xmod.tst:133
# Input is:
Display( mor );
# Expected output:

Morphism of crossed modules :-
: Source = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)\
*f1+(Z(2)^0)*f2,
  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^\
0)*f2 ] )] with generating sets:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*\
f2+(Z(2)^0)*f1*f2 ]
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ]
:  Range = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)\
*f1+(Z(2)^0)*f2,
  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^\
0)*f2 ] )] with generating sets:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*\
f2+(Z(2)^0)*f1*f2 ]
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ]
: Source Homomorphism maps source generators to:
  [ <zero> of ..., <zero> of ..., <zero> of ... ]
: Range Homomorphism maps range generators to:
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*<identity> of ..., (Z(2)^0)*<identity\
> of ... ]

# But found:

Morphism of crossed modules :- 
: Source = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 
 ] )] with generating sets:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, (Z(2)^0)*f1+(Z(2)^0)*f2, 
  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ]
:  Range = [Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 
 ] )->AlgebraWithOne( GF(2), [ (Z(2)^0)*f1, (Z(2)^0)*f2 
 ] )] with generating sets:
  [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, (Z(2)^0)*f1+(Z(2)^0)*f2, 
  (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ]
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*f1, (Z(2)^0)*f2 ]
: Source Homomorphism maps source generators to:
  [ <zero> of ..., <zero> of ..., <zero> of ... ]
: Range Homomorphism maps range generators to:
  [ (Z(2)^0)*<identity> of ..., (Z(2)^0)*<identity> of ..., 
  (Z(2)^0)*<identity> of ... ]

########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/XModAlg-1.16/tst/xmod.tst:155
# Input is:
X3 := Kernel( mor );
# Expected output:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0\
)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2
 ] )->Algebra( GF(2), [ (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f1*f2, (\
Z(2)^0)*<identity> of ...+(Z(2)^0)*f1
 ] )]
# But found:
[Algebra( GF(2), [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, 
  (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ] )->Algebra( GF(2), 
[ (Z(2)^0)*f1+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f1*f2, 
  (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1 ] )]
########
########> Diff in /home/gap/inst/gap-4.9.1/pkg/XModAlg-1.16/tst/xmod.tst:169
# Input is:
Print( MappingGeneratorsImages( theta ), "\n" ); 
# Expected output:
[ [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f2, (Z(2)^0)*f1+(Z(2)^0)*f2, 
      (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ], 
  [ <zero> of ..., <zero> of ..., <zero> of ... ] ]
# But found:
[ [ (Z(2)^0)*<identity> of ...+(Z(2)^0)*f1, (Z(2)^0)*f1+(Z(2)^0)*f2, 
      (Z(2)^0)*f2+(Z(2)^0)*f1*f2 ], 
  [ <zero> of ..., <zero> of ..., <zero> of ... ] ]
########

Getting AtlasRep to work

AtlasRep package provides a link between GAP and the "ATLAS of Group Representations", a database that comprises generating permutations and matrices for many almost simple groups, and information about their maximal subgroups. This database is available independently of GAP athttp://brauer.maths.qmul.ac.uk/Atlas

To work, first of all this package need network access. Then installation instructions at http://www.math.rwth-aachen.de/~Thomas.Breuer/atlasrep/doc/chap4.html tells:

After unpacking the package archive, it should be checked whether the subdirectories datagens and dataword of the package directory have write permissions for those users who will download files from the servers. The recommended permissions under UNIX are set as follows.

you@unix> chmod 1777 atlasrep/data*
you@unix> ls -ld atlasrep/data*
drwxrwxrwt   3 you      you          1024 Oct 31 12:34 datagens
drwxrwxrwt   3 you      you          1024 Oct 31 12:34 dataword

We should follow instructions and run chmod in InstPackages.sh script.

Version-specific tags

Currently the only tags for this image available on Docker Hub are "latest", and some really old, presumably obsolete one.

It would be wonderful if there were tags for specific GAP versions (4.10.2, 4.11.0, etc.). The Dockerfile seems almost but not quite set up for that, since "gap-4.11" is still hard-coded in part of the URL.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.