#I  file="lib/read2.g"

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

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/process.gd", -89289350 );
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.13 2003/03/04 08:33:22 gap 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=106213251
RANK_FILTER_LIST  := [ 67108760, 5, 50898648, 1, 50898648, 1, 41942756, 2, 
  41942756, 2, 50898648, 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", 106213251 );
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.26 2003/11/06 09:57:08 gap 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));
InstallGlobalFunction(DirectoryContents,COM_FUN(8));
READ_INDENT:="";
InstallMethod(Read,"string",[IsString],COM_FUN(9));
InstallMethod(ReadTest,"string",[IsString],COM_FUN(10));
InstallMethod(ReadAsFunction,"string",[IsString],COM_FUN(11));
InstallGlobalFunction(Edit,COM_FUN(12));
InstallGlobalFunction(CreateCompletionFiles,COM_FUN(13));
InstallGlobalFunction(CheckCompletionFiles,COM_FUN(14));
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  := [ 4536151, 2, 4536027, 2, 2267952, 1, 9072765, 2, 
  9072765, 2, 17, 18, 9072765, 2, 43843465, 4, 1025, 1, 5, 1, 43843465, 4, 
  1025, 1, 43843465, 4, 5, 1, 43843465, 4, 9072765, 2, 1025, 1, 5, 1, 
  9072765, 2, 1025, 1, 9072765, 2, 5, 1, 9072765, 2, 9072765, 2, 9072765, 2, 
  9072765, 2, 18146489, 3, 10960867, 3, 67108760, 5, 10960867, 3, 67108760, 
  5, 10960867, 3, 67108760, 5, 5479954, 2, 8193, 2, 5479954, 2, 8193, 2, 
  67108760, 5, 52835864, 5, 52835864, 5, 34688416, 2, 52835864, 5, 52835864, 
  5, 17, 18, 52835864, 5, 52835864, 5, 52835864, 5, 52835864, 5, 17, 18, 
  67108760, 5, 25850356, 4, 25850356, 4, 34924080, 5, 16776632, 2, 34924080, 
  5, 34924080, 5, 34924080, 5, 34924080, 5, 17, 18, 34924080, 5, 17, 18, 
  2739280, 6, 2739280, 6, 33554223, 2, 2739280, 6, 2739280, 6, 17, 18, 
  2739280, 6, 2739280, 6, 2739280, 6, 2739280, 6, 17, 18, 8193, 2, 1025, 1, 
  67108445, 2, 10960432, 5, 8193, 2, 10960432, 5, 17, 18, 10960432, 5, 
  10960432, 5, 1025, 1, 8193, 2, 1025, 1, 8193, 2, 5480044, 4, 67108010, 2, 
  10959997, 5, 17, 18, 10959997, 5, 67108760, 5, 10959997, 5, 10959997, 5, 
  1025, 1, 67108100, 2, 21920953, 6, 8193, 2, 21920953, 6, 17, 18, 21920953, 
  6, 21920953, 6, 1025, 1, 7127811, 6, 7127811, 6, 7127811, 6, 7127811, 6, 
  7127811, 6, 7127811, 6, 17, 18, 7127811, 6, 17, 18, 7127811, 6, 67108760, 
  5, 7127811, 6, 7127811, 6, 34924080, 5, 10959997, 5, 7127811, 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=-114688533
RANK_FILTER_LIST  := [ 25732524, 3, 67108760, 5, 36293937, 4, 21921733, 4, 
  8193, 2, 25732524, 3, 67108760, 5, 34924080, 5, 21921733, 4, 8193, 2, 
  25732524, 3, 67108760, 5, 36293937, 4, 10959997, 5, 8193, 2, 25732524, 3, 
  67108760, 5, 34924080, 5, 10959997, 5, 8193, 2, 25732524, 3, 67108760, 5, 
  18146489, 3, 10960867, 3, 8193, 2 ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/process.gi", -114688533 );
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.15.2.1 2004/04/27 19:23:09 gap 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=29520648
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/combinat.gd", 29520648 );
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.13 2003/03/10 08:14:19 gap 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("EnumeratorOfTuples");
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=119544282
RANK_FILTER_LIST  := [  ];
RANK_FILTER_COUNT := 1;

#C  load module, file, or complete
COM_RESULT := COM_FILE( "lib/combinat.gi", 119544282 );
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.19.2.1 2004/05/05 14:57:20 gap 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);
MakeReadOnlyGlobal("CombinationsA");
CombinationsK:=COM_FUN(7);
MakeReadOnlyGlobal("CombinationsK");
InstallGlobalFunction(Combinations,COM_FUN(8));
BindGlobal("NrCombinationsX",COM_FUN(9));
BindGlobal("NrCombinationsSetA",COM_FUN(10));
BindGlobal("NrCombinationsMSetA",COM_FUN(11));
BindGlobal("NrCombinationsSetK",COM_FUN(12));
BindGlobal("NrCombinationsMSetK",COM_FUN(13));
InstallGlobalFunction(NrCombinations,COM_FUN(14));
ArrangementsA:=COM_FUN(15);
MakeReadOnlyGlobal("ArrangementsA");
ArrangementsK:=COM_FUN(16);
MakeReadOnlyGlobal("ArrangementsK");
InstallGlobalFunction(Arrangements,COM_FUN(17));
BindGlobal("NrArrangementsX",COM_FUN(18));
BindGlobal("NrArrangementsSetA",COM_FUN(19));
BindGlobal("NrArrangementsMSetA",COM_FUN(20));
BindGlobal("NrArrangementsSetK",COM_FUN(21));
BindGlobal("NrArrangementsMSetK",COM_FUN(22));
InstallGlobalFunction(NrArrangements,COM_FUN(23));
UnorderedTuplesK:=COM_FUN(24);
MakeReadOnlyGlobal("UnorderedTuplesK");
InstallGlobalFunction(UnorderedTuples,COM_FUN(25));
InstallGlobalFunction(NrUnorderedTuples,COM_FUN(26));
TuplesK:=COM_FUN(27);
MakeReadOnlyGlobal("TuplesK");
InstallGlobalFunction(Tuples,COM_FUN(28));
InstallGlobalFunction(EnumeratorOfTuples,COM_FUN(29));
InstallGlobalFunction(NrTuples,COM_FUN(30));
PermutationsListK:=COM_FUN(31);
MakeReadOnlyGlobal("PermutationsListK");
InstallGlobalFunction(PermutationsList,COM_FUN(32));
InstallGlobalFunction(NrPermutationsList,COM_FUN(33));
DerangementsK:=COM_FUN(34);
MakeReadOnlyGlobal("DerangementsK");
InstallGlobalFunction(Derangements,COM_FUN(35));
NrDerangementsK:=COM_FUN(36);
MakeReadOnlyGlobal("NrDerangementsK");
InstallGlobalFunction(NrDerangements,COM_FUN(37));
Permanent2:=COM_FUN(38);
MakeReadOnlyGlobal("Permanent2");
InstallGlobalFunction(Permanent,COM_FUN(39));
PartitionsSetA:=COM_FUN(40);
MakeReadOnlyGlobal("PartitionsSetA");
PartitionsSetK:=COM_FUN(41);
MakeReadOnlyGlobal("PartitionsSetK");
InstallGlobalFunction(PartitionsSet,COM_FUN(42));
InstallGlobalFunction(NrPartitionsSet,COM_FUN(43));
PartitionsA:=COM_FUN(44);
MakeReadOnlyGlobal("PartitionsA");
PartitionsK:=COM_FUN(45);
MakeReadOnlyGlobal("PartitionsK");
InstallGlobalFunction(PartitionsRecursively,COM_FUN(46));
BindGlobal("GPartitionsEasy",COM_FUN(47));
BindGlobal("GPartitions",COM_FUN(48));
BindGlobal("GPartitionsNrPartsHelper",COM_FUN(49));
BindGlobal("GPartitionsNrParts",COM_FUN(50));
InstallGlobalFunction(Partitions,COM_FUN(51));
InstallGlobalFunction(NrPartitions,COM_FUN(52));
BindGlobal("GPartitionsGreatestLEEasy",COM_FUN(53));
BindGlobal("GPartitionsGreatestLE",COM_FUN(54));
InstallGlobalFunction(PartitionsGreatestLE,COM_FUN(55));
BindGlobal("GPartitionsGreatestEQHelper",COM_FUN(56));
BindGlobal("GPartitionsGreatestEQ",COM_FUN(57));
InstallGlobalFunction(PartitionsGreatestEQ,COM_FUN(58));
OrderedPartitionsA:=COM_FUN(59);
MakeReadOnlyGlobal("OrderedPartitionsA");
OrderedPartitionsK:=COM_FUN(60);
MakeReadOnlyGlobal("OrderedPartitionsK");
InstallGlobalFunction(OrderedPartitions,COM_FUN(61));
InstallGlobalFunction(NrOrderedPartitions,COM_FUN(62));
RestrictedPartitionsA:=COM_FUN(63);
MakeReadOnlyGlobal("RestrictedPartitionsA");
RestrictedPartitionsK:=COM_FUN(64);
MakeReadOnlyGlobal("RestrictedPartitionsK");
InstallGlobalFunction(RestrictedPartitions,COM_FUN(65));
NrRestrictedPartitionsK:=COM_FUN(66);
MakeReadOnlyGlobal("NrRestrictedPartitionsK");
InstallGlobalFunction(NrRestrictedPartitions,COM_FUN(67));
InstallGlobalFunction(SignPartition,COM_FUN(68));
InstallGlobalFunction(AssociatedPartition,COM_FUN(69));
InstallGlobalFunction(PowerPartition,COM_FUN(70));
InstallGlobalFunction(PartitionTuples,COM_FUN(71));
InstallGlobalFunction(NrPartitionTuples,COM_FUN(72));
InstallGlobalFunction(Lucas,COM_FUN(73));
InstallGlobalFunction(Fibonacci,COM_FUN(74));
BindGlobal("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(75));
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"

