#I  file="lib/read2.g"

#F  file="lib/process.gd" crc=111138324
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/process.gd", 111138324 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/process.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/process.gd");
elif COM_RESULT = 3  then
Revision.process_gd:="@(#)$Id: process.gd,v 4.11 2002/04/15 10:05:13 sal Exp $";
UNBIND_GLOBAL("Process");
DeclareOperation("Process",[IsDirectory,IsString,IsInputStream,IsOutputStream,IsList]);
DeclareGlobalFunction("Exec");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/process.gd"

#F  file="lib/files.gi" crc=114612010
RANK_FILTER_LIST  := [ 67108760, 5, 59225310, 1, 59225310, 1, 21921733, 2, 
  21921733, 2, 59225310, 1, 67108760, 5, 8193, 2, 67108760, 5, 67108760, 5, 
  67108760, 5, 67108760, 5 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/files.gi", 114612010 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/files.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/files.gi");
elif COM_RESULT = 3  then
Revision.files_gi:="@(#)$Id: files.gi,v 4.20 2002/04/15 10:04:40 sal Exp $";
DeclareRepresentation("IsDirectoryRep",IsPositionalObjectRep,[]);
BindGlobal("DirectoryType",NewType(DirectoriesFamily,IsDirectory and IsDirectoryRep));
InstallGlobalFunction(USER_HOME_EXPAND,COM_FUN(1));
InstallMethod(Directory,"string",[IsString],COM_FUN(2));
InstallMethod(EQ,"for two directories",[IsDirectory,IsDirectory],COM_FUN(3));
InstallMethod(ViewObj,"default directory rep",[IsDirectoryRep],COM_FUN(4));
InstallMethod(PrintObj,"default directory rep",[IsDirectoryRep],COM_FUN(5));
InstallOtherMethod(Filename,"for a directory and a string",[IsDirectory,IsString],COM_FUN(6));
InstallMethod(Filename,"for a list and a string",[IsList,IsString],COM_FUN(7));
READ_INDENT:="";
InstallMethod(Read,"string",[IsString],COM_FUN(8));
InstallMethod(ReadTest,"string",[IsString],COM_FUN(9));
InstallMethod(ReadAsFunction,"string",[IsString],COM_FUN(10));
InstallGlobalFunction(Edit,COM_FUN(11));
InstallGlobalFunction(CreateCompletionFiles,COM_FUN(12));
InstallGlobalFunction(CheckCompletionFiles,COM_FUN(13));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/files.gi"

#F  file="lib/streams.gi" crc=-69614702
RANK_FILTER_LIST  := [ 30392544, 2, 30392420, 2, 27694750, 1, 65082601, 2, 
  65082601, 2, 17, 18, 65082601, 2, 4535903, 4, 1025, 1, 5, 1, 4535903, 4, 
  1025, 1, 4535903, 4, 5, 1, 4535903, 4, 65082601, 2, 1025, 1, 5, 1, 
  65082601, 2, 1025, 1, 65082601, 2, 5, 1, 65082601, 2, 65082601, 2, 
  65082601, 2, 65082601, 2, 63056322, 3, 34688416, 3, 67108760, 5, 34688416, 
  3, 67108760, 5, 34688416, 3, 67108760, 5, 50898648, 2, 8193, 2, 50898648, 
  2, 8193, 2, 67108760, 5, 22292939, 5, 22292939, 5, 26345497, 2, 22292939, 
  5, 22292939, 5, 17, 18, 22292939, 5, 22292939, 5, 22292939, 5, 22292939, 5, 
  17, 18, 67108760, 5, 41817186, 4, 41817186, 4, 39790907, 5, 43843465, 2, 
  39790907, 5, 39790907, 5, 39790907, 5, 39790907, 5, 17, 18, 39790907, 5, 
  17, 18, 12472934, 6, 12472934, 6, 20578050, 2, 12472934, 6, 12472934, 6, 
  17, 18, 12472934, 6, 12472934, 6, 12472934, 6, 12472934, 6, 17, 18, 8193, 
  2, 1025, 1, 41156099, 2, 8735635, 5, 8193, 2, 8735635, 5, 17, 18, 8735635, 
  5, 8735635, 5, 1025, 1, 8193, 2, 1025, 1, 8193, 2, 66102925, 4, 15204278, 
  2, 49892693, 5, 17, 18, 49892693, 5, 67108760, 5, 49892693, 5, 49892693, 5, 
  1025, 1, 30408555, 2, 32676506, 6, 8193, 2, 32676506, 6, 17, 18, 32676506, 
  6, 32676506, 6, 1025, 1, 65353971, 6, 65353971, 6, 65353971, 6, 65353971, 
  6, 65353971, 6, 65353971, 6, 17, 18, 65353971, 6, 17, 18, 65353971, 6, 
  67108760, 5, 65353971, 6, 65353971, 6, 39790907, 5, 49892693, 5, 65353971, 
  6 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/streams.gi", -69614702 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/streams.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/streams.gi");
