#############################################################################
##
#A  tmprimar.tom             GAP  tables of marks             Goetz Pfeiffer.
##
#A  @(#)$Id: tmprimar.tom,v 1.1.1.1 1996/12/11 12:44:35 werner Exp $
##
#Y  Copyright 1991-1992,  Lehrstuhl D fuer Mathematik,  RWTH Aachen,  Germany
##
##  This file is the primary file of GAP's collection of tables of marks.
##
#H  $Log: tmprimar.tom,v $
#H  Revision 1.1.1.1  1996/12/11 12:44:35  werner
#H  Preparing 3.4.4 for release
#H
#H  Revision 3.7  1993/01/20  18:01:31  martin
#H  changed 'TomLibrary' to use 'ReadTom'
#H
#H  Revision 3.6  1993/01/20  15:41:54  goetz
#H  corrected error message of 'TomLibrary'.
#H
#H  Revision 3.5  1993/01/15  11:10:36  goetz
#H  moved 'TOMNAME' into 'init.g'.
#H
#H  Revision 3.4  1992/11/15  15:10:55  goetz
#H  'TomLibary' may only assign 'length' if a table was found.
#H
#H  Revision 3.3  1992/11/14  17:11:48  goetz
#H  changed formal parameter of 'TomLibrary'.
#H
#H  Revision 3.2  1992/11/14  17:02:14  goetz
#H  moved 'Tom' to file 'tom.g' and extracted 'TomLibrary'.
#H
#H  Revision 3.1  1992/11/11  11:34:04  goetz
#H  'Tom' should return a copy of the library object.
#H
#H  Revision 3.0  1992/11/10  19:01:38  goetz
#H  Initial Revision.
#H
##

#############################################################################
##
#F  InfoTom1  . . . . . . . . . . . . . . . . . . . . .  package information.
#F  InfoTom2  . . . . . . . . . . . . . . . . . . . . . .  debug information.
##
if not IsBound(InfoTom1) then InfoTom1:= Ignore; fi;
if not IsBound(InfoTom2) then InfoTom2:= Ignore; fi;

#############################################################################
##
#V  TOM . . . . . . . . . . . . . . . . . . .  where to put a table of marks.
##
TOM := rec();

