home *** CD-ROM | disk | FTP | other *** search
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- %%
- %A share.tex GAP documentation Frank Celler
- %%
- %A @(#)$Id: share.tex,v 3.11 1993/02/19 10:48:42 gap Exp $
- %%
- %Y Copyright 1990-1992, Lehrstuhl D fuer Mathematik, RWTH Aachen, Germany
- %%
- %H $Log: share.tex,v $
- %H Revision 3.11 1993/02/19 10:48:42 gap
- %H adjustments in line length and spelling
- %H
- %H Revision 3.10 1993/02/18 09:50:38 felsch
- %H examples fixed
- %H
- %H Revision 3.9 1993/02/01 11:36:55 fceller
- %H added reference to "weyl.tex" and "anupq.tex"
- %H
- %H Revision 3.8 1993/01/25 22:16:09 fceller
- %H added Werner's NQ
- %H
- %H Revision 3.7 1993/01/05 11:41:05 fceller
- %H added ANU pq in the introduction
- %H
- %H Revision 3.6 1993/01/04 11:01:25 fceller
- %H fixed some misspellings
- %H
- %H Revision 3.5 1992/12/29 15:56:35 fceller
- %H add the ANU pq
- %H
- %H Revision 3.4 1992/12/04 11:11:58 fceller
- %H added Neubueser's introduction
- %H
- %H Revision 3.3 1992/12/02 10:08:45 fceller
- %H fixed a few bad text alignments
- %H
- %H Revision 3.2 92/11/30 15:17:32 fceller
- %H initial GAP 3.2 revision
- %%
- \def\fuer{f{\accent127 u}r}
- \Chapter{Share Libraries}
-
- Contributions from people working at Lehrstuhl D, RWTH Aachen, or any
- other place can become available in {\GAP} in two different ways\:
-
- 1. They can become parts of the main {\GAP} library of functions. Their
- origin will then be rather carefully documented in the respective program
- files, but will not occur in the description of these functions in the
- manual. This is e.g. the case -- to mention just one of many such
- contributions -- with programs for finding composition factors of
- permutation groups, written by Akos Seress. The reason for this decision
- about keeping track of the origin of such contributions is that quite
- often such functions in the main {\GAP} library have a complicated
- history with changes and contributions from various people.
-
- 2. On the other hand there are packages written by one or several
- persons for specific purposes either in the {\GAP} language or even in C
- which are made available en block in {\GAP}. Such packages will
- constitute the *share library*. A package in the share library will stay
- under the full responsibility of its author(s), which will be named in
- the respective chapter in the manual, they will in particular keep the
- copyright for this package, and they will also have to provide the
- documentation for it. However provisions will be made to call the
- functions of such a package like any other {\GAP} functions, and to call
- the documentation via help functions like any other part of the {\GAP}
- documentation. Also these packages will automatically be made available
- with the main body of {\GAP} through ftp and will be sent together with
- the main body of {\GAP} in case we have to fulfill a request to send
- {\GAP} to institutions that cannot obtain {\GAP} via electronic networks.
-
- The inclusion of packages into the {\GAP} share library should be
- negotiated with Lehrstuhl D \fuer\ Mathematik, RWTH Aachen, for certain
- standards of the documentation and program organisation that should be
- met in order to facilitate the use of the packages in the context of
- {\GAP} without problems. A necessary condition for any package to become
- part of the {\GAP} share library is that it is made available under the
- conditions formulated in the {\GAP} copyright statement, in particular
- free of any charge, except for refund of expenses for sending, if such
- occur.
-
- The first section describes how to load a share library package (see
- "RequirePackage").
-
- The next sections describe the ANU pq package and how to install it (see
- "ANU pq Package" and "Installing the ANU pq Package").
-
- The next sections describe the NQ package and how to install it (see "NQ
- Package" and "Installing the NQ Package").
-
- The next sections describe the Weyl package and how to install it (see
- "Weyl Package" and "Installing the Weyl Package").
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{RequirePackage}
-
- 'RequirePackage( <name> )'
-
- 'RequirePackage' will try to initialize the share library <name>. If the
- package <name> is not installed at your site 'RequirePackage' will signal
- an error. If the package <name> is already initialized 'RequirePackage'
- simply returns without any further actions.
-
- | gap> CartanMat( "A", 4 );
- Error, Variable: 'CartanMat' must have a value
- gap> ?Cartan
- 'CartanMat( <type>, <n> )'
-
- returns the Cartan matrix of Dynkin type <type> and rank <n>.
-
- gap> CartanMat( "F", 4 );
- [ [ 2, -1, 0, 0 ],
- [ -1, 2, -1, 0 ],
- [ 0, -2, 2, -1 ],
- [ 0, 0, -1, 2 ] ]
-
- This function requires the package "weyl" (see "RequirePackage").
-
- gap> RequirePackage( "wyel" );
- Error, share library "wyel" is not installed
- gap> RequirePackage( "weyl" );
- gap> CartanMat( "A", 4 );;
- gap> PrintArray( last );
- [ [ 2, -1, 0, 0 ],
- [ -1, 2, -1, 0 ],
- [ 0, -1, 2, -1 ],
- [ 0, 0, -1, 2 ] ]|
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{ANU pq Package}
-
- The ANU pq provides access to implementations of the following
- algorithms\:
-
- 1. A $p$-quotient algorithm to compute a power-commutator presentation
- for a group of prime power order. The algorithm implemented here is
- based on that described in Havas and Newman (1980) and papers referred to
- there. Another description of the algorithm appears in Vaughan-Lee
- (1990). A FORTRAN implementation of this algorithm was programmed by
- Alford and Havas. The basic data structures of that implementation are
- retained.
-
- 2. A $p$-group generation algorithm to generate descriptions of groups of
- prime power order. The algorithm implemented here is based on the
- algorithms described in Newman (1977) and O\'Brien (1990). A FORTRAN
- implementation of this algorithm was earlier developed by Newman and
- O\'Brien.
-
- The following section describes the installation of the ANU pq package, a
- description of the functions available in the ANU pq package is given in
- chapter "ANU Pq".
-
- A reader interested in details of the algorithms and explanations of
- terms used is referred to \cite{HN80}, \cite{OBr90}, \cite{New77},
- \cite{Vau84}, \cite{Vau90a}, and \cite{Vau90b}.
-
- For details about the implementation and the standalone version see the
- README. This implementation was developed in C by
-
- Eamonn O\'Brien\\
- School of Mathematical Sciences\\
- Australian National University\\
- Canberra, ACT 0200
-
- e-mail obrien@pell.anu.edu.au\\
- Telephone +61-6-249 2963 (office)\\
- FAX +61-6-249 3918
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Installing the ANU pq Package}
-
- The ANU pq is written in C and the package can only be installed under
- UNIX. It has been tested on DECstation running Ultrix, a HP 9000/700 and
- HP 9000/800 running HP-UX, a MIPS running RISC/os Berkeley, a NeXTstation
- running NeXTSTEP 3.0, and SUNs running SunOS.
-
- The standalone version, however, will also run under VMS, see the
- supplied README for installation instructions of the standalone.
-
- In the example we will assume that you, as user 'gap', are installing the
- ANU pq package for use by several users on a network of two DECstations,
- called 'bert' and 'tiffy', and a NeXTstation, called 'bjerun'. We assume
- that {\GAP} is also installed on these machines following the
- instructions given in "Installation under UNIX".
-
- Note that certain parts of the output in the examples should only be
- taken as rough outline, especially file sizes and file dates are *not* to
- be taken literally.
-
- First of all you have to get the file 'anupq.tar.Z' (see "Getting GAP").
- Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
-
- | gap@tiffy:~ > ls -l
- drwxr-xr-x 11 gap gap 1024 Nov 8 1991 3.2
- -rw-r--r-- 1 gap gap 360891 Dec 27 15:16 anupq.tar.Z
- gap@tiffy:~ > cd 3.2
- gap@tiffy:../3.2 > ls -l
- drwxr-xr-x 2 gap gap 3072 Nov 26 11:53 doc
- drwxr-xr-x 2 gap gap 1024 Nov 8 1991 grp
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 lib
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 src
- drwxr-xr-x 2 gap gap 1024 Nov 26 09:42 tst|
-
- Now create a subdirectory 'pkg/', assuming that no such directory exists,
- and change into this subdirectory.
-
- | gap@tiffy:~/3.2 > mkdir pkg
- gap@tiffy:~/3.2 > cd pkg |
-
- Now create a subdirectory 'anupq/', again assuming that no such directory
- exists, and change into this subdirectory.
-
- | gap@tiffy:../pkg > mkdir anupq
- gap@tiffy:../pkg > cd anupq |
-
- Unpack the package using 'uncompress' and 'tar'. Note that you must be
- in the 'anupq/' subdirectory to unpack the files. After you have unpacked
- the source you may remove the *archive-file*.
-
- | gap@tiffy:../anupq > uncompress ../../../anupq.tar.Z
- gap@tiffy:../anupq > tar xf ../../../anupq.tar
- gap@tiffy:../anupq > ls -l
- -rw-r--r-- 1 gap gap 11185 Dec 9 10:44 README
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 TEST
- drwxr-xr-x 2 gap gap 1024 Dec 27 14:36 bin
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 cayley
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 doc
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 examples
- drwxr-xr-x 2 gap gap 1024 Dec 27 15:16 gap
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:19 include
- lrwxrwxrwx 1 gap gap 10 Dec 27 13:13 init.g -> gap/init.g
- drwxr-xr-x 2 gap gap 7168 Dec 27 15:15 srce |
-
- Switch into the directory 'srce/'. The makefile for the gap version of
- the ANU pq is in the subdirectory 'gap/' so *do not* type 'make'.
-
- | gap@tiffy:../srce > make -f ../gap/Makefile
- usage: 'make <target>' where target is one of
- 'decs-ultrix-gcc2' for DECstations running Ultrix with GNU cc 2
- 'decs-ultrix-cc' for DECstations running Ultrix with cc
- 'hp700-hpux-cc' for HP 9000/700 running HP-UX with cc
- 'hp800-hpux-cc' for HP 9000/800 running HP-UX with cc
- 'ibmpc-386bsd-gcc2' for IBM PCs running 386BSD with GNU cc 2
- 'ibmpc-386bsd-gcc' for IBM PCs running 386BSD with GNU cc
- 'mips-bsd-cc' for MIPS running RISC/os Berkeley with cc
- 'next-mach-gcc2' for NeXT running Mach with GNU cc 2
- 'next-mach-cc' for NeXT running Mach with cc (GNU)
- 'sun4-sunos-gcc' for SUN 4 running SunOs with GNU cc 2
- 'sun4-sunos-cc' for SUN 4 running SunOs with cc
- 'unix' for a generic unix system with cc
- 'clean' remove all created files
- targets are listed according to preference,
- i.e., 'sun4-sunos-gcc2' is better than 'sun4-sunos-cc'.
- additional C compiler and linker flags can be passed with
- 'make <target> COPTS=<compiler-opts> LOPTS=<linker-opts>',
- i.e., 'make sun4-sunos-cc COPTS=-g LOPTS=-g'.
-
- set GAP if gap 3.2 is not started with the command 'gap',
- i.e., 'make sun4-sunos-cc GAP=/home/gap/bin/gap-3.2'.|
-
- Select the target you need. In your case we first compile the DECstation
- version. We assume that the command to start {\GAP} is
- '/usr/local/bin/gap' for 'tiffy' and 'bjerun' and
- '/rem/tiffy/usr/local/bin/gap' for 'bert'.
-
- | gap@tiffy:../srce > make -f ../gap/Makefile decs-ultric-cc \
- GAP=/usr/local/bin/gap
- # you will see a lot of messages and a few warnings
- gap@tiffy:../srce > mv pq ../bin/pq.ds |
-
- Now repeat the compilation for the NeXTstation. *Do not* forget to clean
- up.
-
- | gap@tiffy:../srce > rlogin bjerun
- gap@bjerun:~ > cd 3.2/pkg/anupq/srce
- gap@bjerun:../srce > make -f ../gap/Makefile clean
- gap@bjerun:../srce > make -f ../gap/Makefile next-mach-cc \
- GAP=/usr/local/bin/gap
- # you will see a lot of messages and a few warnings
- gap@bjerun:../srce > mv pq ../bin/pq.next
- gap@bjerun:../srce > exit
- gap@tiffy:../srce > |
-
- Switch into the subdirectory 'bin/' and create a script which will call
- the correct binary for each machine.
-
- | gap@tiffy:../srce > cd ..
- gap@tiffy:../anupq > cat > bin/pq
- |\#|!/bin/csh
- switch ( `hostname` )
- case 'tiffy':
- exec ~gap/3.2/pkg/anupq/bin/pq.ds $* ;
- breaksw ;
- case 'bert':
- setenv ANUPQ_GAP_EXEC /rem/tiffy/usr/local/bin/gap ;
- exec ~gap/3.2/pkg/anupq/bin/pq.ds $* ;
- breaksw ;
- case 'bjerun':
- limit stacksize 2048 ;
- exec ~gap/3.2/pkg/anupq/bin/pq.next $* ;
- breaksw ;
- default:
- echo "pq: sorry, no executable exists for this machine" ;
- breaksw ;
- endsw
- |<ctr>-'D'|
- gap@tiffy:../anupq > chmod 755 bin/pq|
-
- Note that the NeXTstation requires you to raise the stacksize. If your
- default limit on any other machine for the stack size is less than 1024
- you might need to add the 'limit stacksize 2048' line.
-
- If the documentation is not already installed or an older version is
- installed, copy the file 'gap/anupq.tex' into the 'doc/' directory and
- run latex again (see "Installation under UNIX"). In general the
- documentation will already be installed so you can just skip the
- following step.
-
- | gap@tiffy:../anupq > cp gap/anupq.tex ../../doc
- gap@tiffy:../anupq > cd ../../doc
- gap@tiffy:../doc > latex manual
- # a few messages about undefined references
- gap@tiffy:../doc > latex manual
- # a few messages about undefined references
- gap@tiffy:../doc > makeindex manual
- # 'makeindex' prints some diagnostic output
- gap@tiffy:../doc > latex manual
- # there should be no warnings this time
- gap@tiffy:../doc cd ../pkg/anupq |
-
- Now it is time to test the installation. The first test will only test
- the ANU pq.
-
- | gap@tiffy:../anupq > bin/pq < gap/test1.pga
- # a lot of messages ending in
- **************************************************
- Starting group: c3c3 |\#|2;2 |\#|4;3
- Order: 3^7
- Nuclear rank: 3
- 3-multiplicator rank: 4
- |\#| of immediate descendants of order 3^8 is 7
- |\#| of capable immediate descendants is 5
-
- **************************************************
- 34 capable groups saved on file c3c3_class4
- Construction of descendants took 1.92 seconds
-
- Select option: 0
- Exiting from p-group generation
-
- Select option: 0
- Exiting from ANU p-Quotient Program
- Total user time in seconds is 1.97
- gap@tiffy:../anupq > ls -l
- total 89
- -rw-r--r-- 1 gap gap 11185 Dec 9 10:44 README
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 TEST
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:46 bin
- -rw-r--r-- 1 gap gap 3188 Dec 28 14:12 c3c3_class2
- -rw-r--r-- 1 gap gap 5736 Dec 28 14:12 c3c3_class3
- -rw-r--r-- 1 gap gap 54688 Dec 28 14:13 c3c3_class4
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 cayley
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 doc
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:35 examples
- drwxr-xr-x 2 gap gap 1024 Dec 28 14:12 gap
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:19 include
- lrwxrwxrwx 1 gap gap 10 Dec 27 13:13 init.g -> gap/init.g
- drwxr-xr-x 2 gap gap 7168 Dec 28 13:28 srce
- gap:~/3.2/pkg/anupq > rm c3c3_class* |
-
- The second test will test the stacksize. If it is too small you will get
- a memory fault, try to raise it as described above.
-
- | gap@tiffy:../anupq > bin/pq < gap/test2.pga
- # a lot of messages ending in
- **************************************************
- Starting group: c2c2 |\#|1;1 |\#|1;1 |\#|1;1
- Order: 2^5
- Nuclear rank: 1
- 2-multiplicator rank: 3
- Group c2c2 |\#|1;1 |\#|1;1 |\#|1;1 is an invalid starting group
-
- **************************************************
- Starting group: c2c2 |\#|2;1 |\#|1;1 |\#|1;1
- Order: 2^5
- Nuclear rank: 1
- 2-multiplicator rank: 3
- Group c2c2 |\#|2;1 |\#|1;1 |\#|1;1 is an invalid starting group
- Construction of descendants took 0.47 seconds
-
- Select option: 0
- Exiting from p-group generation
-
- Select option: 0
- Exiting from ANU p-Quotient Program
- Total user time in seconds is 0.50
- gap@tiffy:../anupq > ls -l
- total 45
- -rw-r--r-- 1 gap gap 11185 Dec 9 10:44 README
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 TEST
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:46 bin
- -rw-r--r-- 1 gap gap 5964 Dec 28 14:16 c2c2_class2
- -rw-r--r-- 1 gap gap 10716 Dec 28 14:16 c2c2_class3
- -rw-r--r-- 1 gap gap 2160 Dec 28 14:16 c2c2_class4
- -rw-r--r-- 1 gap gap 0 Dec 28 14:16 c2c2_class5
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 cayley
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 doc
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:35 examples
- drwxr-xr-x 2 gap gap 1024 Dec 28 14:12 gap
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:19 include
- lrwxrwxrwx 1 gap gap 10 Dec 27 13:13 init.g -> gap/init.g
- drwxr-xr-x 2 gap gap 7168 Dec 28 13:28 srce
- gap:~/3.2/pkg/anupq > rm c2c2_class* |
-
- The third example tests the link between the ANU pq and {\GAP}. If there
- is a problem you will get a error message saying
- 'Error in system call to GAP'; if this happens, check the environment
- variable 'ANUPQ\_GAP\_EXEC'.
-
- | gap@tiffy:../anupq > bin/pq < gap/test3.pga
- # a lot of messages ending in
- **************************************************
- Starting group: c5c5 |\#|1;1 |\#|1;1
- Order: 5^4
- Nuclear rank: 1
- 5-multiplicator rank: 2
- |\#| of immediate descendants of order 5^5 is 2
-
- **************************************************
- Starting group: c5c5 |\#|1;1 |\#|2;2
- Order: 5^5
- Nuclear rank: 3
- 5-multiplicator rank: 3
- |\#| of immediate descendants of order 5^6 is 3
- |\#| of immediate descendants of order 5^7 is 3
- |\#| of capable immediate descendants is 1
- |\#| of immediate descendants of order 5^8 is 1
- |\#| of capable immediate descendants is 1
-
- **************************************************
- 2 capable groups saved on file c5c5_class4
-
- **************************************************
- Starting group: c5c5 |\#|1;1 |\#|2;2 |\#|4;2
- Order: 5^7
- Nuclear rank: 1
- 5-multiplicator rank: 2
- |\#| of immediate descendants of order 5^8 is 2
- |\#| of capable immediate descendants is 2
-
- **************************************************
- Starting group: c5c5 |\#|1;1 |\#|2;2 |\#|7;3
- Order: 5^8
- Nuclear rank: 2
- |\#| of immediate descendants of order 5^9 is 1
- |\#| of capable immediate descendants is 1
- |\#| of immediate descendants of order 5^10 is 1
- |\#| of capable immediate descendants is 1
-
- **************************************************
- 4 capable groups saved on file c5c5_class5
- Construction of descendants took 0.62 seconds
-
- Select option: 0
- Exiting from p-group generation
-
- Select option: 0
- Exiting from ANU p-Quotient Program
- Total user time in seconds is 0.68
- gap@tiffy:../anupq > ls -l
- total 41
- -rw-r--r-- 1 gap gap 11185 Dec 9 10:44 README
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 TEST
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:46 bin
- -rw-r--r-- 1 gap gap 880 Dec 28 14:20 c5c5_class2
- -rw-r--r-- 1 gap gap 2132 Dec 28 14:20 c5c5_class3
- -rw-r--r-- 1 gap gap 3104 Dec 28 14:20 c5c5_class4
- -rw-r--r-- 1 gap gap 7300 Dec 28 14:21 c5c5_class5
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 cayley
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:18 doc
- drwxr-xr-x 2 gap gap 1024 Dec 28 13:35 examples
- drwxr-xr-x 2 gap gap 1024 Dec 28 14:19 gap
- drwxr-xr-x 2 gap gap 1024 Dec 20 12:19 include
- lrwxrwxrwx 1 gap gap 10 Dec 27 13:13 init.g -> gap/init.g
- drwxr-xr-x 2 gap gap 7168 Dec 28 13:28 srce
- gap:~/3.2/pkg/anupq > rm c5c5_class* |
-
- The last test will test the link between {\GAP} and the ANU pq. If
- everything goes well you should not see any message.
-
- | gap@tiffy:../anupq > gap -b
- gap> RequirePackage( "anupq" );
- gap> ReadTest( "gap/anupga.tst" );
- gap> |
-
- You may now repeat the tests for the other machines.
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{NQ Package}
- \index{NilpotentQuotient}
-
- 'NilpotentQuotient( <F> )' \\
- 'NilpotentQuotient( <F>, <c> )'
-
- 'NilpotentQuotient' computes the quotient groups of the finitely
- presented group <F> successively modulo the terms of the lower central
- series of <F>. If it terminates, it returns a list $L$. The $i$-th
- entry of $L$ contains the non-trivial abelian invariants of the $i$-th
- factor of the lower central series of <F> (the largest abelian
- quotient being the first factor).
-
- 'NilpotentQuotient' accepts a positive integer <c> as an optional
- second argument. If the second argument is present, the function
- computes the quotient group of <F> modulo the <c>-th term of the lower
- central series of <F> (the commutator subgroup is the first term).
-
- | gap> RequirePackage("nq");
- gap> a := AbstractGenerator( "a" );;
- gap> b := AbstractGenerator( "b" );;
- gap>
- gap> G := rec( generators := [a, b],
- > relators := [ LeftNormedComm( b,a,a,a,a ),
- > LeftNormedComm( b,a,b,b,b ),
- > LeftNormedComm( b,a,a*b,a*b,a*b ),
- > LeftNormedComm( b,a,a*b^2,a*b^2,a*b^2 ),
- > LeftNormedComm( b,a,b,a,a,a ),
- > LeftNormedComm( b,a,a,b,b,b ) ]
- > );;
- gap>
- gap> NilpotentQuotient( G, 6 );
- [ [ 0, 0 ], [ 0 ], [ 0, 0 ], [ 0, 0, 0 ], [ 2, 0, 0 ], [ 2, 10, 0 ] ]|
-
- This implementation was developed in C by
-
- Werner Nickel\\
- School of Mathematical Sciences\\
- Australian National University\\
- Canberra, ACT 0200
-
- e-mail werner@pell.anu.edu.au
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Installing the NQ Package}
-
- The NQ is written in C and the package can only be installed under UNIX.
- It has been tested on DECstation running Ultrix, a NeXTstation running
- NeXT-Step 3.0, and SUNs running SunOS. It requires the GNU multiple
- precision arithmetic. Make sure that this library is installed before
- trying to install the NQ.
-
- In the example we will assume that you, as user 'gap', are installing the
- NQ package for use by several users on a network of two DECstations,
- called 'bert' and 'tiffy', and a NeXTstation, called 'bjerun'. We assume
- that {\GAP} is also installed on these machines following the
- instructions given in "Installation under UNIX".
-
- Note that certain parts of the output in the examples should only be
- taken as rough outline, especially file sizes and file dates are *not* to
- be taken literally.
-
- First of all you have to get the file 'nq.tar.Z' (see "Getting GAP").
- Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
-
- | gap@tiffy:~ > ls -l
- drwxr-xr-x 11 gap gap 1024 Nov 8 1991 3.2
- -rw-r--r-- 1 gap gap 106307 Jan 24 15:16 nq.tar.Z
- gap@tiffy:~ > cd 3.2
- gap@tiffy:../3.2 > ls -l
- drwxr-xr-x 2 gap gap 3072 Nov 26 11:53 doc
- drwxr-xr-x 2 gap gap 1024 Nov 8 1991 grp
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 lib
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 src
- drwxr-xr-x 2 gap gap 1024 Nov 26 09:42 tst|
-
- Now create a subdirectory 'pkg/', assuming that no such directory exists,
- and change into this subdirectory.
-
- | gap@tiffy:~/3.2 > mkdir pkg
- gap@tiffy:~/3.2 > cd pkg |
-
- Now create a subdirectory 'nq/', again assuming that no such directory
- exists, and change into this subdirectory.
-
- | gap@tiffy:../pkg > mkdir nq
- gap@tiffy:../pkg > cd nq |
-
- Unpack the package using 'uncompress' and 'tar'. Note that you must be
- in the 'nq/' subdirectory to unpack the files. After you have unpacked
- the source you may remove the *archive-file*.
-
- | gap@tiffy:../nq > uncompress ../../../nq.tar.Z
- gap@tiffy:../nq > tar xf ../../../nq.tar
- gap@tiffy:../nq > ls -l
- drwxr-xr-x 2 gap gap 1024 Jan 24 21:00 bin
- drwxr-xr-x 2 gap gap 1024 Jan 19 11:33 examples
- drwxr-xr-x 2 gap gap 1024 Jan 24 21:03 gap
- lrwxrwxrwx 1 gap gap 8 Jan 19 11:33 init.g -> gap/nq.g
- drwxr-xr-x 2 gap gap 1024 Jan 24 21:04 src
- -rwxr--r-- 1 gap gap 144 Dec 28 15:08 testNq |
-
- Switch into the directory 'src/' and type 'make' to compile the NQ. If
- the header files for the GNU multiple precision arithmetic are *not* in
- '/usr/local/include' you must set 'GNUINC' to the correct directory. If
- the library for the GNU multiple precision arithmetic is *not*
- '/usr/local/lib/libmp.a' you must set 'GNULIB'. In your case we first
- compile the DECstation version.
-
- | gap@tiffy:../src > make GNUINC=/usr/gnu/include \
- GNULIB=/usr/gnu/lib/libmp.a
- |\#| you will see a lot of messages |
-
- Now it is possible to test the standalone.
-
- | gap@tiffy:../src > cd ..
- gap@tiffy:../nq > testNq |
-
- If 'testNq' reports a difference others then machine name, runtime or
- size, check the GNU multiple precision arithmetic and warnings generated
- by 'make'. If 'testNq' succeeded , move the executable to the
- 'bin/' directory.
-
- | gap@tiffy:../nq > mv src/nq bin/nq.ds |
-
- Now repeat the compilation for the NeXTstation. *Do not* forget to clean
- up.
-
- | gap@tiffy:../nq > rlogin bjerun
- gap@bjerun:~ > cd 3.2/pkg/nq/src
- gap@bjerun:../src > make clean
- gap@bjerun:../src > make
- |\#| you will see a lot of messages
- gap@bjerun:../src > mv nq ../bin/nq.next
- gap@bjerun:../src > exit
- gap@tiffy:../src > |
-
- Switch into the subdirectory 'bin/' and create a script which will call
- the correct binary for each machine.
-
- | gap@tiffy:../src > cd ..
- gap@tiffy:../nq > cat > bin/nq
- |\#|!/bin/csh
- switch ( `hostname` )
- case 'bert':
- case 'tiffy':
- exec ~gap/3.2/pkg/nq/bin/nq.ds $* ;
- breaksw ;
- case 'bjerun':
- exec ~gap/3.2/pkg/nq/bin/nq.next $* ;
- breaksw ;
- default:
- echo "nq: sorry, no executable exists for this machine" ;
- breaksw ;
- endsw
- |<ctr>-'D'|
- gap@tiffy:../nq > chmod 755 bin/nq|
-
- Now it is time to test the package. Assuming that 'testNq' worked the
- following will test the link to {\GAP}.
-
- | gap@tiffy:../nq > gap -b
- gap> RequirePackage( "nq" );
- gap> ReadTest( "gap/nq.tst" );
- gap> |
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Weyl Package}
-
- There is a collection of programs for dealing with finite Weyl groups,
- associated (Iwahori-) Hecke algebras, and their representations. These
- programs were written by Meinolf Geck (Lehrstuhl D \fuer\ Mathematik,
- RWTH Aachen, Templergraben 64, 5100 Aachen, Germany, e-mail\:
- geck@tiffy.math.rwth-aachen.de).
-
- On a low level, these programs provide the basic data about a fixed
- finite Weyl group $W$\: \\
- having specified a Cartan matrix, they compute the root system, the
- reflection representation, and the permutation representation on the root
- vectors. Elements of $W$ can be given either as permutations or as
- reduced words in the standard generators (i.e., simply as a list of
- integers labelling the generators), and there are functions to convert
- these expressions into each other. In particular, all functions of
- {\GAP} for working with permutation groups can be applied.
-
- On a higher level, it is possible to compute distinguished coset
- representatives and representatives of the conjugacy classes of $W$ of
- minimal length. Furthermore, there are functions for calculating
- Kazhdan-Lusztig polynomials, left cells, and the corresponding
- representations of the associated Hecke algebra $H$ (for groups of rank
- $\leq$ 5, say). Also, computations inside $H$ are possible, such as
- multiplying two arbitrary elements of $H$ and expressing the result as a
- linear combination in the basis elements $T_w$, $w \in W$.
-
- The following section describes the installation of the Weyl package, a
- description of the functions available in the Weyl package is given in
- chapter "Weyl Groups and Hecke Algebras".
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
- \Section{Installing the Weyl Package}
-
- The Weyl package is completely written in the {\GAP} language, it does
- not require any additional programms and/or compilations. It will run on
- any computer that runs {\GAP}. In the following we will describe the
- installation under UNIX. The installation on the Atari ST, TT or IBM PC
- is similar.
-
- In the example we give we will assume that {\GAP} is installed in the
- home directory of a pseudo user 'gap' and that you, as user 'gap', want
- to install the Weyl package. Note that certain parts of the output in
- the examples should only be taken as rough outline, especially file sizes
- and file dates are *not* to be taken literally.
-
- First of all you have to get the file 'weyl.tar.Z' (see "Getting GAP").
- Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
-
- | gap:~ > ls -l
- drwxr-xr-x 11 gap gap 1024 Nov 8 1991 3.2
- -rw-r--r-- 1 gap gap 35870 Nov 26 12:33 weyl.tar.Z
- gap:~ > cd 3.2
- gap:~/3.2 > ls -l
- drwxr-xr-x 2 gap gap 3072 Nov 26 11:53 doc
- drwxr-xr-x 2 gap gap 1024 Nov 8 1991 grp
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 lib
- drwxr-xr-x 2 gap gap 2048 Nov 26 09:42 src
- drwxr-xr-x 2 gap gap 1024 Nov 26 09:42 tst|
-
- Now create a subdirectory 'pkg/', assuming that no such directory exists,
- and change into this subdirectory.
-
- | gap:~/3.2 > mkdir pkg
- gap:~/3.2 > cd pkg |
-
- Now create a subdirectory 'weyl/', again assuming that no such directory
- exists, and change into this subdirectory.
-
- | gap:~/3.2/pkg > mkdir weyl
- gap:~/3.2/pkg > cd weyl |
-
- Unpack the package using 'uncompress' and 'tar'. Note that you must be
- in the 'weyl/' subdirectory to unpack the files. After you have unpacked
- the source you may remove the *archive-file*.
-
- | gap:~/3.2/pkg/weyl > uncompress ../../../weyl.tar.Z
- gap:~/3.2/pkg/weyl > tar xvf ../../../weyl.tar
- README
- init.g
- weyl.tex
- weylgrp.g
- gap:~/3.2/pkg/weyl > ls -l
- -rw-r--r-- 1 gap gap 1536 Nov 22 04:16 README
- -rw-r--r-- 1 gap gap 213 Nov 22 04:02 init.g
- -rw-r--r-- 1 gap gap 40304 Nov 22 04:18 weyl.tex
- -rw-r--r-- 1 gap gap 57058 Nov 22 03:41 weylgrp.g|
-
- If the documentation is not already installed or an older version is
- installed, copy the file 'weyl.tex' into the 'doc/' directory and run
- latex again (see "Installation under UNIX"). In general the
- documentation will already be installed so you can just skip the
- following step.
-
- | gap:~/3.2/pkg/weyl > cp weyl.tex ../../doc
- gap:~/3.2/pkg/weyl > cd ../../doc
- gap:~/3.2/doc > latex manual
- # a few messages about undefined references
- gap:~/3.2/doc > latex manual
- # a few messages about undefined references
- gap:~/3.2/doc > makeindex manual
- # 'makeindex' prints some diagnostic output
- gap:~/3.2/doc > latex manual
- # there should be no warnings this time |
-
- Now it is time to test the installation. Let us assume that the
- executable of {\GAP} lives in 'src/' and is called 'gap'.
-
- | gap:~/3.2 > src/gap -b
- gap> ?CartanMat
- CartanMat ____________________________ Weyl Groups and Hecke Algebras
-
- 'CartanMat( <type>, <n> )'
-
- returns the Cartan matrix of Dynkin type <type> and rank <n>.
-
- gap> CartanMat( "F", 4 );
- [ [ 2, -1, 0, 0 ],
- [ -1, 2, -1, 0 ],
- [ 0, -2, 2, -1 ],
- [ 0, 0, -1, 2 ] ]
-
- This function requires the package "weyl" (see "RequirePackage").
-
- gap> RequirePackage( "weyl" );
- gap> CartanMat( "F", 4 );
- [ [ 2, -1, 0, 0 ], [ -1, 2, -1, 0 ], [ 0, -2, 2, -1 ],
- [ 0, 0, -1, 2 ] ] |
-
- If 'RequirePackage' signals an error check the permissions of the
- subdirectories 'pkg/' and 'weyl/'.
-
-
- %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
-
- %E Emacs . . . . . . . . . . . . . . . . . . . . . . . local Emacs variables
- %%
- %% Local Variables:
- %% mode: outline
- %% outline-regexp: "\\\\Chapter\\|\\\\Section\\|%E"
- %% fill-column: 73
- %% eval: (hide-body)
- %% End:
- %%
-