elif COM_RESULT = 3  then
Revision.streams_gi:="@(#)$Id: streams.gi,v 4.43 2002/04/15 10:05:24 sal Exp $";
ClosedStreamType:=NewType(StreamsFamily,IsClosedStream);
InstallMethod(CloseStream,"non-process streams",true,[IsStream and IsComponentObjectRep],0,COM_FUN(1));
InstallMethod(CloseStream,"non-process streams",true,[IsStream and IsPositionalObjectRep],0,COM_FUN(2));
InstallMethod(PrintObj,"closed stream",true,[IsClosedStream],0,COM_FUN(3));
InstallMethod(ReadAll,"input stream",true,[IsInputStream],0,COM_FUN(4));
InstallMethod(ReadAll,"input stream, length limit",true,[IsInputStream,IsInt],0,COM_FUN(5));
InstallMethod(ReadLine,"generic, call ReadByte",[IsInputStream],COM_FUN(6));
InstallMethod(ReadAllLine,"iostream,boolean,function",[IsInputOutputStream,IsBool,IsFunction],COM_FUN(7));
InstallOtherMethod(ReadAllLine,"iostream,boolean",[IsInputOutputStream,IsBool],COM_FUN(8));
InstallOtherMethod(ReadAllLine,"iostream,function",[IsInputOutputStream,IsFunction],COM_FUN(9));
InstallOtherMethod(ReadAllLine,"iostream",[IsInputOutputStream],COM_FUN(10));
InstallMethod(ReadAllLine,"stream,boolean,function",[IsInputStream,IsBool,IsFunction],COM_FUN(11));
InstallOtherMethod(ReadAllLine,"stream,boolean",[IsInputStream,IsBool],COM_FUN(12));
InstallOtherMethod(ReadAllLine,"stream,function",[IsInputStream,IsFunction],COM_FUN(13));
InstallOtherMethod(ReadAllLine,"stream",[IsInputStream],ReadLine);
InstallOtherMethod(Read,"input stream",true,[IsInputStream],0,COM_FUN(14));
InstallOtherMethod(ReadTest,"input stream",true,[IsInputStream],0,READ_TEST_STREAM);
InstallOtherMethod(ReadAsFunction,"input stream",true,[IsInputStream],0,READ_AS_FUNC_STREAM);
InstallMethod(RewindStream,"input text stream",true,[IsInputTextStream],0,COM_FUN(15));
IN_LOGGING_MODE:=false;
Add(POST_RESTORE_FUNCS,COM_FUN(16));
InstallMethod(LogTo,"for output stream",true,[IsOutputTextStream],0,COM_FUN(17));
InstallOtherMethod(LogTo,"for output file",true,[IsString],0,COM_FUN(18));
InstallOtherMethod(LogTo,"close log",true,[],0,COM_FUN(19));
InstallMethod(InputLogTo,"for output stream",true,[IsOutputTextStream],0,COM_FUN(20));
InstallOtherMethod(InputLogTo,"for output file",true,[IsString],0,COM_FUN(21));
InstallOtherMethod(InputLogTo,"close log",true,[],0,COM_FUN(22));
InstallMethod(OutputLogTo,"for output stream",true,[IsOutputTextStream],0,COM_FUN(23));
InstallOtherMethod(OutputLogTo,"for output file",true,[IsString],0,COM_FUN(24));
InstallOtherMethod(OutputLogTo,"close log",true,[],0,COM_FUN(25));
InstallMethod(WriteAll,"output stream",true,[IsOutputStream,IsList],0,COM_FUN(26));
InstallMethod(WriteLine,"output stream",true,[IsOutputStream,IsList],0,COM_FUN(27));
InputTextStringType:=NewType(StreamsFamily,IsInputTextStream and IsInputTextStringRep);
InstallMethod(InputTextString,"input text stream from string",true,[IsString],0,COM_FUN(28));
InstallMethod(IsEndOfStream,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(29));
InstallMethod(PositionStream,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(30));
InstallMethod(PrintObj,"input text string",true,[IsInputTextStringRep],0,COM_FUN(31));
InstallMethod(ReadAll,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(32));
InstallMethod(ReadAll,"input text string and limit",true,[IsInputTextStream and IsInputTextStringRep,IsInt],0,COM_FUN(33));
InstallMethod(ReadByte,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(34));
InstallMethod(ReadLine,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(35));
InstallMethod(RewindStream,"input text string",true,[IsInputTextStream and IsInputTextStringRep],0,COM_FUN(36));
InstallMethod(SeekPositionStream,"input text string",true,[IsInputTextStream and IsInputTextStringRep,IsInt],0,COM_FUN(37));
DeclareRepresentation("IsInputTextFileRep",IsPositionalObjectRep,[]);
InputTextFileType:=NewType(StreamsFamily,IsInputTextStream and IsInputTextFileRep);
InputTextFileStillOpen:=[];
InstallMethod(InputTextFile,"input text stream from file",true,[IsString],0,COM_FUN(38));
InstallMethod(CloseStream,"input text file",true,[IsInputStream and IsInputTextFileRep],0,COM_FUN(39));
InstallAtExit(COM_FUN(40));
InstallMethod(IsEndOfStream,"input text file",true,[IsInputStream and IsInputTextFileRep],0,COM_FUN(41));
InstallMethod(PositionStream,"input text file",true,[IsInputTextStream and IsInputTextFileRep],0,COM_FUN(42));
InstallMethod(PrintObj,"input text file",true,[IsInputTextFileRep],0,COM_FUN(43));
InstallMethod(ReadByte,"input text file",true,[IsInputTextStream and IsInputTextFileRep],0,COM_FUN(44));
InstallMethod(ReadLine,"input text file",true,[IsInputTextStream and IsInputTextFileRep],0,COM_FUN(45));
InstallMethod(ReadAll,"input text file",true,[IsInputTextStream and IsInputTextFileRep],0,COM_FUN(46));
InstallMethod(ReadAll,"input text file and limit",true,[IsInputTextStream and IsInputTextFileRep,IsInt],0,COM_FUN(47));
InstallMethod(SeekPositionStream,"input text file",true,[IsInputTextStream and IsInputTextFileRep,IsInt],0,COM_FUN(48));
DeclareRepresentation("IsInputTextNoneRep",IsPositionalObjectRep,[]);
InputTextNoneType:=NewType(StreamsFamily,IsInputTextNone and IsInputTextNoneRep);
InstallGlobalFunction(InputTextNone,COM_FUN(49));
InstallMethod(IsEndOfStream,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,COM_FUN(50));
InstallMethod(PositionStream,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,COM_FUN(51));
InstallMethod(PrintObj,"input text none",true,[IsInputTextNoneRep],0,COM_FUN(52));
InstallMethod(ReadAll,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,COM_FUN(53));
InstallMethod(ReadAll,"input text none and limit",true,[IsInputTextNone and IsInputTextNoneRep,IsInt],0,COM_FUN(54));
InstallMethod(ReadByte,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,ReturnFail);
InstallMethod(ReadLine,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,ReturnFail);
InstallMethod(RewindStream,"input text none",true,[IsInputTextNone and IsInputTextNoneRep],0,RETURN_TRUE);
InstallMethod(SeekPositionStream,"input text none",true,[IsInputTextNone and IsInputTextNoneRep,IsInt],0,RETURN_TRUE);
DeclareRepresentation("IsOutputTextStringRep",IsPositionalObjectRep,["string","format"]);
OutputTextStringType:=NewType(StreamsFamily,IsOutputTextStream and IsOutputTextStringRep);
InstallMethod(OutputTextString,"output text stream from string",true,[IsList,IsBool],0,COM_FUN(55));
InstallMethod(PrintObj,"output text string",true,[IsOutputTextStringRep],0,COM_FUN(56));
InstallMethod(WriteAll,"output text string",true,[IsOutputTextStream and IsOutputTextStringRep,IsList],0,COM_FUN(57));
InstallMethod(WriteByte,"output text string",true,[IsOutputTextStream and IsOutputTextStringRep,IsInt],0,COM_FUN(58));
InstallMethod(PrintFormattingStatus,"output text string",true,[IsOutputTextStringRep and IsOutputTextStream],0,COM_FUN(59));
InstallMethod(SetPrintFormattingStatus,"output text string",true,[IsOutputTextStringRep and IsOutputTextStream,IsBool],0,COM_FUN(60));
DeclareRepresentation("IsOutputTextFileRep",IsPositionalObjectRep,["fid","fname","format"]);
OutputTextFileType:=NewType(StreamsFamily,IsOutputTextStream and IsOutputTextFileRep);
OutputTextFileStillOpen:=[];
InstallMethod(OutputTextFile,"output text stream from file",true,[IsList,IsBool],0,COM_FUN(61));
InstallOtherMethod(OutputTextFile,"error catching method, append not given",true,[IsList],-SUM_FLAGS,COM_FUN(62));
InstallMethod(CloseStream,"output text file",true,[IsOutputStream and IsOutputTextFileRep],0,COM_FUN(63));
InstallAtExit(COM_FUN(64));
InstallMethod(PrintObj,"output text file",true,[IsOutputTextFileRep],0,COM_FUN(65));
InstallMethod(WriteByte,"output text file",true,[IsOutputTextStream and IsOutputTextFileRep,IsInt],0,COM_FUN(66));
InstallMethod(WriteAll,"output text file",true,[IsOutputTextStream and IsOutputTextFileRep,IsString],0,COM_FUN(67));
InstallMethod(PrintFormattingStatus,"output text file",true,[IsOutputTextFileRep and IsOutputTextStream],0,COM_FUN(68));
InstallMethod(SetPrintFormattingStatus,"output text file",true,[IsOutputTextFileRep and IsOutputTextStream,IsBool],0,COM_FUN(69));
DeclareRepresentation("IsOutputTextNoneRep",IsPositionalObjectRep,[]);
OutputTextNoneType:=NewType(StreamsFamily,IsOutputTextNone and IsOutputTextNoneRep);
InstallGlobalFunction(OutputTextNone,COM_FUN(70));
InstallMethod(PrintObj,"output text none",true,[IsOutputTextNoneRep],0,COM_FUN(71));
InstallMethod(WriteAll,"output text none",true,[IsOutputTextNone and IsOutputTextNoneRep,IsList],0,COM_FUN(72));
InstallMethod(WriteByte,"output text none",true,[IsOutputTextNone and IsOutputTextNoneRep,IsInt],0,COM_FUN(73));
InstallMethod(PrintFormattingStatus,"output text none",true,[IsOutputTextNoneRep and IsOutputTextNone],0,ReturnFalse);
InstallMethod(SetPrintFormattingStatus,"output text none",true,[IsOutputTextNoneRep and IsOutputTextNone,IsBool],0,COM_FUN(74));
InstallGlobalFunction(InputTextUser,COM_FUN(75));
InstallGlobalFunction(OutputTextUser,COM_FUN(76));
DeclareRepresentation("IsInputOutputStreamByPtyRep",IsPositionalObjectRep,[]);
InputOutputStreamByPtyDefaultType:=NewType(StreamsFamily,IsInputOutputStreamByPtyRep and IsInputOutputStream);
InstallGlobalFunction(InputOutputLocalProcess,COM_FUN(77));
InstallMethod(ViewObj,[IsInputOutputStreamByPtyRep and IsInputOutputStream,],COM_FUN(78));
InstallMethod(PrintObj,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(79));
InstallMethod(ReadByte,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(80));
InstallMethod(ReadLine,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(81));
BindGlobal("ReadAllIoStreamByPty",COM_FUN(82));
InstallMethod(ReadAll,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(83));
InstallMethod(ReadAll,[IsInputOutputStreamByPtyRep and IsInputOutputStream,IsInt],COM_FUN(84));
InstallMethod(WriteByte,[IsInputOutputStreamByPtyRep and IsInputOutputStream,IsInt],COM_FUN(85));
InstallMethod(WriteAll,[IsInputOutputStreamByPtyRep and IsInputOutputStream,IsString],COM_FUN(86));
InstallMethod(IsEndOfStream,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(87));
InstallMethod(CloseStream,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(88));
InstallMethod(FileDescriptorOfStream,[IsInputTextStream and IsInputTextFileRep],COM_FUN(89));
InstallMethod(FileDescriptorOfStream,[IsOutputTextStream and IsOutputTextFileRep],COM_FUN(90));
InstallMethod(FileDescriptorOfStream,[IsInputOutputStreamByPtyRep and IsInputOutputStream],COM_FUN(91));
InstallValue(OnCharReadHookInFuncs,[]);
InstallValue(OnCharReadHookInFds,[]);
InstallValue(OnCharReadHookInStreams,[]);
InstallValue(OnCharReadHookOutFuncs,[]);
InstallValue(OnCharReadHookOutFds,[]);
InstallValue(OnCharReadHookOutStreams,[]);
InstallValue(OnCharReadHookExcFuncs,[]);
InstallValue(OnCharReadHookExcFds,[]);
InstallValue(OnCharReadHookExcStreams,[]);
OnCharReadHookActive:=false;
InstallGlobalFunction("InstallCharReadHookFunc",COM_FUN(92));
InstallGlobalFunction("UnInstallCharReadHookFunc",COM_FUN(93));
Unbind(OnCharReadHookActive);
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/streams.gi"

