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(CosetTableFromGensAndRels = ACECosetTableFromGensAndRels
) #############################################################################
#F InfoACELevel . . . . . . . . . . . . . . . Get the InfoLevel for####
############################################################################# #### ## #F InfoACELevel . . . . . . . . . . . . . . . Get the InfoLevel for InfoACE ## ##
SetInfoLevel;
return InfoLevel(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 6 end;
############################################################################# #### ## #F SetInfoACELevel . . . . . . . . . . . . . . Set the InfoLevel for InfoACE ## ##
InstallGlobalFunction(SetInfoACELevel, function(arg) if IsEmpty##
else
##F SetInfoACELevel . . . . . . . . . . . . . . Set the InfoLevel for InfoACE
;() java.lang.StringIndexOutOfBoundsException: Range [22, 23) out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 62
############################################################################# #### ## #F ACEPackageVersion() ## ## returns the version number of the current ACE package. ##
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 4
############################################################################# #### ## #F CALL_ACE . . . . . . . . . Called by ACECosetTable, ACEStats and ACEStart ## ##
InstallGlobalFunctionOjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62
optnames ,,infile,datarec, ToACE, gens,
PushOptionsACEData.ceexampleoptions);
if ValueOption("= Unbind(ACEData.ceexampleoptions)java.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
( then
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
.);
PushOptions(ACEData.);
Unbind(ACEData.ptions);
ACEData.options:=OptionsStack[Length()fijava.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5
java.lang.StringIndexOutOfBoundsException: Range [15, 14) out of bounds for length 17
:= ACE_VALUE_ECHO;
ECHO_ACE_ARGS,,( = fgens
:rec(
=(ACEData .java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 52 # We have hijacked ACE's echo option ... we don't actually pass it to ACE echowhile f java.lang.StringIndexOutOfBoundsException: Range [25, 26) out of bounds for length 25
procId;
;
)java.lang.StringIndexOutOfBoundsException: Index 55 out of bounds for length 55 # Check arguments are valid
;
errmsgjava.lang.StringIndexOutOfBoundsException: Range [20, 19) out of bounds for length 47
[(1 non listofgroup..
onbreakmsg :
["Type: 'java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 17 "type: =val;return; to val fgens continue."
];
(errmsg,onbreakmsg), "\n");
od;
fgens := ACE_FGENS_ARG_CHK
infile = VALUE_ACE_OPTIONoptnames standard :ACE_COSET_TABLE_STANDARD( datarec.ptions java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
sgens:( outfile := VALUE_ACE_OPTION(optnames, ACEDataG java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 50
infile := VALUE_ACE_OPTION(optnames, fail, "aceinfile"else if stream := InputOutputLocalProcess
datarec :=rec
infile := infile,
utfile : java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 7
stream = (infile,false) )java.lang.StringIndexOutOfBoundsException: Index 51 out of bounds for length 51
( [Gjava.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 30
datarecjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
=(CEDatatmpdir ",3); if ACEfname= INTERACT_TO_ACE_WITH_ERRCHKdatarec,listjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 60 fi
; if .ptions :=ACE_OPTIONS
ecprocId0;
ACEData.ni := datarec; fi;
FLUSH_ACE_STREAM_UNTIL(datarec.stream, 3, 3if = "CEStart java.lang.StringIndexOutOfBoundsException: Range [0, 32) out of bounds for length 0
ToACE := function(listifdatarec.datarec.acegens :gens
INTERACT_TO_ACE_WITH_ERRCHK(datarec, list) ToACE["sis:1"] end fi;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
datarec ,echo ( GroupRelators:"
standard : ACE_COSET_TABLE_STANDARD datarec. );
# Define the group generators ACE will use
gens := TO_ACE_GENS java.lang.StringIndexOutOfBoundsException: Range [32, 30) out of bounds for length 35
:"ceinfile
datarec
# Define the group relators ACE will use
:=
(usert java.lang.StringIndexOutOfBoundsException: Range [67, 66) out of bounds for length 76
("; )
ToACE G Relators:"
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 53
# Define the subgroup generators ACE will use
ToACE([ "java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 9
ACE_WORDS(sgens, fgens, datarec.acegens),
if ACEfname <>"then
java.lang.StringIndexOutOfBoundsException: Range [6, 1) out of bounds for length 13 else
ignored := [ "aceinfile" ]; fi; ifACEfname ="ACEStart"then
ignoreda[java.lang.StringIndexOutOfBoundsException: Range [27, 23) out of bounds for length 29 # ... initiate the enumeration ifToACE[Start"]
Add if =" datarec.procId := Length(ACEData1java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
[:;; fi;
optnames optnames,,,
rec( (optnames datarecjava.lang.StringIndexOutOfBoundsException: Index 17 out of bounds for length 17
generators####
relators : ACE_ERRORSargnotopt,
ignored ACEfname -
)
ifjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if
#java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76 # ... initiate the enumeration
ToACE([ .procId : (.o +1java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 fi; if## . . . . . . . . . . . . . . . . . . . . the lenlex standardisation schemejava.lang.StringIndexOutOfBoundsException: Range [26, 25) out of bounds for length 30
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 5
ToACE#standardjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 2
;
ToACE##
Instal[ (tablejava.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
: .java.lang.StringIndexOutOfBoundsException: Range [38, 36) out of bounds for length 49 elif ACEfname < if VALUE_ACE_OPTION(optnames, fail, ["start", "aep", "java.lang.StringIndexOutOfBoundsException: Range [0, 61) out of bounds for length 5
ACE_MODE( ## . . . . . . . . . . . . . . . . . . with the lenlex option, according to fi;
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 77
ToACE([ "Standard; ;
; fi;
if in do
datarec.procId := Length(ACEData.io) + 1;
,datarec);
return if [][]> nextthen ""then
java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 6 fi;
return datarec; end);
############################################################################# #### ## #F ACECosetTableFromGensAndRels . . . . . . . Non-interactive ACECosetTable ## ##
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 5 # Use ACECosetTable non-interactively##
ACECosetTable )
;
############################################################################# #### ## #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 ##
InstallGlobalFunction## for relators that determine whether or not gens[1] and gens[2] are ;
java.lang.StringIndexOutOfBoundsException: Range [0, 5) out of bounds for length 0
standard := ## involution, explicitly to ACE as: gens[1]*gens[1] (rather ## . . . . . . . . . . . . . . . . . . . . . . . . . . . . preferred by ACE## gens[1]^2). ifLengthfthe generators gens would not be by ACE false,
geninvIndices =[1 .. Length(table) # for relators that determine whether or not gens[1] and gens[2] are elif## If IsACEGeneratorsInPreferredOrder would return false, it is possible to
geninvIndices: 1,3. ]java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 49
; # ... by which time `IsStandardized'
: CallFuncList(ACEProcessIndex,arg; # to cope with any other standardisation # schemes fi :(arg[];
;
forjgens 1or not (rels, rel -> []) for
table] if table[i][ ]
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0
next truejava.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 fi;
od;
od;
return true## 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). ##
#F ACEExample( <file> #java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 ## examples is displayed.
if Length(arg) < 2then
ioIndex := CallFuncList(ACEProcessIndex#> (or `ACEStats', if the 2nd argument is omitted) and then
= ACEGroupGenerators(ioIndex);
rels := ACERelators(ioIndex); ## `ACECosetTableFromGensAndRels' (or equivalently `ACECosetTable', or
(ACEExample, functionarg
= ,2""; elifrest) (; # This scenario only intended for use internally
EnquoteIfStri, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
rels#F ACEExample( <file>[, <ACEfunc>] )name :"; else
Error("expected at most## not a filename in the `examples' directory, an index of available= arg[1]; fi;
if Length Length# index"the example displayed as would called with
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16 else
(,java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 48
; end);
############################################################################# #### ## #F ACE_READ_AS_FUNC . . . . . . . . . . . . . . . Variant of ReadAsFunction ## . . . . . . . . . . . . that allows the passing of the function argument ## . . . . . . . . . . . . . . . . . . . . ACEfunc to ReadAsFunction(file)() ## ##
java.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 63
#java.lang.StringIndexOutOfBoundsException: Index 77 out of bounds for length 77
instream :=## `ACECosetTableFromGensAndRels' (or equivalently `ACECosetTable', or We don't want the user to see this ... so we flush at InfoACE level 10.##
line := FLUSH_ACE_STREAM_UNTIL java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 5
line -> java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 34
rest := ReadAll(instream if IsEmpty(rg then
CloseStreaminstream);
return ReadAsFunction(
InputTextString(
Concatenation([ ReplacedString(line, ";", ", ACEfunc;"),
java.lang.StringIndexOutOfBoundsException: Range [42, 41) out of bounds for length 75
rest ]InfoI 1java.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20 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'. ##
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7
,
PopOptions(;
if
java.lang.StringIndexOutOfBoundsException: Range [6, 7) out of bounds for length 6
name := arg[1] ; ifarg
=[2 java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41 else
tats fijava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 7 ifnotIsEmptyOptionsStack
ACEData.aceexampleoptions := OptionsStack[ Length ;
PopOptions();
"#", line{[Position.l,''1}, fi
if java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 63
=( ( a" e),name) Info(InfoACE,1java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21 iffile =fail then
Info(InfoACE + java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
###
name := "index";
: Filename(DirectoriesPackageLibrary("ace## . . . . . . . . . . . . . . . . . . . . from the res-examples directory. fi; # Display file ... after a few minor modifications
: ()java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
name<>"index then
line := java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 17
line -
Info(InfoACE, 1, "#", line{[Position(line, ' ')..Position(line, ';') - 1]}, " are local to ACEExample");
line :[( # example, we shoul
line;
Info(InfoACE, 1,
EnquoteIfString:function)
); if IsBound(ACEData.aceexampleoptions) then
line := FLUSH_ACE_STREAM_UNTIL(
instream, 1, 10, Error("ACEReadResearchExample: Sorryis no researchexample\n",
line -> PositionSublist(line, ");")
fo(;
(, 1 java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45 #F ACEPrintResearchExample . . . . . . . . Print an ACE research example
lastoptnamereturn java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
Unbind(
EnquoteIfString := function(optval) # Puts quotes around optval if it's a string## . . . . . . . . . . . . . . . . . . . . from the res-examples directory if IsStringEnquoteIfString(
(),,) else
return optval; fi; end;## ACEPrintResearchExample(examplefile, outfile)
fordo
print , java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
ACEData.
Info(InfoACE, 1, " ", lastoptname, " := if file= failthen
EnquoteIfString(
ACEData.aceexampleoptions.(lastoptname) fi fi fi;
java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 5
CloseStream(instream);UNC(file, ACEfunc); if>"
return ACE_READ_AS_FUNC java.lang.StringIndexOutOfBoundsException: Index 5 out of bounds for length 5 fi; end#F ACEReadResearchExample . . . . . . . . Read an ACE research example
############################################################################# #### ## #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. ##
InstallGlobalFunction(ACEReadResearchExample, function(arg)
if IsEmpty(arg) then=ReadLineinstream;
name := "pgrelfind. file:= Filename( DirectoriesPackageLibrary( "ace", "res-examples od; # example, we should replace this with an index else
: if =fail java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
;
file : fwith name\" ,""\"; ifelse
Error("ACEReadResearchExample: Sorry! There Read##################################################################### "file with name ## else
Read(file## calls the UNIX command `mkdir' to create <dir>, which must be a string,## 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 ##
InstallGlobalFunctionOjava.lang.StringIndexOutOfBoundsException: Index 38 out of bounds for length 38
local ifcreated fail java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
(
Error( fiAdd DirectoriesTemporarydir)java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
file := Filename( DirectoriesPackageLibrary( "ace", "res-examples"), arg[1] );
java.lang.StringIndexOutOfBoundsException: Range [21, 22) out of bounds for length 21
Error.
print := Pr fi;
if instreamjava.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 4
outstream : Ojava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 77
print line : ReadLineinstream); else
print := Print; fi;
instream : file)java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 34
repeat
line ##
until java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 5
line := ReadLine(instream);
java.lang.StringIndexOutOfBoundsException: Range [16, 15) out of bounds for length 27
print(line);
line := ReadLine(#############################################################################
od;
CloseStream(instream);
if print <> Print then
java.lang.StringIndexOutOfBoundsException: Range [27, 25) out of bounds for length 27
; 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. ##
InstallGlobalFunction(java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
local created;
# check argumentsjava.lang.StringIndexOutOfBoundsException: Range [23, 21) out of bounds for length 44 if not CallACEis: java.lang.StringIndexOutOfBoundsException: Range [66, 65) out of bounds for length 73
Error("usage: ACEDirectoryTemporary( < if created); fi;
# create temporary directory
:DirectoryCurrent(),
Filename( DirectoriesSystemPrograms(), "sh" ),
InputTextUser(),
OutputTextUser(,
[ "-c", Concatenation("mkdir ", dir) ]); if created = fail .=tjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53 #### fi;
## sets `OnBreakMessage' to print <onbreakmsg> in order to generate a
ACEData.tmpdir := Directory(dir);
ACEData.infile := Filename(ACEData.##
ACEData.outfile := Filename(ACEData.tmpdir, "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. ##
InstallGlobalFunction(ACE_ERROR, function(errmsg, onbreakmsg)
local NormalOnBreak, NormalOnBreakMessage;
for s ",s,\n";
Print(" ", : NormalOnBreakMessagejava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
od#############################################################################
java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 2 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.