  
  [1X2 User Functions[0X
  
  For  most  users, this chapter contains everything you need to calculate the
  basic algebra which is Morita equivalent to a block of a group algebra.
  
  
  [1X2.1 User Variables[0X
  
  The  variables in this section are given default values that should work for
  most  users.  Users should feel free to adjust these variables to suit there
  needs. The variables [2XBasicWorkingSpace[0m ([14X2.1-1[0m) and [2XBasicMemAvailable[0m ([14X2.1-2[0m)
  describe  where  external  files will be saved and how much memory the [5XBasic[0m
  package   assumes   is   available   on   your   computer.  Make  sure  that
  [2XBasicWorkingSpace[0m  ([14X2.1-1[0m)  points  to  a  directory that has plenty of free
  space. This package creates a lot of temporary files, so it is a bad idea to
  redirect  this  variable  to a directory containing files that will get lost
  among the garbage.
  
  [2XAutoCalcBasic[0m  ([14X2.2-1[0m)  will  change  its methods depending on the amount of
  memory  available  and  the  amount  of  memory  it thinks it will need. The
  differences  between these methods are trading time for space. So increasing
  [2XBasicMemAvailable[0m  ([14X2.1-2[0m)  can  help with larger groups. One should keep in
  mind  that  [2XBasicMemAvailable[0m  ([14X2.1-2[0m) should not be the total memory on the
  machine (please leave some room for at least the operating system).
  
  [1X2.1-1 BasicWorkingSpace[0m
  
  [2X> BasicWorkingSpace__________________________________________[0Xglobal variable
  
  [13XBasicWorkingSpace[0m is the directory where the data files for the [5XMeatAxe[0m will
  be stored. After loading the [5XBasic[0m package, you can change this directory by
  making  it  a  readwrite  variable  using  the  function [2XMakeReadWriteGlobal[0m
  ([14XReference:  MakeReadWriteGlobal[0m)  and  then  using  the  function [2XDirectory[0m
  ([14XReference: Directory[0m) as in the following example.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> BasicWorkingSpace;[0X
    [4Xdir("/tmp/tmp.JmXqQu/")[0X
    [4Xgap> MakeReadWriteGlobal("BasicWorkingSpace");[0X
    [4Xgap> BasicWorkingSpace:=Directory("/tmp/GapData/");[0X
    [4Xdir("/tmp/GapData/")[0X
  [4X------------------------------------------------------------------[0X
  
  [1X2.1-2 BasicMemAvailable[0m
  
  [2X> BasicMemAvailable__________________________________________[0Xglobal variable
  
  [13XBasicMemAvailable[0m  is a list where the second entry is the maximum amount of
  memory available to [5XGAP[0m in kilobytes. The [5Xbasic[0m package assumes this is also
  the  maximum  amount  of memory available to the [5XMeatAxe[0m. If this is not the
  case,  this  number should be changed. The amount of memory available to the
  [5XMeatAxe[0m  may  change  some  of the methods used by the [5Xbasic[0m package. If you
  want [5XGAP[0m to access more memory, see [2XCommand line options[0m ([14XReference: Command
  Line Options[0m).
  
  
  [1X2.2 Fully automated calculation[0X
  
  To  use  the  automated  form of the [5XBasic[0m package, you need three pieces of
  data.  First,  you  need a group. If possible, you should use the Atlas name
  for  your  group.  For  a  list of all the named groups see [2XDisplayAtlasInfo[0m
  ([14XAtlasRep: DisplayAtlasInfo[0m). If your group does not appear in this list, or
  you  have  a  different  description for some reason, you can use a group as
  long as [2XIsGroup[0m ([14XReference: IsGroup[0m) returns true.
  
  The  argument  [13Xprime[0m  needs  to  be an integer such that [2XIsPrime[0m ([14XReference:
  IsPrime[0m) returns true and which divides the order of your group.
  
  The  integer  [13Xblocknumber[0m  needs  to be between 1 and the length of the list
  returned  by  [2XBlocksInfo[0m  ([14XReference:  BlocksInfo[0m).  While this program will
  return  the  basic  algebra  for  any  block,  the blocks of defect zero are
  trivial and can be computed faster by hand.
  
  [1X2.2-1 AutoCalcBasic[0m
  
  [2X> AutoCalcBasic( [0X[3Xgroup, prime, blocknumber[0X[2X ) _______________________[0Xfunction
  [2X> AutoCalcBasic( [0X[3Xgroupname, prime, blocknumber[0X[2X ) ___________________[0Xfunction
  [6XReturns:[0X  a  list  containing the basic algebra record as the third element.
            The  first  entry  in  this  list  describes the generators of the
            condensation  algebra,  see  [2XFindAlgGens[0m  ([14X3.1-4[0m),  and the second
            entry  gives  the  words  for  the generators for the condensation
            subgroup  inside  its  normalizer and also the words for any [3Xprime[0m
            Sylow  elements  that  might  have been used, see [2XFindCondSubgroup[0m
            ([14X3.1-2[0m)
  
  This function can be called either with a group [3Xgroup[0m or with the Atlas name
  of  a  group,  [3Xgroupname[0m.  For  a list of named groups, see [2XDisplayAtlasInfo[0m
  ([14XAtlasRep:  DisplayAtlasInfo[0m).  [2XAutoCalcBasic[0m is the automation of the [5XBasic[0m
  package.  The  idea  is  to  construct the [13XProjective Indecomposable Modules
  (PIMs)[0m  contained in the [3Xblocknumber[0m block of a condensation algebra and use
  the  relevant  homomorphisms  between  these  PIMs  to  construct  the basic
  algebra.   Blocks   are   labeled  as  returned  by  [2XBlocksInfo[0m  ([14XReference:
  BlocksInfo[0m).  [3Xprime[0m  is  the  characteristic of the basic algebra and should
  divide the order of [3Xgroupname[0m or [3Xgroup[0m.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> basalg:=AutoCalcBasic("M11",2,1);;[0X
    [4Xgap> basalg[1];[0X
    [4X[ rec( genlist := [ 2, 6 ] ) ][0X
    [4Xgap> basalg[2];[0X
    [4X[ [ "ab^{2}a^{-1}b^{2}", "a^{-2}" ],[0X
    [4X  [ "a^{2}ba^{-2}", "aba^{-2}b^{-1}", "a^{-1}bab", "b^{2}a^{2}" ] ][0X
    [4Xgap> RecNames(basalg[3]);[0X
    [4X[ "group", "generators", "npims", "pimnames", "cartan", "field", "dim",[0X
    [4X  "adjmat", "1a", "2a", "4a", "1a2a1", "1a4a1", "2a1a1", "2a2a1", "4a1a1",[0X
    [4X  "4a4a1", "matrices" ][0X
  [4X------------------------------------------------------------------[0X
  
  See  also  [2XBlocksInfo[0m  ([14XReference:  BlocksInfo[0m), [2XDisplayAtlasInfo[0m ([14XAtlasRep:
  DisplayAtlasInfo[0m),   [2XFindAlgGens[0m   ([14X3.1-4[0m),  [2XFindCondSubgroup[0m  ([14X3.1-2[0m),  and
  [2XRecNames[0m ([14XReference: RecNames[0m).
  
  Before using the function [2XAutoCalcBasic[0m with a particular group, it might be
  useful   to   run  [2XInfoKond[0m  ([14X2.2-2[0m).  The  condensation  subgroup  used  by
  [2XAutoCalcBasic[0m  is  the  one returned by [2XInfoKond[0m ([14X2.2-2[0m). For information on
  using a different condensation subgroup, see [2XFindFaithBurn[0m ([14X3.1-1[0m).
  
  [1X2.2-2 InfoKond[0m
  
  [2X> InfoKond( [0X[3Xgroup, prime, blocknumber[0X[2X ) ____________________________[0Xfunction
  [2X> InfoKond( [0X[3Xgroupname, prime, blocknumber[0X[2X ) ________________________[0Xfunction
  [6XReturns:[0X  a  record  containing  information about a particular condensation
            subalgebra  of  the  group  algebra. The components of this record
            are:
  
  [8Xpermchar[0m
                  the  permutation  character  of  the  conjugacy class of the
                  condensation subgroup.
  
  [8Xnorm[0m
                  the scalar product of [13Xpermchar[0m with itself.
  
  [8Xnumberinburn[0m
                  the  number  in the table of marks of the conjugacy class of
                  the condensation subgroup.
  
  [8Xcartan[0m
                  the  cartan  matrix for the block of the group algebra given
                  by [13Xblocknumber[0m.
  
  [8Xdimmodchars[0m
                  the  dimensions of the modular characters of the group which
                  are in the block.
  
  [8Xsplitf[0m
                  the splitting field of the group.
  
  [8Xdimfixmod[0m
                  the  dimensions  of  the  simple  modules  in  the condensed
                  algebra.
  
  [8Xdimfixproj[0m
                  the  dimensions  of the projective indecomposable modules in
                  the condensed algebra.
  
  This  function uses the record returned by [2XFindFaithBurn[0m ([14X3.1-1[0m) to select a
  condensation  subgroup which will give the smallest condensation algebra for
  the  block  [13Xblocknumber[0m  of  the  group algebra. [2XInfoKond[0m can be called with
  either  [3Xgroup[0m  being  a  group, or [3Xgroupname[0m a string name of a group. Using
  either method, the group being referred to must have both a character table,
  see  [2XCharacterTable[0m  ([14XReference:  CharacterTable[0m), and a table of marks, see
  [2XTableOfMarks[0m  ([14XReference:  TableOfMarks[0m),  in  [5XGAP[0m.  [3Xprime[0m is a prime number
  which divides the order of the group.
  
  [4X---------------------------  Example  ----------------------------[0X
    [4Xgap> grpinfo:=InfoKond("M11",2,1);[0X
    [4Xrec( permchar := [ 880, 0, 16, 0, 0, 0, 0, 0, 0, 0 ], norm := [ [ 112 ] ],[0X
    [4X  numberinburn := 13, cartan := [ [ 4, 2, 2 ], [ 2, 5, 1 ], [ 2, 1, 3 ] ],[0X
    [4X  dimmodchars := [ 1, 10, 44 ], splitf := 2, dimfixmod := [ 1, 2, 4 ],[0X
    [4X  dimfixproj := [ 16, 16, 16 ] )[0X
  [4X------------------------------------------------------------------[0X
  