#F  file="lib/process.gi" crc=119884473
RANK_FILTER_LIST  := [ 14038163, 3, 67108760, 5, 59003764, 4, 2267952, 4, 
  8193, 2, 14038163, 3, 67108760, 5, 39790907, 5, 2267952, 4, 8193, 2, 
  14038163, 3, 67108760, 5, 59003764, 4, 49892693, 5, 8193, 2, 14038163, 3, 
  67108760, 5, 39790907, 5, 49892693, 5, 8193, 2, 14038163, 3, 67108760, 5, 
  63056322, 3, 34688416, 3, 8193, 2 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/process.gi", 119884473 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/process.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/process.gi");
elif COM_RESULT = 3  then
Revision.process_gi:="@(#)$Id: process.gi,v 4.12.2.1 2002/05/12 20:13:04 sal Exp $";
InstallMethod(Process,[IsDirectory and IsDirectoryRep,IsString,IsInputTextNone,IsOutputTextNone,IsList],COM_FUN(1));
InstallMethod(Process,[IsDirectory and IsDirectoryRep,IsString,IsInputTextStream and IsInputTextFileRep,IsOutputTextNone,IsList],COM_FUN(2));
InstallMethod(Process,[IsDirectory and IsDirectoryRep,IsString,IsInputTextNone,IsOutputTextStream and IsOutputTextFileRep,IsList],COM_FUN(3));
EXECUTE_PROCESS_FILE_STREAM:=COM_FUN(4);
InstallMethod(Process,[IsDirectory and IsDirectoryRep,IsString,IsInputTextStream and IsInputTextFileRep,IsOutputTextStream and IsOutputTextFileRep,IsList],EXECUTE_PROCESS_FILE_STREAM);
PROCESS_INPUT_TEMPORARY:=fail;
PROCESS_OUTPUT_TEMPORARY:=fail;
InstallMethod(Process,[IsDirectory and IsDirectoryRep,IsString,IsInputTextStream,IsOutputTextStream,IsList],COM_FUN(5));
InstallGlobalFunction(Exec,COM_FUN(6));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/process.gi"