#############################################################################
##
#V  TOMLIST . . . . . . . . . . . . . . . . . . . . . .  contents of library.
##
TOMLIST := [

rec(name:= "A5", file:= "tmaltern", other:= []),
rec(name:= "A6", file:= "tmaltern", other:= []),
rec(name:= "A7", file:= "tmaltern", other:= []),
rec(name:= "2.A7", file:= "tmaltern", other:= []),
rec(name:= "A8", file:= "tmaltern", other:= []),
rec(name:= "2.A8", file:= "tmaltern", other:= []),
rec(name:= "A9", file:= "tmaltern", other:= []),

rec(name:= "J1", file:= "tmsporad", other:= []),
rec(name:= "J2", file:= "tmsporad", other:= []),
rec(name:= "J3", file:= "tmsporad", other:= []),

rec(name:= "M11", file:= "tmsporad", other:= []),
rec(name:= "M12", file:= "tmsporad", other:= []),
rec(name:= "M12.2", file:= "tmsporad", other:= []),
rec(name:= "M22", file:= "tmsporad", other:= []),
rec(name:= "M22.2", file:= "tmsporad", other:= []),
rec(name:= "M23", file:= "tmsporad", other:= []),
rec(name:= "M24", file:= "tmmath24", other:= []),

rec(name:= "McL", file:= "tmsporad", other:= []),

rec(name:= "L2(7)", file:= "tmlinear", other:= []),
rec(name:= "L2(8)", file:= "tmlinear", other:= []),
rec(name:= "L2(11)", file:= "tmlinear", other:= []),
rec(name:= "L2(13)", file:= "tmlinear", other:= []),
rec(name:= "L2(17)", file:= "tmlinear", other:= []),
rec(name:= "L2(19)", file:= "tmlinear", other:= []),
rec(name:= "L2(16)", file:= "tmlinear", other:= []),
rec(name:= "L2(23)", file:= "tmlinear", other:= []),
rec(name:= "L2(25)", file:= "tmlinear", other:= []),
rec(name:= "L2(27)", file:= "tmlinear", other:= []),
rec(name:= "L2(29)", file:= "tmlinear", other:= []),
rec(name:= "L2(31)", file:= "tmlinear", other:= []),
rec(name:= "L2(37)", file:= "tmlinear", other:= []),
rec(name:= "L2(32)", file:= "tmlinear", other:= []),
rec(name:= "L2(41)", file:= "tmlinear", other:= []),
rec(name:= "L2(43)", file:= "tmlinear", other:= []),
rec(name:= "L2(47)", file:= "tmlinear", other:= []),
rec(name:= "L2(49)", file:= "tmlinear", other:= []),
rec(name:= "L2(53)", file:= "tmlinear", other:= []),
rec(name:= "L2(59)", file:= "tmlinear", other:= []),
rec(name:= "L2(61)", file:= "tmlinear", other:= []),
rec(name:= "L2(67)", file:= "tmlinear", other:= []),
rec(name:= "L2(71)", file:= "tmlinear", other:= []),
rec(name:= "L2(73)", file:= "tmlinear", other:= []),
rec(name:= "L2(79)", file:= "tmlinear", other:= []),
rec(name:= "L2(64)", file:= "tmlinear", other:= []),
rec(name:= "L2(81)", file:= "tmlinear", other:= []),
rec(name:= "L2(83)", file:= "tmlinear", other:= []),
rec(name:= "L2(89)", file:= "tmlinear", other:= []),
rec(name:= "L2(97)", file:= "tmlinear", other:= []),
rec(name:= "L2(101)", file:= "tmlinear", other:= []),
rec(name:= "L2(103)", file:= "tmlinear", other:= []),
rec(name:= "L2(107)", file:= "tmlinear", other:= []),
rec(name:= "L2(109)", file:= "tmlinear", other:= []),
rec(name:= "L2(113)", file:= "tmlinear", other:= []),
rec(name:= "L2(121)", file:= "tmlinear", other:= []),
rec(name:= "L2(125)", file:= "tmlinear", other:= []),

rec(name:= "L3(3)", file:= "tmlinear", other:= []),
rec(name:= "L3(4)", file:= "tmlinear", other:= []),
rec(name:= "L3(5)", file:= "tmlinear", other:= []),

rec(name:= "U3(3)", file:= "tmunitar", other:= []),
rec(name:= "U3(4)", file:= "tmunitar", other:= []),
rec(name:= "U3(5)", file:= "tmunitar", other:= []),

rec(name:= "U4(2)", file:= "tmunitar", other:= []),

rec(name:= "Sz(8)", file:= "tmsuzuki", other:= []),

rec(name:= "S4(4)", file:= "tmsymple", other:= []),

];

#############################################################################
##
#F  TomLibrary( <str> ) . . . . . . . . . . . . . .  return a Table of Marks.
##
##  'TomLibrary' tries  to recover a table of marks  with name <str> from the
##  library.  If no table of marks with that name is found  then 'false' will
##  be returned and a warning will be printed.  If a table with  this name is 
##  found then 'TomLibrary' will return a copy of that table.
##
TomLibrary := function(str)

   local i, tom;

   if IsBound(TOM.(str)) then
      tom:= Copy(TOM.(str));
   else
      for i in TOMLIST do
         if i.name = str or str in i.other then
            ReadTom( i.file );
            tom:=  Copy(TOM.(str));
         fi;
      od;
      if not IsBound(tom) then
         Print("#W  TableOfMarks: no table of marks ", str, " found.\n");       
         tom:= false;
      fi;
   fi;
      
   # some cosmetics.
   if tom <> false then
      tom.length:= tom.nrSubs[Length(tom.subs)];
   fi;

   return tom;

end;

