home *** CD-ROM | disk | FTP | other *** search
/ Math Solutions 1995 October / Math_Solutions_CD-ROM_Walnut_Creek_October_1995.iso / pc / mac / discrete / doc / share.tex < prev    next >
Encoding:
Text File  |  1993-05-05  |  32.6 KB  |  811 lines

  1. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  2. %%
  3. %A  share.tex                   GAP documentation                Frank Celler
  4. %%
  5. %A  @(#)$Id: share.tex,v 3.11 1993/02/19 10:48:42 gap Exp $
  6. %%
  7. %Y  Copyright 1990-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
  8. %%
  9. %H  $Log: share.tex,v $
  10. %H  Revision 3.11  1993/02/19  10:48:42  gap
  11. %H  adjustments in line length and spelling
  12. %H
  13. %H  Revision 3.10  1993/02/18  09:50:38  felsch
  14. %H  examples fixed
  15. %H
  16. %H  Revision 3.9  1993/02/01  11:36:55  fceller
  17. %H  added reference to "weyl.tex" and "anupq.tex"
  18. %H
  19. %H  Revision 3.8  1993/01/25  22:16:09  fceller
  20. %H  added Werner's NQ
  21. %H
  22. %H  Revision 3.7  1993/01/05  11:41:05  fceller
  23. %H  added ANU pq in the introduction
  24. %H  
  25. %H  Revision 3.6  1993/01/04  11:01:25  fceller
  26. %H  fixed some misspellings
  27. %H
  28. %H  Revision 3.5  1992/12/29  15:56:35  fceller
  29. %H  add the ANU pq
  30. %H
  31. %H  Revision 3.4  1992/12/04  11:11:58  fceller
  32. %H  added Neubueser's introduction
  33. %H
  34. %H  Revision 3.3  1992/12/02  10:08:45  fceller
  35. %H  fixed a few bad text alignments
  36. %H
  37. %H  Revision 3.2  92/11/30  15:17:32  fceller
  38. %H  initial GAP 3.2 revision
  39. %%
  40. \def\fuer{f{\accent127 u}r}
  41. \Chapter{Share Libraries}
  42.  
  43. Contributions from  people working at Lehrstuhl D,  RWTH  Aachen, or  any
  44. other place can become available in {\GAP} in two different ways\:
  45.  
  46. 1.  They can become parts of the main {\GAP} library of functions.  Their
  47. origin will then be rather carefully documented in the respective program
  48. files, but  will  not occur in the  description of these functions in the
  49. manual.   This is  e.g.   the  case  -- to mention just one of many  such
  50. contributions  --  with  programs  for  finding  composition  factors  of
  51. permutation groups, written by Akos Seress. The reason for  this decision
  52. about  keeping track  of the  origin of such  contributions is that quite
  53. often such  functions  in  the  main  {\GAP} library  have a  complicated
  54. history with changes and contributions from various people.
  55.  
  56. 2.  On the other  hand  there  are packages written  by  one  or  several
  57. persons  for specific purposes either in the {\GAP} language or even in C
  58. which  are  made  available  en  block  in  {\GAP}.  Such  packages  will
  59. constitute the *share library*.  A package in the share library will stay
  60. under the full responsibility of  its author(s), which  will  be named in
  61. the  respective chapter in the manual,  they will in particular keep  the
  62. copyright for  this  package, and  they will  also  have  to  provide the
  63. documentation  for  it.   However provisions  will  be  made to  call the
  64. functions of such a  package like any other {\GAP} functions, and to call
  65. the documentation via help functions like any other part  of  the  {\GAP}
  66. documentation.  Also these packages will automatically be made  available
  67. with the main body of  {\GAP} through ftp and will be sent  together with
  68. the  main body  of {\GAP} in case we have  to fulfill  a request to  send
  69. {\GAP} to institutions that cannot obtain {\GAP} via electronic networks.
  70.  
  71. The inclusion  of  packages  into  the {\GAP}  share  library  should  be
  72. negotiated with  Lehrstuhl D \fuer\ Mathematik,  RWTH Aachen, for certain
  73. standards of the documentation  and  program organisation that should  be
  74. met in  order  to facilitate the use  of the packages in  the context  of
  75. {\GAP} without problems. A necessary condition for  any package to become
  76. part of the {\GAP} share library  is that it is made available under  the
  77. conditions formulated  in the {\GAP} copyright  statement, in  particular
  78. free  of any charge,  except for refund of expenses for sending,  if such
  79. occur.
  80.  
  81. The  first section  describes how to load  a  share  library package (see
  82. "RequirePackage").
  83.  
  84. The next sections describe the ANU pq package and how to install  it (see
  85. "ANU pq Package" and "Installing the ANU pq Package").
  86.  
  87. The next sections describe the NQ package  and how to install it (see "NQ
  88. Package" and "Installing the NQ Package").
  89.  
  90. The next sections describe the  Weyl package and  how to install  it (see
  91. "Weyl Package" and "Installing the Weyl Package").
  92.  
  93. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  94. \Section{RequirePackage}
  95.  
  96. 'RequirePackage( <name> )'
  97.  
  98. 'RequirePackage' will try to initialize the  share library <name>. If the
  99. package <name> is not installed at your site 'RequirePackage' will signal
  100. an  error.  If the package <name> is already initialized 'RequirePackage'
  101. simply returns without any further actions.
  102.  
  103. |    gap> CartanMat( "A", 4 );
  104.     Error, Variable: 'CartanMat' must have a value
  105.     gap> ?Cartan
  106.         'CartanMat( <type>, <n> )'
  107.  
  108.         returns the Cartan matrix of Dynkin type <type> and rank <n>.
  109.  
  110.             gap> CartanMat( "F", 4 );
  111.             [ [  2, -1,  0,  0 ], 
  112.               [ -1,  2, -1,  0 ],
  113.               [  0, -2,  2, -1 ], 
  114.               [  0,  0, -1,  2 ] ]
  115.  
  116.         This function requires the package  "weyl"  (see "RequirePackage").
  117.     
  118.     gap> RequirePackage( "wyel" );
  119.     Error, share library "wyel" is not installed
  120.     gap> RequirePackage( "weyl" );
  121.     gap> CartanMat( "A", 4 );;
  122.     gap> PrintArray( last );
  123.     [ [   2,  -1,   0,   0 ],
  124.       [  -1,   2,  -1,   0 ],
  125.       [   0,  -1,   2,  -1 ],
  126.       [   0,   0,  -1,   2 ] ]|
  127.  
  128.  
  129. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  130. \Section{ANU pq Package}
  131.  
  132. The   ANU  pq  provides  access  to  implementations   of  the  following
  133. algorithms\:
  134.  
  135. 1.  A $p$-quotient algorithm  to compute  a power-commutator presentation
  136. for a group  of  prime power order.  The  algorithm implemented  here  is
  137. based on that described in Havas and Newman (1980) and papers referred to
  138. there.   Another  description  of  the  algorithm appears in  Vaughan-Lee
  139. (1990).  A FORTRAN implementation  of this algorithm  was  programmed  by
  140. Alford and Havas.  The basic  data structures  of that implementation are
  141. retained.
  142.  
  143. 2. A $p$-group generation algorithm to generate descriptions of groups of
  144. prime  power  order.   The  algorithm  implemented here is based  on  the
  145. algorithms described in Newman  (1977)  and O\'Brien  (1990).  A  FORTRAN
  146. implementation of  this  algorithm  was  earlier  developed by Newman and
  147. O\'Brien.
  148.  
  149. The following section describes the installation of the ANU pq package, a
  150. description of the functions available in the  ANU pq package is given in
  151. chapter "ANU Pq".
  152.  
  153. A reader interested  in details  of the  algorithms  and explanations  of
  154. terms  used  is  referred  to  \cite{HN80},  \cite{OBr90},  \cite{New77},
  155. \cite{Vau84}, \cite{Vau90a}, and \cite{Vau90b}.
  156.  
  157. For  details about  the implementation and the standalone version see the
  158. README. This implementation was developed in C by
  159.  
  160. Eamonn O\'Brien\\
  161. School of Mathematical Sciences\\
  162. Australian National University\\
  163. Canberra, ACT 0200
  164.  
  165. e-mail obrien@pell.anu.edu.au\\
  166. Telephone +61-6-249 2963 (office)\\
  167. FAX +61-6-249 3918
  168.  
  169. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  170. \Section{Installing the ANU pq Package}
  171.  
  172. The ANU  pq is written  in C and the  package can only be installed under
  173. UNIX.  It has been tested on DECstation running Ultrix, a HP 9000/700 and
  174. HP 9000/800 running HP-UX, a MIPS running RISC/os Berkeley, a NeXTstation
  175. running NeXTSTEP 3.0, and SUNs running SunOS.
  176.  
  177. The standalone  version,  however,  will  also  run  under  VMS, see  the
  178. supplied README for installation instructions of the standalone.
  179.  
  180. In the example we will assume that you, as user 'gap', are installing the
  181. ANU pq package for use by several users on a network  of two DECstations,
  182. called 'bert' and 'tiffy', and a NeXTstation,  called 'bjerun'. We assume
  183. that  {\GAP}  is   also  installed  on   these  machines   following  the
  184. instructions given in "Installation under UNIX".
  185.  
  186. Note that certain parts  of  the  output  in the examples should  only be
  187. taken as rough outline, especially file sizes and file dates are *not* to
  188. be taken literally.
  189.  
  190. First of all you  have to get the file 'anupq.tar.Z' (see "Getting  GAP").
  191. Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
  192.  
  193. |    gap@tiffy:~ > ls -l
  194.     drwxr-xr-x  11 gap      gap          1024 Nov  8  1991 3.2
  195.     -rw-r--r--   1 gap      gap        360891 Dec 27 15:16 anupq.tar.Z
  196.     gap@tiffy:~ > cd 3.2
  197.     gap@tiffy:../3.2 > ls -l
  198.     drwxr-xr-x   2 gap      gap          3072 Nov 26 11:53 doc
  199.     drwxr-xr-x   2 gap      gap          1024 Nov  8  1991 grp
  200.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 lib
  201.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 src
  202.     drwxr-xr-x   2 gap      gap          1024 Nov 26 09:42 tst|
  203.  
  204. Now create a subdirectory 'pkg/', assuming that no such directory exists,
  205. and change into this subdirectory.
  206.  
  207. |    gap@tiffy:~/3.2 > mkdir pkg
  208.     gap@tiffy:~/3.2 > cd pkg |
  209.  
  210. Now create a subdirectory 'anupq/', again assuming that no such directory
  211. exists, and change into this subdirectory.
  212.  
  213. |    gap@tiffy:../pkg > mkdir anupq
  214.     gap@tiffy:../pkg > cd anupq |
  215.  
  216. Unpack the package  using 'uncompress' and 'tar'.   Note that you must be
  217. in the 'anupq/' subdirectory to unpack the files. After you have unpacked
  218. the source you may remove the *archive-file*.
  219.  
  220. |    gap@tiffy:../anupq > uncompress ../../../anupq.tar.Z 
  221.     gap@tiffy:../anupq > tar xf ../../../anupq.tar 
  222.     gap@tiffy:../anupq > ls -l
  223.     -rw-r--r--   1 gap    gap     11185 Dec  9 10:44 README
  224.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 TEST
  225.     drwxr-xr-x   2 gap    gap      1024 Dec 27 14:36 bin
  226.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 cayley
  227.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 doc
  228.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 examples
  229.     drwxr-xr-x   2 gap    gap      1024 Dec 27 15:16 gap
  230.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:19 include
  231.     lrwxrwxrwx   1 gap    gap        10 Dec 27 13:13 init.g -> gap/init.g
  232.     drwxr-xr-x   2 gap    gap      7168 Dec 27 15:15 srce |
  233.  
  234. Switch  into the directory 'srce/'.  The makefile for the gap  version of
  235. the ANU pq is in the subdirectory 'gap/' so *do not* type 'make'.
  236.  
  237. |    gap@tiffy:../srce > make -f ../gap/Makefile
  238.     usage: 'make <target>'  where target is one of
  239.     'decs-ultrix-gcc2'  for DECstations running Ultrix with GNU cc 2
  240.     'decs-ultrix-cc'    for DECstations running Ultrix with cc
  241.     'hp700-hpux-cc'     for HP 9000/700 running HP-UX with cc
  242.     'hp800-hpux-cc'     for HP 9000/800 running HP-UX with cc
  243.     'ibmpc-386bsd-gcc2' for IBM PCs running 386BSD with GNU cc 2
  244.     'ibmpc-386bsd-gcc'  for IBM PCs running 386BSD with GNU cc
  245.     'mips-bsd-cc'       for MIPS running RISC/os Berkeley with cc
  246.     'next-mach-gcc2'    for NeXT running Mach with GNU cc 2
  247.     'next-mach-cc'      for NeXT running Mach with cc (GNU)
  248.     'sun4-sunos-gcc'    for SUN 4 running SunOs with GNU cc 2
  249.     'sun4-sunos-cc'     for SUN 4 running SunOs with cc
  250.     'unix'              for a generic unix system with cc
  251.     'clean'             remove all created files
  252.        targets are listed according to preference,
  253.        i.e., 'sun4-sunos-gcc2' is better than 'sun4-sunos-cc'.
  254.        additional C compiler and linker flags can be passed with
  255.        'make <target> COPTS=<compiler-opts> LOPTS=<linker-opts>',
  256.        i.e., 'make sun4-sunos-cc COPTS=-g LOPTS=-g'.
  257.  
  258.        set GAP if gap 3.2 is not started with the command 'gap',
  259.        i.e., 'make sun4-sunos-cc GAP=/home/gap/bin/gap-3.2'.|
  260.  
  261. Select the target  you need. In your case we first compile the DECstation
  262. version.    We   assume   that   the   command   to   start   {\GAP}   is
  263. '/usr/local/bin/gap'      for      'tiffy'      and      'bjerun'     and
  264. '/rem/tiffy/usr/local/bin/gap' for 'bert'.
  265.  
  266. |    gap@tiffy:../srce > make -f ../gap/Makefile decs-ultric-cc \
  267.                               GAP=/usr/local/bin/gap
  268.     # you will see a lot of messages and a few warnings
  269.     gap@tiffy:../srce > mv pq ../bin/pq.ds |
  270.  
  271. Now repeat the compilation  for the NeXTstation. *Do not* forget to clean
  272. up.
  273.  
  274. |    gap@tiffy:../srce > rlogin bjerun
  275.     gap@bjerun:~ > cd 3.2/pkg/anupq/srce
  276.     gap@bjerun:../srce > make -f ../gap/Makefile clean
  277.     gap@bjerun:../srce > make -f ../gap/Makefile next-mach-cc \
  278.                               GAP=/usr/local/bin/gap
  279.     # you will see a lot of messages and a few warnings
  280.     gap@bjerun:../srce > mv pq ../bin/pq.next
  281.     gap@bjerun:../srce > exit
  282.     gap@tiffy:../srce > |
  283.  
  284. Switch into the subdirectory  'bin/' and create a script  which will call
  285. the correct binary for each machine.
  286.  
  287. |    gap@tiffy:../srce > cd ..
  288.     gap@tiffy:../anupq > cat > bin/pq
  289.     |\#|!/bin/csh
  290.     switch ( `hostname` )
  291.       case 'tiffy':
  292.         exec ~gap/3.2/pkg/anupq/bin/pq.ds $* ;
  293.         breaksw ;
  294.       case 'bert':
  295.         setenv ANUPQ_GAP_EXEC /rem/tiffy/usr/local/bin/gap ;
  296.         exec ~gap/3.2/pkg/anupq/bin/pq.ds $* ;
  297.         breaksw ;
  298.       case 'bjerun':
  299.         limit stacksize 2048 ;
  300.         exec ~gap/3.2/pkg/anupq/bin/pq.next $* ;
  301.         breaksw ;
  302.       default:
  303.         echo "pq: sorry, no executable exists for this machine" ;
  304.         breaksw ;
  305.     endsw
  306.     |<ctr>-'D'|
  307.     gap@tiffy:../anupq > chmod 755 bin/pq|
  308.  
  309. Note that the  NeXTstation requires you to raise the stacksize.   If your
  310. default limit on any other machine for the stack size  is less than  1024
  311. you might need to add the 'limit stacksize 2048' line.
  312.      
  313. If the documentation  is not  already installed  or  an  older version is
  314. installed, copy the file 'gap/anupq.tex'  into  the 'doc/'  directory and
  315. run  latex  again  (see  "Installation  under  UNIX").   In  general  the
  316. documentation  will  already  be installed  so  you  can  just  skip  the
  317. following step.
  318.  
  319. |    gap@tiffy:../anupq > cp gap/anupq.tex ../../doc
  320.     gap@tiffy:../anupq > cd ../../doc
  321.     gap@tiffy:../doc > latex manual
  322.     # a few messages about undefined references
  323.     gap@tiffy:../doc > latex manual
  324.     # a few messages about undefined references
  325.     gap@tiffy:../doc > makeindex manual
  326.     # 'makeindex' prints some diagnostic output
  327.     gap@tiffy:../doc > latex manual
  328.     # there should be no warnings this time
  329.     gap@tiffy:../doc cd ../pkg/anupq |
  330.  
  331. Now it is time  to test the installation.  The  first test will only test
  332. the ANU pq.
  333.  
  334. |    gap@tiffy:../anupq > bin/pq < gap/test1.pga
  335.     # a lot of messages ending in
  336.     **************************************************
  337.     Starting group: c3c3 |\#|2;2 |\#|4;3
  338.     Order: 3^7
  339.     Nuclear rank: 3
  340.     3-multiplicator rank: 4
  341.     |\#| of immediate descendants of order 3^8 is 7
  342.     |\#| of capable immediate descendants is 5
  343.  
  344.     **************************************************
  345.     34 capable groups saved on file c3c3_class4
  346.     Construction of descendants took 1.92 seconds
  347.  
  348.     Select option: 0 
  349.     Exiting from p-group generation
  350.  
  351.     Select option: 0 
  352.     Exiting from ANU p-Quotient Program
  353.     Total user time in seconds is 1.97
  354.     gap@tiffy:../anupq > ls -l
  355.     total 89
  356.     -rw-r--r--   1 gap    gap     11185 Dec  9 10:44 README
  357.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 TEST
  358.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:46 bin
  359.     -rw-r--r--   1 gap    gap      3188 Dec 28 14:12 c3c3_class2
  360.     -rw-r--r--   1 gap    gap      5736 Dec 28 14:12 c3c3_class3
  361.     -rw-r--r--   1 gap    gap     54688 Dec 28 14:13 c3c3_class4
  362.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 cayley
  363.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 doc
  364.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:35 examples
  365.     drwxr-xr-x   2 gap    gap      1024 Dec 28 14:12 gap
  366.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:19 include
  367.     lrwxrwxrwx   1 gap    gap        10 Dec 27 13:13 init.g -> gap/init.g
  368.     drwxr-xr-x   2 gap    gap      7168 Dec 28 13:28 srce
  369.     gap:~/3.2/pkg/anupq > rm c3c3_class* |
  370.  
  371. The second test will test the stacksize. If it is too small you will  get
  372. a memory fault, try to raise it as described above.
  373.  
  374. |    gap@tiffy:../anupq > bin/pq < gap/test2.pga
  375.     # a lot of messages ending in
  376.     **************************************************
  377.     Starting group: c2c2 |\#|1;1 |\#|1;1 |\#|1;1
  378.     Order: 2^5
  379.     Nuclear rank: 1
  380.     2-multiplicator rank: 3
  381.     Group c2c2 |\#|1;1 |\#|1;1 |\#|1;1 is an invalid starting group
  382.  
  383.     **************************************************
  384.     Starting group: c2c2 |\#|2;1 |\#|1;1 |\#|1;1
  385.     Order: 2^5
  386.     Nuclear rank: 1
  387.     2-multiplicator rank: 3
  388.     Group c2c2 |\#|2;1 |\#|1;1 |\#|1;1 is an invalid starting group
  389.     Construction of descendants took 0.47 seconds
  390.  
  391.     Select option: 0 
  392.     Exiting from p-group generation
  393.  
  394.     Select option: 0 
  395.     Exiting from ANU p-Quotient Program
  396.     Total user time in seconds is 0.50
  397.     gap@tiffy:../anupq > ls -l
  398.     total 45
  399.     -rw-r--r--   1 gap    gap     11185 Dec  9 10:44 README
  400.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 TEST
  401.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:46 bin
  402.     -rw-r--r--   1 gap    gap      5964 Dec 28 14:16 c2c2_class2
  403.     -rw-r--r--   1 gap    gap     10716 Dec 28 14:16 c2c2_class3
  404.     -rw-r--r--   1 gap    gap      2160 Dec 28 14:16 c2c2_class4
  405.     -rw-r--r--   1 gap    gap         0 Dec 28 14:16 c2c2_class5
  406.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 cayley
  407.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 doc
  408.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:35 examples
  409.     drwxr-xr-x   2 gap    gap      1024 Dec 28 14:12 gap
  410.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:19 include
  411.     lrwxrwxrwx   1 gap    gap        10 Dec 27 13:13 init.g -> gap/init.g
  412.     drwxr-xr-x   2 gap    gap      7168 Dec 28 13:28 srce
  413.     gap:~/3.2/pkg/anupq > rm c2c2_class* |
  414.  
  415. The third example tests the link between the ANU pq and {\GAP}.  If there
  416. is a problem you will get a error message saying
  417. 'Error in  system  call  to GAP';  if this happens, check the environment
  418. variable 'ANUPQ\_GAP\_EXEC'.
  419.  
  420. |    gap@tiffy:../anupq > bin/pq < gap/test3.pga
  421.     # a lot of messages ending in
  422.     **************************************************
  423.     Starting group: c5c5 |\#|1;1 |\#|1;1
  424.     Order: 5^4
  425.     Nuclear rank: 1
  426.     5-multiplicator rank: 2
  427.     |\#| of immediate descendants of order 5^5 is 2
  428.  
  429.     **************************************************
  430.     Starting group: c5c5 |\#|1;1 |\#|2;2
  431.     Order: 5^5
  432.     Nuclear rank: 3
  433.     5-multiplicator rank: 3
  434.     |\#| of immediate descendants of order 5^6 is 3
  435.     |\#| of immediate descendants of order 5^7 is 3
  436.     |\#| of capable immediate descendants is 1
  437.     |\#| of immediate descendants of order 5^8 is 1
  438.     |\#| of capable immediate descendants is 1
  439.  
  440.     **************************************************
  441.     2 capable groups saved on file c5c5_class4
  442.  
  443.     **************************************************
  444.     Starting group: c5c5 |\#|1;1 |\#|2;2 |\#|4;2
  445.     Order: 5^7
  446.     Nuclear rank: 1
  447.     5-multiplicator rank: 2
  448.     |\#| of immediate descendants of order 5^8 is 2
  449.     |\#| of capable immediate descendants is 2
  450.  
  451.     **************************************************
  452.     Starting group: c5c5 |\#|1;1 |\#|2;2 |\#|7;3
  453.     Order: 5^8
  454.     Nuclear rank: 2
  455.     |\#| of immediate descendants of order 5^9 is 1
  456.     |\#| of capable immediate descendants is 1
  457.     |\#| of immediate descendants of order 5^10 is 1
  458.     |\#| of capable immediate descendants is 1
  459.  
  460.     **************************************************
  461.     4 capable groups saved on file c5c5_class5
  462.     Construction of descendants took 0.62 seconds
  463.  
  464.     Select option: 0 
  465.     Exiting from p-group generation
  466.  
  467.     Select option: 0 
  468.     Exiting from ANU p-Quotient Program
  469.     Total user time in seconds is 0.68
  470.     gap@tiffy:../anupq > ls -l
  471.     total 41
  472.     -rw-r--r--   1 gap    gap     11185 Dec  9 10:44 README
  473.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 TEST
  474.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:46 bin
  475.     -rw-r--r--   1 gap    gap       880 Dec 28 14:20 c5c5_class2
  476.     -rw-r--r--   1 gap    gap      2132 Dec 28 14:20 c5c5_class3
  477.     -rw-r--r--   1 gap    gap      3104 Dec 28 14:20 c5c5_class4
  478.     -rw-r--r--   1 gap    gap      7300 Dec 28 14:21 c5c5_class5
  479.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 cayley
  480.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:18 doc
  481.     drwxr-xr-x   2 gap    gap      1024 Dec 28 13:35 examples
  482.     drwxr-xr-x   2 gap    gap      1024 Dec 28 14:19 gap
  483.     drwxr-xr-x   2 gap    gap      1024 Dec 20 12:19 include
  484.     lrwxrwxrwx   1 gap    gap        10 Dec 27 13:13 init.g -> gap/init.g
  485.     drwxr-xr-x   2 gap    gap      7168 Dec 28 13:28 srce
  486.     gap:~/3.2/pkg/anupq > rm c5c5_class* |
  487.  
  488. The last  test will  test  the  link between {\GAP} and  the  ANU pq.  If
  489. everything goes well you should not see any message.
  490.  
  491. |    gap@tiffy:../anupq > gap -b
  492.     gap> RequirePackage( "anupq" );
  493.     gap> ReadTest( "gap/anupga.tst" );
  494.     gap> |
  495.  
  496. You may now repeat the tests for the other machines.
  497.  
  498.  
  499. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  500. \Section{NQ Package}
  501. \index{NilpotentQuotient}
  502.  
  503. 'NilpotentQuotient( <F> )' \\
  504. 'NilpotentQuotient( <F>, <c> )'
  505.  
  506. 'NilpotentQuotient'   computes the  quotient    groups of the finitely
  507. presented group <F> successively modulo the terms of the lower central
  508. series  of  <F>. If it  terminates, it returns a list  $L$. The $i$-th
  509. entry of $L$ contains the non-trivial abelian invariants of the $i$-th
  510. factor   of the lower   central series  of   <F> (the  largest abelian
  511. quotient being the first factor).
  512.  
  513. 'NilpotentQuotient'  accepts  a positive  integer <c>   as an optional
  514. second argument.    If the second  argument is  present,  the function
  515. computes the quotient group of <F> modulo the <c>-th term of the lower
  516. central series of <F> (the commutator subgroup is the first term).
  517.  
  518. |    gap> RequirePackage("nq");
  519.     gap> a := AbstractGenerator( "a" );;
  520.     gap> b := AbstractGenerator( "b" );;
  521.     gap> 
  522.     gap> G := rec( generators := [a, b],
  523.     >     relators   := [ LeftNormedComm( b,a,a,a,a ),
  524.     >                     LeftNormedComm( b,a,b,b,b ),
  525.     >                     LeftNormedComm( b,a,a*b,a*b,a*b ),
  526.     >                     LeftNormedComm( b,a,a*b^2,a*b^2,a*b^2 ),
  527.     >                     LeftNormedComm( b,a,b,a,a,a ),
  528.     >                     LeftNormedComm( b,a,a,b,b,b ) ]
  529.     >    );;
  530.     gap> 
  531.     gap> NilpotentQuotient( G, 6 );
  532.     [ [ 0, 0 ], [ 0 ], [ 0, 0 ], [ 0, 0, 0 ], [ 2, 0, 0 ], [ 2, 10, 0 ] ]|
  533.  
  534. This implementation was developed in C by
  535.  
  536. Werner Nickel\\
  537. School of Mathematical Sciences\\
  538. Australian National University\\
  539. Canberra, ACT 0200
  540.  
  541. e-mail werner@pell.anu.edu.au
  542.  
  543. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  544. \Section{Installing the NQ Package}
  545.  
  546. The NQ is written in C and the package can only be installed  under UNIX.
  547. It  has been tested  on DECstation  running Ultrix, a NeXTstation running
  548. NeXT-Step  3.0, and  SUNs  running SunOS.  It  requires  the GNU multiple
  549. precision  arithmetic.  Make  sure that  this library is installed before
  550. trying to install the NQ.
  551.  
  552. In the example we will assume that you, as user 'gap', are installing the
  553. NQ  package for  use by  several users on  a network of two  DECstations,
  554. called 'bert' and 'tiffy', and a NeXTstation, called 'bjerun'. We  assume
  555. that  {\GAP}  is  also   installed  on  these   machines  following   the
  556. instructions given in "Installation under UNIX".
  557.  
  558. Note that certain parts  of  the  output  in the examples should  only be
  559. taken as rough outline, especially file sizes and file dates are *not* to
  560. be taken literally.
  561.  
  562. First of  all you have  to  get  the file 'nq.tar.Z' (see "Getting GAP").
  563. Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
  564.  
  565. |    gap@tiffy:~ > ls -l
  566.     drwxr-xr-x  11 gap      gap          1024 Nov  8  1991 3.2
  567.     -rw-r--r--   1 gap      gap        106307 Jan 24 15:16 nq.tar.Z
  568.     gap@tiffy:~ > cd 3.2
  569.     gap@tiffy:../3.2 > ls -l
  570.     drwxr-xr-x   2 gap      gap          3072 Nov 26 11:53 doc
  571.     drwxr-xr-x   2 gap      gap          1024 Nov  8  1991 grp
  572.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 lib
  573.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 src
  574.     drwxr-xr-x   2 gap      gap          1024 Nov 26 09:42 tst|
  575.  
  576. Now create a subdirectory 'pkg/', assuming that no such directory exists,
  577. and change into this subdirectory.
  578.  
  579. |    gap@tiffy:~/3.2 > mkdir pkg
  580.     gap@tiffy:~/3.2 > cd pkg |
  581.  
  582. Now  create a subdirectory 'nq/', again assuming  that no such  directory
  583. exists, and change into this subdirectory.
  584.  
  585. |    gap@tiffy:../pkg > mkdir nq
  586.     gap@tiffy:../pkg > cd nq |
  587.  
  588. Unpack the package using 'uncompress' and 'tar'.   Note  that you must be
  589. in the  'nq/' subdirectory to  unpack the files. After  you have unpacked
  590. the source you may remove the *archive-file*.
  591.  
  592. |    gap@tiffy:../nq > uncompress ../../../nq.tar.Z 
  593.     gap@tiffy:../nq > tar xf ../../../nq.tar 
  594.     gap@tiffy:../nq > ls -l
  595.     drwxr-xr-x   2 gap    gap      1024 Jan 24 21:00 bin
  596.     drwxr-xr-x   2 gap    gap      1024 Jan 19 11:33 examples
  597.     drwxr-xr-x   2 gap    gap      1024 Jan 24 21:03 gap
  598.     lrwxrwxrwx   1 gap    gap         8 Jan 19 11:33 init.g -> gap/nq.g
  599.     drwxr-xr-x   2 gap    gap      1024 Jan 24 21:04 src
  600.     -rwxr--r--   1 gap    gap       144 Dec 28 15:08 testNq |
  601.  
  602. Switch into the directory 'src/' and  type  'make' to compile the NQ.  If
  603. the  header files for the GNU multiple precision arithmetic are  *not* in
  604. '/usr/local/include' you must set  'GNUINC' to the correct directory.  If
  605. the  library  for   the  GNU  multiple   precision  arithmetic  is  *not*
  606. '/usr/local/lib/libmp.a'  you  must  set 'GNULIB'.  In your case we first
  607. compile the DECstation version.
  608.  
  609. |    gap@tiffy:../src > make GNUINC=/usr/gnu/include \
  610.                              GNULIB=/usr/gnu/lib/libmp.a
  611.     |\#| you will see a lot of messages |
  612.  
  613. Now it is possible to test the standalone.
  614.  
  615. |   gap@tiffy:../src > cd ..
  616.     gap@tiffy:../nq > testNq |
  617.  
  618. If  'testNq' reports a  difference others then  machine name,  runtime or
  619. size, check the GNU multiple precision  arithmetic and warnings generated
  620. by  'make'.   If  'testNq'  succeeded  ,   move  the  executable  to  the
  621. 'bin/' directory.
  622.  
  623. |     gap@tiffy:../nq > mv src/nq bin/nq.ds |
  624.  
  625. Now repeat the compilation  for the NeXTstation. *Do not* forget to clean
  626. up.
  627.  
  628. |    gap@tiffy:../nq > rlogin bjerun
  629.     gap@bjerun:~ > cd 3.2/pkg/nq/src
  630.     gap@bjerun:../src > make clean
  631.     gap@bjerun:../src > make
  632.     |\#| you will see a lot of messages
  633.     gap@bjerun:../src > mv nq ../bin/nq.next
  634.     gap@bjerun:../src > exit
  635.     gap@tiffy:../src > |
  636.  
  637. Switch into the subdirectory  'bin/' and create a script  which will call
  638. the correct binary for each machine.
  639.  
  640. |    gap@tiffy:../src > cd ..
  641.     gap@tiffy:../nq > cat > bin/nq
  642.     |\#|!/bin/csh
  643.     switch ( `hostname` )
  644.       case 'bert':
  645.       case 'tiffy':
  646.         exec ~gap/3.2/pkg/nq/bin/nq.ds $* ;
  647.         breaksw ;
  648.       case 'bjerun':
  649.         exec ~gap/3.2/pkg/nq/bin/nq.next $* ;
  650.         breaksw ;
  651.       default:
  652.         echo "nq: sorry, no executable exists for this machine" ;
  653.         breaksw ;
  654.     endsw
  655.     |<ctr>-'D'|
  656.     gap@tiffy:../nq > chmod 755 bin/nq|
  657.  
  658. Now it is time  to test the  package.  Assuming that  'testNq' worked the
  659. following will test the link to {\GAP}.
  660.  
  661. |    gap@tiffy:../nq > gap -b
  662.     gap> RequirePackage( "nq" );
  663.     gap> ReadTest( "gap/nq.tst" );
  664.     gap> |
  665.  
  666. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  667. \Section{Weyl Package}
  668.  
  669. There is a  collection  of programs for  dealing with finite Weyl groups,
  670. associated (Iwahori-) Hecke algebras, and their  representations.   These
  671. programs  were  written  by Meinolf Geck (Lehrstuhl D \fuer\  Mathematik,
  672. RWTH   Aachen,   Templergraben   64,  5100   Aachen,   Germany,  e-mail\:
  673. geck@tiffy.math.rwth-aachen.de).
  674.  
  675. On a  low  level, these programs provide  the basic  data about  a  fixed
  676. finite  Weyl  group $W$\: \\
  677. having  specified a  Cartan matrix,  they compute  the  root system,  the
  678. reflection representation, and the permutation representation on the root
  679. vectors.   Elements of $W$  can be  given either as  permutations  or  as
  680. reduced words  in  the standard generators  (i.e.,  simply as a  list  of
  681. integers labelling the  generators), and there are  functions  to convert
  682. these expressions  into  each other.   In  particular,  all functions  of
  683. {\GAP} for working with permutation groups can be applied.
  684.  
  685. On  a  higher  level,  it  is  possible  to  compute distinguished  coset
  686. representatives and  representatives  of the conjugacy  classes of $W$ of
  687. minimal  length.   Furthermore,  there   are  functions  for  calculating
  688. Kazhdan-Lusztig   polynomials,   left   cells,  and   the   corresponding
  689. representations of the associated  Hecke algebra $H$  (for groups of rank
  690. $\leq$  5, say).  Also,  computations inside  $H$ are  possible, such  as
  691. multiplying two arbitrary elements of $H$ and  expressing the result as a
  692. linear combination in the basis elements $T_w$, $w \in W$.
  693.  
  694. The following section describes the installation of  the Weyl package,  a
  695. description  of the functions available in the Weyl  package is  given in
  696. chapter "Weyl Groups and Hecke Algebras".
  697.  
  698. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  699. \Section{Installing the Weyl Package}
  700.  
  701. The  Weyl package  is completely written  in the {\GAP} language, it does
  702. not require any additional programms and/or compilations.  It will run on
  703. any  computer that runs {\GAP}.  In the  following  we  will describe the
  704. installation under  UNIX. The installation on the  Atari ST, TT or IBM PC
  705. is similar.
  706.  
  707. In the example  we give we  will assume that {\GAP}  is installed  in the
  708. home directory of a pseudo  user  'gap' and that you, as user 'gap', want
  709. to install  the Weyl package.  Note that certain  parts of the  output in
  710. the examples should only be taken as rough outline, especially file sizes
  711. and file dates are *not* to be taken literally.
  712.  
  713. First of all you  have to get the file 'weyl.tar.Z' (see "Getting  GAP").
  714. Then you must locate the {\GAP} subdirectories 'lib/' and 'doc/'.
  715.  
  716. |    gap:~ > ls -l
  717.     drwxr-xr-x  11 gap      gap          1024 Nov  8  1991 3.2
  718.     -rw-r--r--   1 gap      gap         35870 Nov 26 12:33 weyl.tar.Z
  719.     gap:~ > cd 3.2
  720.     gap:~/3.2 > ls -l
  721.     drwxr-xr-x   2 gap      gap          3072 Nov 26 11:53 doc
  722.     drwxr-xr-x   2 gap      gap          1024 Nov  8  1991 grp
  723.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 lib
  724.     drwxr-xr-x   2 gap      gap          2048 Nov 26 09:42 src
  725.     drwxr-xr-x   2 gap      gap          1024 Nov 26 09:42 tst|
  726.  
  727. Now create a subdirectory 'pkg/', assuming that no such directory exists,
  728. and change into this subdirectory.
  729.  
  730. |    gap:~/3.2 > mkdir pkg
  731.     gap:~/3.2 > cd pkg |
  732.  
  733. Now create a subdirectory 'weyl/', again assuming that no  such directory
  734. exists, and change into this subdirectory.
  735.  
  736. |    gap:~/3.2/pkg > mkdir weyl
  737.     gap:~/3.2/pkg > cd weyl |
  738.  
  739. Unpack the package using 'uncompress' and  'tar'.  Note that you must  be
  740. in the 'weyl/' subdirectory to unpack the files.  After you have unpacked
  741. the source you may remove the *archive-file*.
  742.  
  743. |    gap:~/3.2/pkg/weyl > uncompress ../../../weyl.tar.Z 
  744.     gap:~/3.2/pkg/weyl > tar xvf ../../../weyl.tar 
  745.     README
  746.     init.g
  747.     weyl.tex
  748.     weylgrp.g
  749.     gap:~/3.2/pkg/weyl > ls -l
  750.     -rw-r--r--   1 gap      gap          1536 Nov 22 04:16 README
  751.     -rw-r--r--   1 gap      gap           213 Nov 22 04:02 init.g
  752.     -rw-r--r--   1 gap      gap         40304 Nov 22 04:18 weyl.tex
  753.     -rw-r--r--   1 gap      gap         57058 Nov 22 03:41 weylgrp.g|
  754.  
  755. If  the documentation  is not  already  installed or  an older version is
  756. installed, copy  the  file 'weyl.tex' into  the 'doc/' directory and  run
  757. latex   again   (see  "Installation   under   UNIX").   In  general   the
  758. documentation will  already  be  installed  so  you  can  just  skip  the
  759. following step.
  760.  
  761. |    gap:~/3.2/pkg/weyl > cp weyl.tex ../../doc
  762.     gap:~/3.2/pkg/weyl > cd ../../doc
  763.     gap:~/3.2/doc > latex manual
  764.     # a few messages about undefined references
  765.     gap:~/3.2/doc > latex manual
  766.     # a few messages about undefined references
  767.     gap:~/3.2/doc > makeindex manual
  768.     # 'makeindex' prints some diagnostic output
  769.     gap:~/3.2/doc > latex manual
  770.     # there should be no warnings this time |
  771.  
  772. Now  it  is  time  to  test  the installation.  Let  us  assume that  the
  773. executable of {\GAP} lives in 'src/' and is called 'gap'.
  774.  
  775. |    gap:~/3.2 > src/gap -b
  776.     gap> ?CartanMat
  777.     CartanMat ____________________________ Weyl Groups and Hecke Algebras
  778.     
  779.     'CartanMat( <type>, <n> )'
  780.     
  781.     returns the Cartan matrix of Dynkin type <type> and rank <n>.
  782.     
  783.         gap> CartanMat( "F", 4 );
  784.         [ [  2, -1,  0,  0 ], 
  785.           [ -1,  2, -1,  0 ],
  786.           [  0, -2,  2, -1 ], 
  787.           [  0,  0, -1,  2 ] ]
  788.     
  789.     This function requires the package  "weyl"  (see "RequirePackage").
  790.     
  791.     gap> RequirePackage( "weyl" );
  792.     gap> CartanMat( "F", 4 );
  793.     [ [ 2, -1, 0, 0 ], [ -1, 2, -1, 0 ], [ 0, -2, 2, -1 ],
  794.       [ 0, 0, -1, 2 ] ] |
  795.  
  796. If 'RequirePackage'  signals  an  error  check  the  permissions  of  the
  797. subdirectories 'pkg/' and 'weyl/'.
  798.  
  799.  
  800. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
  801.  
  802. %E  Emacs . . . . . . . . . . . . . . . . . . . . . . . local Emacs variables
  803. %%
  804. %%  Local Variables:
  805. %%  mode:               outline
  806. %%  outline-regexp:     "\\\\Chapter\\|\\\\Section\\|%E"
  807. %%  fill-column:        73
  808. %%  eval:               (hide-body)
  809. %%  End:
  810. %%
  811.