#F  file="lib/combinat.gd" crc=-103643160
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/combinat.gd", -103643160 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/combinat.gd\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/combinat.gd");
elif COM_RESULT = 3  then
Revision.combinat_gd:="@(#)$Id: combinat.gd,v 4.12 2002/04/15 10:04:30 sal Exp $";
DeclareGlobalFunction("Factorial");
DeclareGlobalFunction("Binomial");
DeclareGlobalFunction("Bell");
DeclareGlobalFunction("Stirling1");
DeclareGlobalFunction("Stirling2");
DeclareGlobalFunction("Combinations");
DeclareGlobalFunction("NrCombinations");
DeclareGlobalFunction("Arrangements");
DeclareGlobalFunction("NrArrangements");
DeclareGlobalFunction("UnorderedTuples");
DeclareGlobalFunction("NrUnorderedTuples");
DeclareGlobalFunction("Tuples");
DeclareGlobalFunction("NrTuples");
DeclareGlobalFunction("PermutationsList");
DeclareGlobalFunction("NrPermutationsList");
DeclareGlobalFunction("Derangements");
DeclareGlobalFunction("NrDerangements");
DeclareGlobalFunction("PartitionsSet");
DeclareGlobalFunction("NrPartitionsSet");
DeclareGlobalFunction("PartitionsRecursively");
DeclareGlobalFunction("Partitions");
DeclareGlobalFunction("NrPartitions");
DeclareGlobalFunction("PartitionsGreatestLE");
DeclareGlobalFunction("PartitionsGreatestEQ");
DeclareGlobalFunction("OrderedPartitions");
DeclareGlobalFunction("NrOrderedPartitions");
DeclareGlobalFunction("RestrictedPartitions");
DeclareGlobalFunction("NrRestrictedPartitions");
DeclareGlobalFunction("SignPartition");
DeclareGlobalFunction("AssociatedPartition");
DeclareGlobalFunction("PowerPartition");
DeclareGlobalFunction("PartitionTuples");
DeclareGlobalFunction("NrPartitionTuples");
DeclareGlobalFunction("Lucas");
DeclareGlobalFunction("Fibonacci");
DeclareGlobalFunction("Bernoulli");
DeclareGlobalFunction("Permanent");
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/combinat.gd"

