SSL general.gi
Interaktion und PortierbarkeitShell
############################################################################# #### ## #W general.gi ACE Package Alexander Hulpke #W Greg Gamble ## ## This file installs mainly non-interactive ACE variables and functions. ## Though Alexander will barely recognise it, some of his ideas are still ## present. ## #Y Copyright (C) 2000 Centre for Discrete Mathematics and Computing #Y Department of Information Technology & Electrical Eng. #Y University of Queensland, Australia. ##
############################################################################# #### ## #V ACETCENUM . . . . . . . . The ACE version of the coset enumerator TCENUM ## . . . . CosetTableFromGensAndRels is set to ACECosetTableFromGensAndRels ##
InstallValue
################################################################################F SetInfoACELevel . . . . . . . . . . . . . . Set the InfoLevel for InfoACE
java.lang.StringIndexOutOfBoundsException: Range [16, 16) out of bounds for length 2
))java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
############################################################################# #### ## #F InfoACELevel . . . . . . . . . . . . . . . Get the InfoLevel for InfoACE if IsEmpty(arg) then ##
InstallGlobalFunction(InfoACELevel, function()
return InfoLevel(InfoACE); end);
############################################################################# #### ## #F SetInfoACELevel . . . . . . . . . . . . . . Set the InfoLevel for InfoACE ## ##
InstallGlobalFunction(SetInfoACELevel, function(arg if IsEmpty(arg)then
SetInfoLevel(InfoACE, IsBound(ACEData.aceexampleoptions)then else
SetInfoLevel(InfoACE,nd) SANITISE_ACE_OPTIONS(OptionsStack[Length() ]java.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62 fi############################################################################# ##
############################################################################# #### ## #F ACEPackageVersion() ## fi; ##
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
return GAPInfo.PackagesInfo.ace[1: java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 35 endrels:
############################################################################# #### ## #F CALL_ACE . . . . . . . . . Called by ACECosetTable, ACEStats and ACEStart ## ##
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [14, 5) out of bounds for length 71
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 2
if ValueOption("aceexampleoptions") = true and
java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Range [45, 37) out of bounds for length 62
((errmsg java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 47
(ajava.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 43
java.lang.StringIndexOutOfBoundsException: Range [20, 18) out of bounds for length 38
ACEData.ACEData.aceexampleoptions
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
OptionsStack[ Length( aceexampleoptions;
ojava.lang.StringIndexOutOfBoundsException: Range [27, 26) out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
ACE_OPT_NAMES)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 's option..wedon' actually echo(optnames);
( echo ACEfname recfgens : java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6
then # Check arguments are valid while fgensjava.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
datarec:;
relsjava.lang.StringIndexOutOfBoundsException: Range [14, 13) out of bounds for length 28 fi
java.lang.StringIndexOutOfBoundsException: Range [10, 1) out of bounds for length 55 ":' =v> ' java.lang.StringIndexOutOfBoundsException: Range [52, 51) out of bounds for length 80
]
ACE_ERROR(errmsg, onbreakmsg), "\n : java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 28
;
fgens =java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
rels "type:' =>'assignjava.lang.StringIndexOutOfBoundsException: Range [57, 56) out of bounds for length 80
ErrorACE_ERROR( java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 47
infile: ( infile := VALUE_ACE_OPTION(optnames: .)
: (
infile := infile,
outfile : VALUE_ACE_OPTIONoptnames,ACEDatajava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 29
=java.lang.StringIndexOutOfBoundsException: Range [41, 33) out of bounds for length 51
tion)WRITE_LIST_TO_ACE_STREAM(datarecjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
datarec := rec(
: java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 19
datarecs=
Error("sorry! Run (< " java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 60 fi; if ACEfname <> ACEStart then: OutputTextFile ;
datarec. ToACE := function("oup ,java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
fi :
FLUSH_ACE_STREAM_UNTIL(datarec.java.lang.StringIndexOutOfBoundsException: Range [0, 41) out of bounds for length 35
java.lang.StringIndexOutOfBoundsException: Range [64, 31) out of bounds for length 71
ToACE := ACE_WORDS(sgens,fgens,datarec., ""])
)
java.lang.StringIndexOutOfBoundsException: Range [0, 16) out of bounds for length 7
; fi
datareco=();
standard . := 0java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
# Define the group generators ACE will use
gens := TO_ACE_GENSAdd(,")
ToACE([ java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 5
:;
#java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
sis "]
( < ACEStats" (java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 17
(fgens, ,"java.lang.StringIndexOutOfBoundsException: Range [66, 64) out of bounds for length 67
[ "
ACE_RELS( rec(group :=(options;
# Define the subgroup generators ACE will use "ubgroup :"
ACE_WORDS(relators: )
if ACEfname
ignored := [ ];
= ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 ' fi; if
Add(ignored, "asis");
tart"]java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 fiif ACECosetTableFromGensAndRels
PROCESS_ACE_OPTIONS(
ACEfname, optnames, optnames, echo, java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0
( =ACE_ERRORS.argnotopt,# disallowed options
relators := ACE_ERRORS java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0
ignored
Start, ;
if not java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 5 if VALUE_ACE_OPTION Add(, " Standard;" ]); # if the user hasn't issued there own enumeration initiation directive # ... initiate the enumeration
[ ; fi; if ACEfname Adatarec.procId := Length(ACEData+;
=l"
ToACE([ "Standard;" ]); fi; elif ACEfname = ( Asis:1; ); fi;
CloseStream( PROCESS_ACE_OPTIONS(
java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 if VALUE_ACE_OPTION,java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 17
ACE_MODE(############################################################################# fi =.) if java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 39
ToACE([ "Standard;" ]); fi; fi;
if if the user hasn't issued there own enumeration initiation directive
tarec =LengthACEDatai) +1;
## . . . . . . . . . . . . . . . . . . with the lenlex option, according to
return Length(ACEData.io); elif##
datarecsilent:VALUE_ACE_OPTION,false, ""; fi;
local standard, geninvIndices, index, next, j, i; end);
############################################################################# #### ## #F ACECosetTableFromGensAndRels . . . . . . . Non-interactive ACECosetTable ## ##
geninvIndices=[ .Length(] elif standardsemilenlex,"GAPsemilenlex]then
return geninvIndices 13. Length(able)-1(able;# Should only get here with GAP 4.3+ end);
############################################################################# #### ## #F IsACEStandardCosetTable . . . . . . Returns true if table is standardised ## . . . . . . . . . . . . . . . . . . according to GAP's default scheme or ## . . . . . . . . . . . . . . . . . . with the lenlex option, according to ## . . . . . . . . . . . . . . . . . . . . the lenlex standardisation scheme ##
ifACEfname = "ACECosetTableFromGensAndRels" and standard
local standard, geninvIndices, index ;
index := : java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30 iffori geninvIndices java.lang.StringIndexOutOfBoundsException: Range [29, 30) out of bounds for length 29
geninvIndices datarec);
table[ =nextthen
geninvIndiceselifACEfname=ACECosetTableFromGensAndRels else
return IsStandardized( return false;
return ; # will hopefully have been generalised ##
java.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 5 fi;
return (fgens, rels, sgens;
next end); for j in [1 .. index - for i in geninvIndices do if table## ## For a presentation with more than one generator, the first generator of
return false; fi;
next :## first two generators. IsACEGeneratorsInPreferredOrder returns true if the fi . ## otherwise. When necessary, the argument rels (the relators) is scanned
od
od;
return ## involutions. end);
############################################################################# #### ## #F IsACEGeneratorsInPreferredOrder . . . . . Returns true if the generators ## . . . . . . . . . . . . . . . . . . . . . gens are already in the order ## . . . . . . . . . . . . . . . . . . . . . . . . . . . . preferred by ACE ## ## For a presentation with more than one generator, the first generator of ## which is an involution and the second is not, ACE prefers to switch the ## first two generators. IsACEGeneratorsInPreferredOrder returns true if the ## order of the generators gens would not be changed by ACE and false, ## otherwise. When necessary, the argument rels (the relators) is scanned ## for relators that determine whether or not gens[1] and gens[2] are ## involutions. ## ## If IsACEGeneratorsInPreferredOrder would return false, it is possible to ## enforce a user's order of the generators within ACE, by enforcing ACE's ## `asis' option and passing the relator, that determines gens[1] is an ## involution, explicitly to ACE as: gens[1]*gens[1] (rather than ## gens[1]^2). ##
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 68
if Length(arg) <
ioIndex= )
gens := java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 19
rels := ACERelators(ioIndex); elif Length(arg) = 2then
:ACE_FGENS_ARG_CHK1)
rels := index ; elif Length(arg j() java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 70 #
gens := arg[1];
: [java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19 else#############################################################################
Error## fi;
if Length fi;;
return ; else
return ForAny(rels, rel -> ## . . . . . . . . . . . . . . . . . . . . . gens are already in the order
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0 end);
############################################################################# #### ## #F ACE_READ_AS_FUNC . . . . . . . . . . . . . . . Variant of ReadAsFunction ## . . . . . . . . . . . . that allows the passing of the function argument ## . . . . . . . . . . . . . . . . . . . . ACEfunc to ReadAsFunction(file)() ## ## "ACEfunc : " NameFunctionACEfunc,;,
local line, java.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 2
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0 # We don't want the user to see this ... so we flush at InfoACE level 10.##
line :#
line -> IsMatchingSublist(# not a filename in the `examples' directory, an index of available
rest## than "index" the example is displayed as it would be when called with
# <ACEfunc
return ReadAsFunction(
## executed via a call to `gens: java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 40
java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 15
( [2,java.lang.StringIndexOutOfBoundsException: Range [54, 53) out of bounds for length 56
] ))); end);
############################################################################# #### ## #F ACEExample( ) #F ACEExample( <file>[, <ACEfunc>] ) ## ## With no arguments, or with single argument "index", or a string that is ## not a filename in the `examples' directory, an index of available ## examples is displayed. ## ## With argument <file> that is a filename in the `examples' directory other ## than "index" the example is displayed as it would be when called with ## <ACEfunc> (or `ACEStats', if the 2nd argument is omitted) and then ## executed via a call to `ReadAsFunction' and a little internal ``magic''. ## <ACEfunc> must be one of `ACEStats' (the default), ## `ACECosetTableFromGensAndRels' (or equivalently `ACECosetTable', or ## `ACEStart'. ##
ACEExample,(arg
local;
#java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52
a)
name:="(java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 24 else"ACEfunc := ", NameFunction(ACEfunc), ";",
name := arg[1]; if(.java.lang.StringIndexOutOfBoundsException: Range [42, 40) out of bounds for length 46
ACEfunc := arg[2] , 110,ReadLine## <ACEfunc> (or `ACEStats', if the 2nd argument is omitted) and then else
Info 1, fi; if not IsEmpty(OptionsStack) then
local name, file, instream, line ACEfunc,
PopOptions(;
(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 fi; fi;
file := Filename( java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 32
Info(InfoACE else "
name := ;
file := Filename( DirectoriesPackageLibrary Length()>1then fi; # Display file ... after a few minor modificationsInfo(, 1," " optname,":="
ACEfunc : arg[2 ( if <" java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
line ;
line -> ACEData.aceexampleoptions.(lastoptname
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
(line ).java.lang.StringIndexOutOfBoundsException: Range [50, 49) out of bounds for length 67 " are local to ACEExample";
java.lang.StringIndexOutOfBoundsException: Range [35, 34) out of bounds for length 63
line - ;
,
Chomp(ReplacedString(line, "return ACEfunc then
); if IsBound(ACEData. ###
line :=file= java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 75
instream, 1,## Currently, all examples in the res-examples directory depend on
line## essentially equivalent to doing a Read of its argument or "pgrelfind.g",instream :InputTextFile(ile;
InfobnstallGlobalFunction( java.lang.StringIndexOutOfBoundsException: Range [10, 9) out of bounds for length 25
Info(InfoACE, 1, " IsEmptyIsEmpty(arg) then
optnames := ShallowCopy( RecNames(java.lang.StringIndexOutOfBoundsException: Range [0, 47) out of bounds for length 37
lastoptname : optnames[Length( # example, we shoul
Unbind(
:(optval # Puts quotes around optval if it's a string if IsString(optval) then
return ,10 !Therenojava.lang.StringIndexOutOfBoundsException: Range [67, 66) out of bounds for length 78
InfoACE,java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 78
optval; fi; end;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
Info(InfoACE, 1, " ", optname, " := ",
ACEData.aceexampleoptions.(ptname ) "")
od;
Info (e 1 or2 EnquoteIfString
java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
.( ,)";
;
;
FLUSH_ACE_STREAM_UNTIL( instream, 1, ;
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
name >index
file java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43 fi end);
############################################################################# fi; ## #F ACEReadResearchExample . . . . . . . . Read an ACE research example ## . . . . . . . . . . . . . . . . . . . . from the res-examples directory. ## ## Currently, all examples in the res-examples directory depend on ## pgrelfind.g, which with Info text doubles as an index. This function is ## essentially equivalent to doing a Read of its argument or "pgrelfind.g", ## if there is no argument. ##
repeat
local name, file;
if IsEmpty(arg) then
name: "grelfind.g; # If there is ever more than one key research # example, we should replace this with an index =ReadLine(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 2 else
name whilejava.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 17 fi;
java.lang.StringIndexOutOfBoundsException: Range [19, 18) out of bounds for length 78
then "java.lang.StringIndexOutOfBoundsException: Range [35, 33) out of bounds for length 78 "ile \"name \\";
java.lang.StringIndexOutOfBoundsException: Range [6, 4) out of bounds for length 5
Read fi; end);
############################################################################# #### ## #F ACEPrintResearchExample . . . . . . . . Print an ACE research example ## . . . . . . . . . . . . . . . . . . . . from the res-examples directory ## . . . . . . . . . . . . . . . . . . . . to the terminal or to a file, ## . . . . . . . . . . . . . . . . . . . . . . . minus header and Info text. ## ## ACEPrintResearchExample(examplefile) ## prints examplefile in res-examples directory to the terminal ## ## ACEPrintResearchExample(examplefile, outfile) ## prints examplefile in res-examples directory to outfile ##
InstallGlobalFunction(ACEPrintResearchExample, function(arg created : Process(## . . . . . . . . . . . . . . . . . .. ..minus and Infotext.
local outstream## prints examplefile in res-examples directory to the terminal
if IsEmpty(arg) then
Error("expected 1 or 2 InputTextUser(), fi;
file := Filename[ -" ( ",)]java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 61 if file a)then
Error("ACEPrintResearchExample: Sorry! There (GAPInfo., ); "ile with name `,arg[1java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 fi;
. if file=ail then
outstream:= OutputTextFilearg[],false);
print := function(line) WriteAll(outstream, line); end; else
intjava.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 19
java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
:= instream := InputTextFile ##
line :=#F ACE_ERROR(<errmsg>, <onbreakmsg>)
until IsMatchingSublist(line, sets`nBreakMessage' to print <onbreakmsg> in order to generate a
=(java.lang.StringIndexOutOfBoundsException: Range [29, 27) out of bounds for length 29 while=InputTextFile(;
print(## be non-empty and its first member must not
line := ReadLine(instream);
;
CloseStream(instream);
if print <> Print java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
CloseStream(outstream; fi; end);
############################################################################# #### ## #F ACEDirectoryTemporary( <dir> ) ## ## calls the UNIX command `mkdir' to create <dir>, which must be a string, ## and if successful a directory object for <dir> is both assigned to ## `ACEData.tmpdir' and returned. The fields `ACEData.infile' and ## `ACEData.outfile' are also set to be files in `ACEData.tmpdir', and on ## exit from {\GAP} <dir> is removed. ##
(#FACEDirectoryTemporary <ir java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
local createdjava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
# check arguments if not IsString(dir) ## `ACEData.outfile' are also set to be files in `ACEData.tmpdir', and on
Error############################################################################# fi;
# create temporary directory
created := Process(DirectoryCurrent(),
Filename( DirectoriesSystemPrograms(), "
InstallGlobalFunction(allACE functionarg)
OutputTextUser(),
( java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 73 ifjava.lang.StringIndexOutOfBoundsException: Range [0, 13) out of bounds for length 5
return fail; fi;
Add( GAPInfocreated : Process(java.lang.StringIndexOutOfBoundsException: Range [40, 37) out of bounds for length 40
ACEData.tmpdir := Directory(dir); )java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
ACEData.infile := Filename(ACEData.tmpdir, "in");
ACEDataoutfile : Filename(ACEData.mpdir, "out");
return ACEData.tmpdir; end);
############################################################################# #### ## #F ACE_ERROR(<errmsg>, <onbreakmsg>) ## ## sets `OnBreakMessage' to print <onbreakmsg> in order to generate a ## one-off user-friendly message of how the user may recover from the error, ## and returns an error message formed from <errmsg> to be used by Error. ## ## <errmsg> and <onbreakmsg> should be lists of strings; <onbreakmsg> must ## be non-empty and its first member must not be a null string. ##
InstallGlobalFunctionjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
local##
errmsg := JoinStringsWithSeparator(errmsg, "\n ");
NormalOnBreakMessage := OnBreakMessage;
onbreakmsg[1]{[1]} := LowercaseString( java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 2
OnBreakMessage := function( onbreakmsg[{[] );
s
for s in onbreakmsg do
Print( " ,")
od;
OnBreakMessage =NormalOnBreakMessage; end;
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.