  
  [1X7. Installation and auxiliary functions[0X
  
  
  [1X7.1 Requirements[0X
  
  The    [5XRCWA[0X    package   needs   at   least   [5XGAP[0X 4.4.7,   [5XResClasses[0X 2.5.1,
  [5XGRAPE[0X 4.0 [Soi02],   [5XPolycyclic[0X 2.1 [EN06]   and   [5XGAPDoc[0X 1.0 [LN07].   With
  possible  exception  of  the  most  recent version of [5XResClasses[0X, all needed
  packages are already present in an up-to-date standard [5XGAP[0X installation. The
  [5XRCWA[0X  package can be used under UNIX, under Windows and on the MacIntosh. It
  is  completely  written  in  the  [5XGAP[0X  language and does neither contain nor
  require  external  binaries.  In  particular,  warnings  concerning  missing
  binaries issued by [5XGRAPE[0X or other packages can savely be ignored.
  
  
  [1X7.2 Installation[0X
  
  Like  any  other [5XGAP[0X package, [5XRCWA[0X must be installed in the [11Xpkg[0X subdirectory
  of the [5XGAP[0X distribution. This is accomplished by extracting the distribution
  file  in  this directory. If you have done this, you can load the package as
  usual via [10XLoadPackage( "rcwa" );[0X.
  
  
  [1X7.3 The Info class of the package[0X
  
  [1X7.3-1 InfoRCWA[0X
  
  [2X> InfoRCWA________________________________________________________[0Xinfo class
  
  This  is  the  Info class of the [5XRCWA[0X package. See section [13XInfo Functions[0X in
  the  [5XGAP[0X  Reference  Manual  for  a  description  of the Info mechanism. For
  convenience: [10XRCWAInfo([0X[3Xn[0X[10X)[0X is a shorthand for [10XSetInfoLevel(InfoRCWA[0X,[3Xn[0X[10X)[0X.
  
  
  [1X7.4 The testing routine[0X
  
  [1X7.4-1 RCWATest[0X
  
  [2X> RCWATest( [0X[3X[0X[2X ) _____________________________________________________[0Xfunction
  [6XReturns:[0X  Nothing.
  
  Performs  tests of the [5XRCWA[0X package. Errors, i.e. differences to the correct
  results of the test computations, are reported. The processed test files are
  in the directory [11Xpkg/rcwa/tst[0X.
  
  
  [1X7.5 Building the manual[0X
  
  The  following  routine is a development tool. As all files it generates are
  included in the distribution file anyway, users will not need it.
  
  [1X7.5-1 RCWABuildManual[0X
  
  [2X> RCWABuildManual( [0X[3X[0X[2X ) ______________________________________________[0Xfunction
  [6XReturns:[0X  Nothing.
  
  This  function  builds  the  manual  of the [5XRCWA[0X package in the file formats
  LaTeX,  PDF,  HTML  and  ASCII  text.  This is accomplished using the [5XGAPDoc[0X
  package  by Frank Lübeck and Max Neunhöffer. Building the manual is possible
  only on UNIX systems and requires PDFLaTeX.
  
  
  [1X7.6 Loading and saving bitmap pictures[0X
  
  [5XRCWA[0X  provides  functions to create bitmap picture files from suitable pixel
  matrices  and  vice  versa.  The author has successfully tested this feature
  both  under  Linux  and  under  Windows,  and  the  produced pictures can be
  processed further with many common graphics programs:
  
  [1X7.6-1 SaveAsBitmapPicture[0X
  
  [2X> SaveAsBitmapPicture( [0X[3Xpicture, filename[0X[2X ) _________________________[0Xfunction
  [6XReturns:[0X  Nothing.
  
  Writes  the  pixel  matrix  [3Xpicture[0X  to  a bitmap- (bmp-) picture file named
  [3Xfilename[0X.  The  filename  should  include  the entire pathname. The argument
  [3Xpicture[0X  can  be  a GF(2) matrix, in which case a monochrome picture file is
  generated.  In  this  case,  zeros stand for black pixels and ones stand for
  white  pixels.  The argument [3Xpicture[0X can also be an integer matrix, in which
  case  a  24-bit  True  Color  picture  file  is generated. In this case, the
  entries  of  the  matrix are supposed to be integers n = 65536 * red + 256 *
  green  +  blue in the range 0, dots, 2^24-1 specifying the RGB values of the
  colors of the pixels.
  
  The    picture    can    be   read   back   into   [5XGAP[0X   by   the   function
  [10XReadFromBitmapPicture([3Xfilename[0X)[0X.
  
  [4X-----------------------------  Log  ------------------------------[0X
    [4X[0X
    [4Xgap> color   := n->32*(n mod 8)+256*32*(Int(n/8) mod 8)+65536*32*Int(n/64);;[0X
    [4Xgap> picture := List([1..512],y->List([1..512],x->color(Gcd(x,y)-1)));;[0X
    [4Xgap> SaveAsBitmapPicture(picture,"~/images/gcd.bmp");[0X
    [4X[0X
  [4X------------------------------------------------------------------[0X
  
  
  [1X7.7 Running demonstrations[0X
  
  [5XRCWA[0X  provides  a  routine  to run demonstrations of its functionality or of
  other features of [5XGAP[0X. It is intended for being used in talks.
  
  [1X7.7-1 RunDemonstration[0X
  
  [2X> RunDemonstration( [0X[3Xfilename[0X[2X ) _____________________________________[0Xfunction
  [6XReturns:[0X  Nothing.
  
  This  function  executes  the  code  in  the file named [3Xfilename[0X. It shows a
  command  and the corresponding output, waits for a keystroke, shows the next
  command and the corresponding output, waits again for a keystroke, and so on
  until  the  end of the file. The demonstration can be stopped by pressing [10Xq[0X.
  The  function  is  adapted  from  the  function  [10XDemonstration[0X  in  the file
  [11Xlib/demo.g[0X of the main [5XGAP[0X distribution.
  
  
  [1X7.8 Some general utility functions[0X
  
  [5XRCWA[0X  introduces  a couple of small utility functions which can be used in a
  more  general  context: The function [10XGeneratorsAndInverses([3XG[0X)[0X returns a list
  of  generators  of  [3XG[0X  and their inverses, [10XEpimorphismByGenerators([3XG[0X,[3XH[0X)[0X is a
  shorthand                 for                 [10XGroupHomomorphismByImages([3XG[0X,[3XH[0X,
  GeneratorsOfGroup([3XG[0X),GeneratorsOfGroup([3XH[0X))[0X  (there  is also an [10XNC[0X version of
  this),  the  function [10XListOfPowers([3Xg[0X,[3Xexp[0X)[0X returns the list [10X[[3Xg[0X,[3Xg[0X^2,...,[3Xg[0X^[3Xexp[0X][0X
  of  powers  of [3Xg[0X,  the  function  [10XAllProducts([3Xl[0X,[3Xk[0X)[0X  returns  the list of all
  products of [3Xk[0X entries of the list [3Xl[0X, the function [10XDifferencesList([3Xl[0X)[0X returns
  the  list  of  differences  of  consecutive  entries  of the list [3Xl[0X, and the
  function [10XFloatQuotients([3Xl[0X)[0X returns the list of floating point approximations
  of quotients of consecutive entries of the list [3Xl[0X.
  
  There      are      also      methods      [10XEquivalenceClasses([3Xl[0X,[3Xinv[0X)[0X     and
  [10XEquivalenceClasses([3Xl[0X,[3Xrel[0X)[0X, which decompose a list [3Xl[0X into equivalence classes
  under an equivalence relation. The equivalence relation is given either as a
  function  [3Xinv[0X  computing  a  class  invariant  of a given list entry or as a
  function  [3Xrel[0X  which  takes as arguments two list entries and returns either
  [10Xtrue[0X  or  [10Xfalse[0X  depending  on  whether  the  arguments  belong  to the same
  equivalence class or not.
  