#F  file="lib/combinat.gi" crc=-42349998
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/combinat.gi", -42349998 );
if COM_RESULT = fail  then
Error("cannot locate file \"lib/combinat.gi\"");
elif COM_RESULT = 1  then
;
elif COM_RESULT = 2  then
;
elif COM_RESULT = 4  then
READ_CHANGED_GAP_ROOT("lib/combinat.gi");
elif COM_RESULT = 3  then
Revision.combinat_gi:="@(#)$Id: combinat.gi,v 4.13 2002/04/15 10:04:30 sal Exp $";
InstallGlobalFunction(Factorial,COM_FUN(1));
InstallGlobalFunction(Binomial,COM_FUN(2));
InstallGlobalFunction(Bell,COM_FUN(3));
InstallGlobalFunction(Stirling1,COM_FUN(4));
InstallGlobalFunction(Stirling2,COM_FUN(5));
CombinationsA:=COM_FUN(6);
CombinationsK:=COM_FUN(7);
InstallGlobalFunction(Combinations,COM_FUN(8));
NrCombinationsX:=COM_FUN(9);
NrCombinationsSetA:=COM_FUN(10);
NrCombinationsMSetA:=COM_FUN(11);
NrCombinationsSetK:=COM_FUN(12);
NrCombinationsMSetK:=COM_FUN(13);
InstallGlobalFunction(NrCombinations,COM_FUN(14));
ArrangementsA:=COM_FUN(15);
ArrangementsK:=COM_FUN(16);
InstallGlobalFunction(Arrangements,COM_FUN(17));
NrArrangementsX:=COM_FUN(18);
NrArrangementsSetA:=COM_FUN(19);
NrArrangementsMSetA:=COM_FUN(20);
NrArrangementsSetK:=COM_FUN(21);
NrArrangementsMSetK:=COM_FUN(22);
InstallGlobalFunction(NrArrangements,COM_FUN(23));
UnorderedTuplesK:=COM_FUN(24);
InstallGlobalFunction(UnorderedTuples,COM_FUN(25));
InstallGlobalFunction(NrUnorderedTuples,COM_FUN(26));
TuplesK:=COM_FUN(27);
InstallGlobalFunction(Tuples,COM_FUN(28));
InstallGlobalFunction(NrTuples,COM_FUN(29));
PermutationsListK:=COM_FUN(30);
InstallGlobalFunction(PermutationsList,COM_FUN(31));
InstallGlobalFunction(NrPermutationsList,COM_FUN(32));
DerangementsK:=COM_FUN(33);
InstallGlobalFunction(Derangements,COM_FUN(34));
NrDerangementsK:=COM_FUN(35);
InstallGlobalFunction(NrDerangements,COM_FUN(36));
Permanent2:=COM_FUN(37);
InstallGlobalFunction(Permanent,COM_FUN(38));
PartitionsSetA:=COM_FUN(39);
PartitionsSetK:=COM_FUN(40);
InstallGlobalFunction(PartitionsSet,COM_FUN(41));
InstallGlobalFunction(NrPartitionsSet,COM_FUN(42));
PartitionsA:=COM_FUN(43);
PartitionsK:=COM_FUN(44);
InstallGlobalFunction(PartitionsRecursively,COM_FUN(45));
GPartitionsEasy:=COM_FUN(46);
GPartitions:=COM_FUN(47);
GPartitionsNrPartsHelper:=COM_FUN(48);
GPartitionsNrParts:=COM_FUN(49);
InstallGlobalFunction(Partitions,COM_FUN(50));
InstallGlobalFunction(NrPartitions,COM_FUN(51));
GPartitionsGreatestLEEasy:=COM_FUN(52);
GPartitionsGreatestLE:=COM_FUN(53);
InstallGlobalFunction(PartitionsGreatestLE,COM_FUN(54));
GPartitionsGreatestEQHelper:=COM_FUN(55);
GPartitionsGreatestEQ:=COM_FUN(56);
InstallGlobalFunction(PartitionsGreatestEQ,COM_FUN(57));
OrderedPartitionsA:=COM_FUN(58);
OrderedPartitionsK:=COM_FUN(59);
InstallGlobalFunction(OrderedPartitions,COM_FUN(60));
InstallGlobalFunction(NrOrderedPartitions,COM_FUN(61));
RestrictedPartitionsA:=COM_FUN(62);
RestrictedPartitionsK:=COM_FUN(63);
InstallGlobalFunction(RestrictedPartitions,COM_FUN(64));
NrRestrictedPartitionsK:=COM_FUN(65);
InstallGlobalFunction(NrRestrictedPartitions,COM_FUN(66));
InstallGlobalFunction(SignPartition,COM_FUN(67));
InstallGlobalFunction(AssociatedPartition,COM_FUN(68));
InstallGlobalFunction(PowerPartition,COM_FUN(69));
InstallGlobalFunction(PartitionTuples,COM_FUN(70));
InstallGlobalFunction(NrPartitionTuples,COM_FUN(71));
InstallGlobalFunction(Lucas,COM_FUN(72));
InstallGlobalFunction(Fibonacci,COM_FUN(73));
Bernoulli2:=[-1/2,1/6,0,-1/30,0,1/42,0,-1/30,0,5/66,0,-691/2730,0,7/6];
InstallGlobalFunction(Bernoulli,COM_FUN(74));
else
Error("unknown result code ", COM_RESULT );
fi;

#U  unbind temporary variables
Unbind(RANK_FILTER_LIST);
Unbind(RANK_FILTER_COUNT);
Unbind(COM_RESULT);
#E  file="lib/combinat.gi"

