Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 


Quelle  CHAP004.htm   Sprache: HTML

 
 products/sources/formale Sprachen/GAP/pkg/ace/htm/CHAP004.htm


<html><head><title>[ACE] 4 Options for ACE</title></head>
<body text="#000000" bgcolor="#ffffff">
[<a href = "chapters.htm">Up</a>] [<a href ="CHAP003.htm">Previous</a>] [<a href ="CHAP005.htm">Next</a>] [<a href = "theindex.htm">Index</a>]
<h1>4 Options for ACE</h1><p>
<P>
<H3>Sections</H3>
<oL>
<li> <A HREF="CHAP004.htm#SECT001">Passing ACE Options</a>
<li> <A HREF="CHAP004.htm#SECT002">Warnings regarding Options</a>
<li> <A HREF="CHAP004.htm#SECT003">Abbreviations and mixed case for ACE Options</a>
<li> <A HREF="CHAP004.htm#SECT004">Honouring of the order in which ACE Options are passed</a>
<li> <A HREF="CHAP004.htm#SECT005">What happens if no ACE Strategy Option or if no ACE Option is passed</a>
<li> <A HREF="CHAP004.htm#SECT006">Interpretation of ACE Options</a>
<li> <A HREF="CHAP004.htm#SECT007">An Example of passing Options</a>
<li> <A HREF="CHAP004.htm#SECT008">The KnownACEOptions Record</a>
<li> <A HREF="CHAP004.htm#SECT009">The ACEStrategyOptions List</a>
<li> <A HREF="CHAP004.htm#SECT010">ACE Option Synonyms</a>
<li> <A HREF="CHAP004.htm#SECT011">Non-ACE-binary Options</a>
<li> <A HREF="CHAP004.htm#SECT012">ACE Parameter Options</a>
<li> <A HREF="CHAP004.htm#SECT013">General ACE Parameter Options that Modify the Enumeration Process</a>
<li> <A HREF="CHAP004.htm#SECT014">ACE Parameter Options Modifying C Style Definitions</a>
<li> <A HREF="CHAP004.htm#SECT015">ACE Parameter Options for R Style Definitions</a>
<li> <A HREF="CHAP004.htm#SECT016">ACE Parameter Options for Deduction Handling</a>
<li> <A HREF="CHAP004.htm#SECT017">Technical ACE Parameter Options</a>
<li> <A HREF="CHAP004.htm#SECT018">ACE Parameter Options controlling ACE Output</a>
<li> <A HREF="CHAP004.htm#SECT019">ACE Parameter Options that give Names to the Group and Subgroup</a>
<li> <A HREF="CHAP004.htm#SECT020">Options for redirection of ACE Output</a>
<li> <A HREF="CHAP004.htm#SECT021">Other Options</a>
</ol><p>
<p>
<font face="Gill Sans,Helvetica,Arial">ACE</font> offers a wide range of options to  direct  and  guide  a  coset
enumeration, most of which  are  available  from  <font face="Gill Sans,Helvetica,Arial">GAP</font>  through  the
interface provided by the <font face="Gill Sans,Helvetica,Arial">ACE</font> Package.  We  describe  most  of  the
options available via the interface in this  chapter;  other  options,
termed strategies, are defined in Chapter <a href="CHAP005.htm">Strategy Options for  ACE</a>.
(Strategies are merely special options of <font face="Gill Sans,Helvetica,Arial">ACE</fontthat set a number  of
options described in this chapter, all at once.)  Yet  other  options,
for  which  interactive  function   alternatives   are   provided   in
Chapter <a href="CHAP006.htm">Functions for Using ACE Interactively</a>, or which most  <font face="Gill Sans,Helvetica,Arial">GAP</font>
users are unlikely to  need,  are  described  in  Appendix <a href="CHAP00D.htm">Other  ACE Options</a>. From within a <font face="Gill Sans,Helvetica,Arial">GAP</font> session, one may see the complete  list
of  <font face="Gill Sans,Helvetica,Arial">ACE</font>  options,   after   loading   the   <font face="Gill Sans,Helvetica,Arial">ACE</font>   Package   (see
Section <a href="CHAP002.htm#SECT002">Loading the ACE Package</a>), by typing
<p>
<pre>
gap> RecNames(KnownACEOptions);
"default""help""check""generators""start""path""cycles"
  "normal""ds""group""subgroup""relators""order""max""rep"
  "system""silent""time""begin""text""options""fill"
  "aceinfile""aceignore""aceignoreunknown""acenowarnings""aceecho"
  "aceincomment""aceexampleoptions""lenlex""semilenlex""incomplete"
  "sg""rl""aep""ai""ao""aceoutfile""asis""bye""exit""qui"
  "cc""cfactor""ct""redo""compaction""continu""dmode""dsize"
  "dr""dump""easy""echo""enumeration""felsch""ffactor""hard"
  "hlt""hole""lookahead""loop""mendelsohn""messages""monitor"
  "mode""nc""no""oo""pmode""psize""sr""print""purec"
  "purer""rc""recover""contiguous""rfactor""rt""row""sc"
  "stabilising""sims""standard""statistics""stats""style""tw"
  "trace""workspace" ]

</pre>
<p>
(See Section <a href="CHAP004.htm#SECT008">The KnownACEOptions Record</a>.) Also, from within a <font face="Gill Sans,Helvetica,Arial">GAP</font>
session, you may use <font face="Gill Sans,Helvetica,Arial">GAP</font>'s help browser (see Chapter The Help System in the GAP Reference Manual); to find out about any
particular <font face="Gill Sans,Helvetica,Arial">ACE</fontoption, simply type: ``<code>?option  </code><var>option</var><code></code>'',  where
<var>option</var> is one of the options listed above without any quotes, e.g.
<p>
<pre>
gap> ?option echo
</pre>
<p>
will display the section in this  manual  that  describes  the  <code>echo</code>
option.
<p>
We begin this chapter with several sections discussing the  nature  of
the options provided. Please spend some time reading  these  sections.
To continue onto the next section on-line using <font face="Gill Sans,Helvetica,Arial">GAP</font>'s help browser,
type:
<p>
<pre>
gap> ?>
</pre>
<p>
<p>
<h2><a name="SECT001">4.1 Passing ACE Options</a></h2>
<p><p>
Options are passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> interface functions in either of the
two usual mechanisms provided by <font face="Gill Sans,Helvetica,Arial">GAP</font>, namely:
<p>
<ul>
<p>
<li> options may be set globally using the function <code>PushOptions</code>
(see Chapter <a href="../../../doc/ref/chap8.html#X7FD84061873F72A2">Options Stack</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> Reference  Manual); or
<p>
<li> options may be appended to the argument list of any function
call, separated by a colon from the argument list  (see  <a href="../../../doc/ref/chap4.html#X78C70489791FDF43">Function Calls</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> Reference Manual), in which case  they  are  then
passed on recursively to any subsequent inner function call, which may
in turn have options of their own.
<p>
</ul>
<p>
In general, if <font face="Gill Sans,Helvetica,Arial">ACE</font> is to be used  interactively  one  should  avoid
using the global method of passing options. In fact, it is recommended
that prior to calling <code>ACEStart</code> the <code>OptionsStack</code> be empty.
<p>
<p>
<h2><a name="SECT002">4.2 Warnings regarding Options</a></h2>
<p><p>
As mentioned above, one can set options globally  using  the  function
<code>PushOptions</code> (see Chapter <a href="../../../doc/ref/chap8.html#X7FD84061873F72A2">Options Stack</a> in the <font face="Gill Sans,Helvetica,Arial">GAP</font> Reference
Manual); however, options pushed onto  <code>OptionsStack</code>,  in  this  way,
remain there  until  an  explicit  <code>PopOptions()</code>  call  is  made.  In
contrast, options passed in the usual way behind a colon  following  a
function's arguments (see Function Calls in the GAP Reference
Manual)  are  local,  and  disappear  from  <code>OptionsStack</code>  after  the
function has executed successfully; nevertheless, a function, that  is
passed options this way, will also  see  any  global  options  or  any
options passed down recursively from functions calling that  function,
unless those  options  are  over-ridden  by  options  passed  via  the
function. Also note that duplication of  option  names  for  different
programs  may  lead   to   misinterpretations.   Since   a   non-empty
<code>OptionsStack</code> is potentially a mine-field for the  unwary  user,  the
function  <code>ResetOptionsStack</code>  (see <a href="../../../doc/ref/chap8.html#X83D1190984DA3B85">ResetOptionsStack</a>   in   the
Reference Manual) is now in the <font face="Gill Sans,Helvetica,Arial">GAP</font> library and
<p>
<a name = "SSEC002.1"></a>
<li><code>FlushOptionsStack() F</code>
<p>
introduced in version 3.001 of the <font face="Gill Sans,Helvetica,Arial">ACE</font> Package to perform the  same
function, is now a synonym for <code>ResetOptionsStack</code>; it simply executes
<code>PopOptions()</code> until <code>OptionsStack</code> is empty.
<p>
However, <code>ResetOptionsStack</code> (or <code>FlushOptionsStack</code>)  does  not  wipe
out the options already passed to an <strong>interactive</strong> <font face="Gill Sans,Helvetica,Arial">ACE</font> process.  We
have provided <code>GetACEOptions</code> (see <a href="CHAP006.htm#SSEC005.7">GetACEOptions</a>) to keep  track  of
options that the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary process still considers  active,  which
may  or  may  not  be  still  on  the  <code>OptionsStack</code>.  There  is  the
interactive  <code>SetACEOptions</code>  (see <a href="CHAP006.htm#SSEC005.8">SetACEOptions</a>)  to  change   such
options, or,  of  course,  you  can  always  elect  to  use  <code>ACEQuit</code>
(see <a href="CHAP006.htm#SSEC001.2">ACEQuit</a>) and then start a new interactive <font face="Gill Sans,Helvetica,Arial">ACE</font> process.
<p>
Finally,       if       <code>ACEIgnoreUnknownDefault       :=       false</code>
(see <a href="CHAP004.htm#SSEC011.2">ACEIgnoreUnknownDefault</a>), there will  be  situations  where  an
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface function  needs  to  be  told  explicitly  to  ignore
options passed down recursively to it from calling functions. For this
purpose  we  have  provided  the  options   <code>aceignore</code>   (see <a href="CHAP004.htm#SSEC011.9">option aceignore</a>) and <code>aceignoreunknown</code> (see <a href="CHAP004.htm#SSEC011.10">option aceignoreunknown</a>).
<p>
<p>
<h2><a name="SECT003">4.3 Abbreviations and mixed case for ACE Options</a></h2>
<p><p>
Except for limitations imposed by <font face="Gill Sans,Helvetica,Arial">GAP</font>  e.g.  clashes  with  <font face="Gill Sans,Helvetica,Arial">GAP</font>
keywords and blank spaces not allowed in keywords, the options of  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface are the same as for the binary; so, for example,  the
options can appear in upper or lower case (or indeed, mixed case)  and
most may be abbreviated. Below we only list the options in  all  lower
case, and in their longest form; where  abbreviation  is  possible  we
give the shortest abbreviation in the  option's description e.g. for
the <code>mendelsohn</codeoption we state that  its  shortest  abbreviation  is
<code>mend</code>, which means <code>mende</code>, <code>mendel</code> etc.,  and  indeed,  <code>Mend</code>  and
<code>MeND</code>, are all valid abbreviations of that option. Some options  have
synonyms e.g. <code>cfactor</code> is an alternative for <code>ct</code>.
<p>
The complete list of <font face="Gill Sans,Helvetica,Arial">ACE</font> options  known  to  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface
functions, their abbreviations and the values that they are  known  to
take  may  be  gleaned  from   the   <code>KnownACEOptions</code>   record   (see
Section <a href="CHAP004.htm#SECT008">The KnownACEOptions Record</a>).
<p>
Options  for each of  the       <font face="Gill Sans,Helvetica,Arial">ACE</font>       interface       functions
<code>ACECosetTableFromGensAndRels</code>,   <code>ACECosetTable</code>,   <code>ACEStats</code>    and
<code>ACEStart</code> (see  Chapter <a href="CHAP006.htm">Functions  for  Using  ACE  Interactively</a>),
comprise the few  non-<font face="Gill Sans,Helvetica,Arial">ACE</font>-binary  options  (<code>silent</code>,  <code>aceinfile</code>,
<code>aceoutfile</code>,   <code>aceignore</code>,   <code>aceignoreunknown</code>,    <code>acenowarnings</code>,
<code>aceincomment</code>,     <code>aceecho</code>     and     <code>echo</code>)     discussed     in
Section <a href="CHAP004.htm#SECT011">Non-ACE-binary  Options</a>,  (almost)  all  single-word  <font face="Gill Sans,Helvetica,Arial">ACE</font>
binary options and  <code>purer</code>  and  <code>purec</code>.  The  options  <code>purer</code>  and
<code>purec</code> give  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  options  <code>pure  r</code>  and  <code>pure  c</code>,
respectively; (they are the only multiple-word <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  options
that do not have a single word alternative).  The  <strong>only</strong>  single-word
<font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  options  that  are  <strong>not</strong>  available  via  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
interface are abbreviations that clash with <font face="Gill Sans,Helvetica,Arial">GAP</font> keywords (e.g. <code>fi</code>
for <code>fill</code>, <code>rec</code> for <code>recover</code> and  <code>continu</code>  for  <code>continue</code>).  The
detail of this paragraph is  probably  of  little  importance  to  the
<font face="Gill Sans,Helvetica,Arial">GAP</font> user; these comments have been included for the user who wishes
to reconcile the respective functionalities of  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface
and  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  standalone,  and  are  probably  of  most  value  to
standalone users.
<p>
<p>
<h2><a name="SECT004">4.4 Honouring of the order in which ACE Options are passed</a></h2>
<p><p>
<strong>Note:</strong> Below we describe the intended behaviour,  but  unfortunately,
since <font face="Gill Sans,Helvetica,Arial">GAP</font> 4.5  (approximately  when  <font face="Gill Sans,Helvetica,Arial">ACE</font> 5.1  was  released) the
order of options  behind  the colon  is no longer honoured. Until this
is fixed, if the order of <font face="Gill Sans,Helvetica,Arial">ACE</font> options needs to be respected,  users
should use <font face="Gill Sans,Helvetica,Arial">ACE</font> interactively (see <a href="CHAP006.htm#SSEC001.1">ACEStart</a>).
<p>
It  is  important  to  realize  that  <font face="Gill Sans,Helvetica,Arial">ACE</font>'s options (even the
non-strategy options) are not orthogonal, i.e.  the  order  in  which
they are put to <font face="Gill Sans,Helvetica,Arial">ACE</font> can be important. For this reason, except for a
few options that have no effect on the course of an  enumeration,  the
order in which options are passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> interface is preserved
when those same options are passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary.  One  of  the
reasons for the non-orthogonality of options is to  protect  the  user
from obtaining invalid enumerations from bad combinations of  options;
another reason is that commonly one may specify a strategy option  and
override some of that strategy's defaults; the general rule is that
the later option prevails. By the way, it's not illegal to select more
than one strategy, but it's not sensible; as just mentioned, the later
one prevails.
<p>
<p>
<h2><a name="SECT005">4.5 What happens if no ACE Strategy Option or if no ACE Option is passed</a></h2>
<p><p>
If  an  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface  function   (<code>ACECosetTableFromGensAndRels</code>,
<code>ACEStats</code>,  <code>ACECosetTable</code>  or  <code>ACEStart</code>)  is  given  no  strategy
option, the <code>default</code>  strategy  (see  Chapter <a href="CHAP005.htm">Strategy  Options  for ACE</a>) is selected, and a number of options that <font face="Gill Sans,Helvetica,Arial">ACE</font> needs to have a
value for are given default values, <strong>prior</strong> to the  execution  of  any
user options, if any. This ensures that <font face="Gill Sans,Helvetica,Arial">ACE</font> has a value for all its
``run parameters'';  three  of  these  are  defined  from  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
interface function arguments; and the remaining ``run parameters'', we
denote by ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options''. For user convenience, we  have
provided the <code>ACEParameterOptions</code> record (see <a href="CHAP004.htm#SSEC012.1">ACEParameterOptions</a>),
the fields of which are the ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options''. The value of
each field (option) of the <code>ACEParameterOptions</code> record  is  either  a
default value or (in the case of an option that is set by a  strategy)
a record of default values that <font face="Gill Sans,Helvetica,Arial">ACE</font> assumes when the user does  not
define a value for  the  option  (either  indirectly  by  selecting  a
strategy option or directly).
<p>
If the <code>default</code> strategy does not suffice, most usually a  user  will
select one of the other strategies  from  among  the  ones  listed  in
Chapter <a href="CHAP005.htm">Strategy Options for ACE</a>, and possibly modify  some  of  the
options by selecting from  the  options  in  this  chapter.  It's not
illegal to select more than one strategy, but it's not sensible; as
mentioned above, the later one prevails.
<p>
<p>
<h2><a name="SECT006">4.6 Interpretation of ACE Options</a></h2>
<p><p>
Options may be given a value by an assignment to  the  name  (such  as
<code>time := </code><var>val</var><code></code>); or be passed without assigning  a  value,  in  which
case <font face="Gill Sans,Helvetica,Arial">GAP</font> treats the option as <strong>boolean</strong> and sets the option to  the
value <code>true</code>, which  is  then  interpreted  by  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface
functions. Technically speaking the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary itself does not have
boolean options, though it does have some options which  are  declared
by passing without a value  (e.g.  the  <code>hard</code>  strategy  option)  and
others that are boolean in the C-sense (taking on just the values 0 or
1).   The   behaviour    of    the    <font face="Gill Sans,Helvetica,Arial">ACE</font>    interface    functions
(<code>ACECosetTableFromGensAndRels</code>,   <code>ACEStats</code>,   <code>ACECosetTable</code>    or
<code>ACEStart</code>) is essentially  to  restore  as  much  as  is  possible  a
behaviour that mimics the <font face="Gill Sans,Helvetica,Arial">ACE</font> standalone; a <code>false</code> value is always
translated to 0 and <code>true</code> may be translated to any of no-value, 0  or
1. Any option passed with an assigned value <var>val</var> other  than  <code>false</code>
or <code>true</code> is passed with the value <var>val</var> to the <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary.  Since
this may appear confusing, let's consider some examples.
<p>
<ul>
<p>
<li> The <code>hard</code> strategy option  (see <a href="CHAP005.htm#SSEC001.4">option  hard</a>)  should  be
passed without a value, which in turn is passed to the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary
without  a  value.  However,  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface  function  cannot
distinguish the option <code>hard</code> being passed without a  value,  from  it
being passed via <code>hard := true</code>. Passing <code>hard := false</code> or  <code>hard  :=
</code><var>val</var><code></code> for any non-<code>true</code> <var>val</var> will however produce a warning message
(unless the option <code>acenowarnings</code> is passed) that the  value  0  (for
<code>false</code>) or <var>val</var> is unknown for that  option.  Nevertheless,  despite
the warning, in this event, the <font face="Gill Sans,Helvetica,Arial">ACE</font> interface function  passes  the
value to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary. When the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary sees a line that it
doesn't understand it prints a warning and simply ignores it. (So
passing <code>hard := false</code> will produce warnings, but will  have  no  ill
effects.) The reason we still pass  <strong>unknown</strong>  values  to  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
binary is that it's conceivable a future version of the ACE binary
might have  several  <code>hard</code>  strategies,  in  which  case  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
interface function will still complain (until it's made aware of the
new possible values) but it will perform in the correct  manner  if  a
value expected by the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary is passed.
<p>
<li> The <code>felsch</code> strategy option (see <a href="CHAP005.htm#SSEC001.3">option  felsch</a>)  may  be
passed without a value (which chooses the <strong>felsch 0</strong> strategy) or with
the values 0 or 1. Despite the fact that <font face="Gill Sans,Helvetica,Arial">GAP</font> sees  this  option  as
<strong>boolean</strong>; it is <strong>not</strong>. There are two Felsch  strategies:  <strong>felsch  0</strong>
and <strong>felsch 1</strong>. To get the <strong>felsch 1</strong> strategy,  the  user  must  pass
<code>felsch := 1</code>. If the user were to pass <code>felsch := false</code>  the  result
would be the <strong>felsch 0</strong> strategy (since <code>false</code> is  always  translated
to 0), i.e. the same as how <code>felsch := true</code> would be interpreted.  We
could protect the user more from  such  ideosyncrasies,  but  we  have
erred on the side of simplicity in order to make  the  interface  less
vulnerable to upgrades of the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary.
<p>
</ul>
<p>
The lesson from the two examples is: <strong>check the documentation  for  an
option to see  how  it  will  be  interpreted</strong>.  In  general,  options
documented (in this chapter) as <strong>only</strong> being no-value options  can  be
safely thought of as boolean (i.e. you will get  what  you  expect  by
assigning <code>true</code> or  <code>false</code>),  whereas  strategy  (no-value)  options
should <strong>not</strong> be thought of as boolean (a <code>false</code> assignment will <strong>not</strong>
give you what you might have expected).
<p>
Options that are unknown to the <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface  functions  and  not
ignored (see below), that are passed without  a  value,  are  <strong>always</strong>
passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary  as  no-value  options  (except  when  the
options are ignored); the user can over-ride this behaviour simply  by
assigning the intended value. Note that it is perfectly safe to  allow
the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary to be passed unknown options,  since  <font face="Gill Sans,Helvetica,Arial">ACE</font>  simply
ignores options it doesn't understand, issues an error message (which
is just a warning and is output by <font face="Gill Sans,Helvetica,Arial">GAP</font> unless <code>acenowarnings</code>  (see
<a href="CHAP004.htm#SSEC011.11">option acenowarnings</a>) is passed) and continues  on  with  any  other
options passed in exactly the way it would  have  if  the  ``unknown''
options had not been passed.
<p>
An option is  ignored  if  it  is  unknown  to  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface
functions and one of the following is true:
<p>
<ul>
<li> the global  variable  <code>ACEIgnoreUnknownDefault</code>  is  set  to
<code>false</code> (see <a href="CHAP004.htm#SSEC011.2">ACEIgnoreUnknownDefault</a>) or,
<p>
<li> the <code>aceignoreunknown</codeoption (see <a href="CHAP004.htm#SSEC011.10">option aceignoreunknown</a>)
is passed, or 
<p>
<li> the <code>aceignore</codeoption  is  passed  and  the  option  is  an
element of the list value of <code>aceignore</code> (see <a href="CHAP004.htm#SSEC011.9">option aceignore</a>).
<p>
</ul>
<p>
<a name = "I0"></a>

<a name = "I1"></a>

It    is    actually    <strong>recommended</strong>    that     the     user     set
<code>ACEIgnoreUnknownDefault</code> to <code>false</code>, since this will allow  the  user
to see when  <font face="Gill Sans,Helvetica,Arial">ACE</font>  functions  have  been  passed  options  that  are
``unknown'' to the <font face="Gill Sans,Helvetica,Arial">ACE</font> package.  In  this  way  the  user  will  be
informed about misspelt options, for example. So it's a good debugging
tool. Also, if the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary is updated with a  version  with  new
options then these will not be known by the package (the <font face="Gill Sans,Helvetica,Arial">GAP</font>  part)
and it will be necessary to set <code>ACEIgnoreUnknownDefault</code>  to  <code>false</code>
in order for the new options to be  passed  to  the  binary.  When  an
<font face="Gill Sans,Helvetica,Arial">ACE</font> function is invoked indirectly by some function that was called
with non-<font face="Gill Sans,Helvetica,Arial">ACE</font> options the warning messages may begin to be annoying,
and it's then a simple matter to set ACEIgnoreUnknownDefault back to
the <font face="Gill Sans,Helvetica,Arial">ACE</font> 3.003 default value of <code>true</code>.
<p>
Warning messages regarding unknown  options  are  printed  unless  the
<code>acenowarnings</code> (see <a href="CHAP004.htm#SSEC011.11">option acenowarnings</a>) is passed or  the  option
is ignored.
<p>
To see how options are interpreted by an  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface  function,
pass the <code>echo</codeoption.
<p>
As  mentioned  above,  any  option  that  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  doesn't
understand is simply ignored and a warning appears in the output  from
<font face="Gill Sans,Helvetica,Arial">ACE</font>. If this occurs, you may wish to check the input fed to  <font face="Gill Sans,Helvetica,Arial">ACE</font>
and the output from <font face="Gill Sans,Helvetica,Arial">ACE</font>, which when <font face="Gill Sans,Helvetica,Arial">ACE</font> is run non-interactively
are stored in files whose full path names are recorded in  the  record
fields   <code>ACEData.infile</code>   and    <code>ACEData.outfile</code>,    respectively.
Alternatively, both interactively and non-interactively  one  can  set
the <code>InfoLevel</code> of <code>InfoACE</code> to 3 (see <a href="CHAP001.htm#SSEC009.1">InfoACE</a>), to see  the
output from <font face="Gill Sans,Helvetica,Arial">ACE</font>, or to 4 to  also  see  the  commands  directed  to
<font face="Gill Sans,Helvetica,Arial">ACE</font>.
<p>
<p>
<h2><a name="SECT007">4.7 An Example of passing Options</a></h2>
<p><p>
Continuing with the example of Section <a href="CHAP001.htm#SECT002">Using ACE Directly to Generate a Coset Table</a>, one could set the <code>echo</codeoption to be  true,  use  the
<code>hard</code> strategy option, increase the workspace  to  10<sup>7</sup>  words  and
turn messaging on (but to be fairly infrequent) by setting  <code>messages</code>
to a large positive value as follows:
<p>
<pre>
gap> ACECosetTable(fgens, rels, [c]
>                  : echo, hard, Wo := 10^7, mess := 10000);;
</pre>
<p>
As mentioned in the previous section, <code>echo</code> may be thought  of  as  a
boolean option, whereas <code>hard</code> is a strategy option (and hence  should
be thought of as a no-value option). Also, observe  that  two  options
have  been  abbreviated:  <code>Wo</code>  is  a  mixed  case   abbreviation   of
<code>workspace</code>, and <code>mess</code> is an abbreviation of <code>messages</code>.
<p>
<p>
<h2><a name="SECT008">4.8 The KnownACEOptions Record</a></h2>
<p><p>
<a name = "SSEC008.1"></a>
<li><code>KnownACEOptions V</code>
<p>
is a <font face="Gill Sans,Helvetica,Arial">GAP</font> record whose fields are the <font face="Gill Sans,Helvetica,Arial">ACE</font> options  known  to  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface; each field (known <font face="Gill Sans,Helvetica,Arial">ACE</fontoption) is  assigned  to  a
list of the form <code>[</code><var>i</var><code>, </code><var>ListOrFunction</var><code>]</code>, where <code></code><var>i</var><code></code> is an  integer
representing the length of the shortest abbreviation of the option and
<code></code><var>ListOrFunction</var><code></code> is either a list of (known)  allowed  values  or  a
boolean function that may be used to determine if the given value is a
(known) valid value e.g.
<p>
<pre>
gap> KnownACEOptions.compaction;
[ 3, [ 0 .. 100 ] ]

</pre>
<p>
indicates that the option <code>compaction</code> may be  abbreviated  to  <code>com</code>
and the (known) valid values are in the (integer) range 0 to 100; and
<p>
<pre>
gap> KnownACEOptions.ct;
[ 2, <Category "IsInt"> ]

</pre>
<p>
indicates that there is essentially no abbreviation of <code>ct</code> (since its
shortest abbreviation is of length 2),  and a value of  <code>ct</code> is  known
to be valid if <code>IsInt</code> returns true for that value.
<p>
For user convenience, we provide the function
<p>
<a name = "SSEC008.2"></a>
<li><code>ACEOptionData( </code><var>optname</var><code> ) F</code>
<p>
which for a string <var>optname</var> representing an <font face="Gill Sans,Helvetica,Arial">ACE</fontoption (or a guess
of one) returns a record with the following fields:
<p>
<p>
<dl compact>
<p>
<dt> <code>name</code>   <dd> <var>optname</var> (unchanged);
<p>
<dt> <code>known</code>  <dd> <code>true</code> if <var>optname</var> is a valid mixed case abbreviation
of a known <font face="Gill Sans,Helvetica,Arial">ACE</fontoption, and false otherwise;
<p>
<dt> <code>fullname</code><dd> the lower case unabbreviated form of <var>optname</var> if the
<code>known</code>  field  is  set  <code>true</code>,  or  <var>optname</var>  in  all  lower  case,
otherwise;
<p>
<dt> <code>synonyms</code><dd> a  list  of  known  <font face="Gill Sans,Helvetica,Arial">ACE</font>  options  synonymous  with
<var>optname</var>, in lowercase unabbreviated form, if the  <code>known</code>  field  is
set <code>true</code>, or a list containing just <var>optname</var>  in  all  lower  case,
otherwise;
<p>
<dt> <code>abbrev</code> <dd> the shortest lowercase abbreviation  of  <var>optname</var>  if
the <code>known</code> field is set <code>true</code>,  or  <var>optname</var>  in  all  lower  case,
otherwise.
<p>
</dl>
<p>
For more on synonyms of <font face="Gill Sans,Helvetica,Arial">ACE</font> options, see <a href="CHAP004.htm#SSEC010.1">ACEOptionSynonyms</a>.
<p>
The function <code>ACEOptionData</code> provides the  user  with  all  the  query
facility she should ever need; nevertheless, we provide the  following
functions.
<p>
<a name = "SSEC008.3"></a>
<li><code>IsKnownACEOption( </code><var>optname</var><code> ) F</code>
<p>
returns <code>true</code> if <var>optname</var> is a mixed case abbreviation of a field of
<code>KnownACEOptions</code>,           or           <code>false</code>           otherwise.
<code>IsKnownACEOption(</code><var>optname</var><code>);</code> is equivalent to
<p>
<code>ACEOptionData(</code><var>optname</var><code>).known;</code>
<p>
<a name = "SSEC008.4"></a>
<li><code>ACEPreferredOptionName( </code><var>optname</var><code> ) F</code>
<p>
returns the lowercase unabbreviated first alternative of <var>optname</var>  if
it is a known <font face="Gill Sans,Helvetica,Arial">ACE</fontoption, or  <var>optname</var>  in  lowercase,  otherwise.
<code>ACEPreferredOptionName(</code><var>optname</var><code>);</code> is equivalent to
<p>
<code>ACEOptionData(</code><var>optname</var><code>).synonyms[1];</code>
<p>
<a name = "SSEC008.5"></a>
<li><code>IsACEParameterOption( </code><var>optname</var><code> ) F</code>
<p>
returns true if <var>optname</var> is an ``<font face="Gill Sans,Helvetica,Arial">ACE</font> parameter  option''.  (<font face="Gill Sans,Helvetica,Arial">ACE</font>
Parameter Options  are  described  in  Section <a href="CHAP004.htm#SSEC012.1">ACEParameterOptions</a>).
<code>IsACEParameterOption(</code><var>optname</var><code>);</code> is equivalent to
<p>
<code>ACEPreferredOptionName(</code><var>optname</var><code>) in RecNames(ACEParameterOptions);</code>
<p>
<a name = "SSEC008.6"></a>
<li><code>IsACEStrategyOption( </code><var>optname</var><code> ) F</code>
<p>
returns true if <var>optname</var> is  an  ``<font face="Gill Sans,Helvetica,Arial">ACE</font>  strategy  option''  (see
Section <a href="CHAP004.htm#SECT009">The                ACEStrategyOptions                 list</a>).
<code>IsACEStrategyOption(</code><var>optname</var><code>);</code> is equivalent to
<p>
<code>ACEPreferredOptionName(</code><var>optname</var><code>) in ACEStrategyOptions;</code>
<p>
<p>
<h2><a name="SECT009">4.9 The ACEStrategyOptions List</a></h2>
<p><p>
<a name = "SSEC009.1"></a>
<li><code>ACEStrategyOptions V</code>
<p>
is a <font face="Gill Sans,Helvetica,Arial">GAP</font> list that contains  the  strategy  options  known  to  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface functions:
<p>
<pre>
gap> ACEStrategyOptions;
"default""easy""felsch""hard""hlt""purec""purer""sims" ]

</pre>
<p>
See Chapter <a href="CHAP005.htm">Strategy Options  for  ACE</a>  for  details  regarding  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> strategy options.
<p>
<p>
<h2><a name="SECT010">4.10 ACE Option Synonyms</a></h2>
<p><p>
<a name = "SSEC010.1"></a>
<li><code>ACEOptionSynonyms V</code>
<p>
is a <font face="Gill Sans,Helvetica,Arial">GAP</font> record. A number of known <font face="Gill Sans,Helvetica,Arial">ACE</font>  options  have  synonyms.
The fields of the <code>ACEOptionSynonyms</code>  record  are  the  ``preferred''
option names and the values assigned to the fields are  the  lists  of
synonyms  of  those  option  names.  What   makes   an   option   name
``preferred'' is somewhat arbitrary (in most cases, it is  simply  the
shortest of a list of  synonyms).  For  a  ``preferred''  option  name
<var>optname</var> that has synonyms, the complete  list  of  synonyms  may  be
obtained     by     concatenating     <code>[     </code><var>optname</var><code>     ]</code>      and
<code>ACEOptionSynonyms.(</code><var>optname</var><code>)</code>, e.g.
<p>
<pre>
gap> Concatenation( [ "messages" ], ACEOptionSynonyms.("messages") );
"messages""monitor" ]

</pre>
<p>
More generally, for an arbitrary option name  <var>optname</var>  its  list  of
synonyms (which may be a list of one element) may be obtained  as  the
<code>synonyms</code> field of the record returned by  <code>ACEOptionData(</code><var>optname</var><code>)</code>
(see <a href="CHAP004.htm#SSEC008.2">ACEOptionData</a>).
<p>
<p>
<h2><a name="SECT011">4.11 Non-ACE-binary Options</a></h2>
<p><p>
<a name = "SSEC011.1"></a>
<li><code>NonACEbinOptions V</code>
<p>
is a <font face="Gill Sans,Helvetica,Arial">GAP</font> list of options that have  meaning  only  for  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
Package interface, i.e. options in <code>KnownACEOptions</code>  that  are  <strong>not</strong>
<font face="Gill Sans,Helvetica,Arial">ACE</font> binary options; each such option is described in detail  below.
<strong>Except</strong> for  the  options  listed  in  <code>NonACEbinOptions</code>  and  those
options that are excluded via the <code>aceignore</code>  and  <code>aceignoreunknown</code>
options  (described  below),   <strong>all</strong>   options   that   are   on   the
<code>OptionsStack</code> when an <font face="Gill Sans,Helvetica,Arial">ACE</font> interface function is called, are passed
to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary. Even options that produce the  warning  message:
``<code>unknown (maybe new) or bad</code>'', by virtue of not being  a  field  of
<code>KnownACEOptions</code>, are passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary  (except  that  the
options <code>purer</code> and <code>purec</code> are first translated to <code>pure r</code> and <code>pure
c</code>, respectively). When the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary encounters an option that it
doesn't understand it issues a warning and simply ignores it; so
options accidentally passed to <font face="Gill Sans,Helvetica,Arial">ACE</font> are unlikely to pose problems.
<p>
We also mention here, since  it  is  related  to  an  option  of  this
section, the following.
<p>
<a name = "SSEC011.2"></a>
<li><code>ACEIgnoreUnknownDefault V</code>
<p>
is a global variable (<strong>not</strong> an option) that is initially  set  by  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> package to <code>true</code>, and is the default action that <font face="Gill Sans,Helvetica,Arial">ACE</font>  takes
for options that are unknown to the <font face="Gill Sans,Helvetica,Arial">ACE</font> package  (but  may  be  new
options provided in a new version of the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary).  Despite  the
fact that it is normally set <code>true</code>, it is recommended (especially for
the novice user of the <font face="Gill Sans,Helvetica,Arial">ACE</font> package) to set <code>ACEIgnoreUnknownDefault
:= false</code>; the worst that can happen is being annoyed by  a  profusion
of warnings of unknown options. For individual functions, the user may
use the option <code>aceignoreunknown</code> (see <a href="CHAP004.htm#SSEC011.10">option  aceignoreunknown</a>)  to
over-ride the setting of <code>ACEIgnoreUnknownDefault</code>.
<p>
Here now, are the  few  options  that  are  available  to  the  <font face="Gill Sans,Helvetica,Arial">GAP</font>
interface to <font face="Gill Sans,Helvetica,Arial">ACE</font> that have no counterpart in the <font face="Gill Sans,Helvetica,Arial">ACE</font> standalone:
<p>
<p>
<dl compact>
<p>
<dt><a name = "SSEC011.3"></a>
<dt><li><code>silent <dd></code>
Inhibits an <code>Error</code> return when generating a coset table.
<p>
If a coset  enumeration  that  invokes  <code>ACECosetTableFromGensAndRels</code>
does not finish within the preset limits, an error is  raised  by  the
interface to  <font face="Gill Sans,Helvetica,Arial">GAP</font>,  unless  the  option  <code>silent</code>  or  <code>incomplete</code>
(see <a href="CHAP004.htm#SSEC011.6">option incomplete</a>) has been set; in the former case, <code>fail</code>  is
returned.  This  option  is  included  to  make   the   behaviour   of
<code>ACECosetTableFromGensAndRels</code> compatible with that  of  the  function
<code>CosetTableFromGensAndRels</code> it replaces. If the option <code>incomplete</code> is
also set, it overrides option <code>silent</code>.
<p>
<dt><a name = "SSEC011.4"></a>
<dt><li><code>lenlex <dd></code>
Ensures that <code>ACECosetTable</code> and <code>ACECosetTableFromGensAndRels</codeoutput
a coset table that is <code>lenlex</code> standardised.
<p>
The  <code>lenlex</code>  scheme,  numbers  cosets  in  such  a  way  that  their
``preferred'' (coset) representatives, in an  alphabet  consisting  of
the user-submitted generators and their inverses,  are  ordered  first
according to <code>length</code> and then according to a <code>lexical</code>  ordering.  In
order to describe what the <code>lenlex</code> scheme's lexical ordering is,
let us consider an example. Suppose the generators  submitted  by  the
user are, in user-supplied order, <code>[x, y, a, b]</code>,  and  represent  the
inverses of these generators by the corresponding  uppercase  letters:
<code>[X, Y, A, B]</code>, then  the  <code>lexical</code>  ordering  of  <code>lenlex</code>  is  that
derived from defining <code>x < X < y < Y < a < A < b < B</code>.
<p>
<strong>Notes:</strong>
In  some  circumstances,  <font face="Gill Sans,Helvetica,Arial">ACE</font>  prefers  to  swap  the   first   two
generators;   such   cases    are    detected    by    the    function
<code>IsACEGeneratorsInPreferredOrder</code>                                 (see
<a href="CHAP001.htm#SSEC002.3">IsACEGeneratorsInPreferredOrder</a>). In such cases, special  action  is
taken to avoid <font face="Gill Sans,Helvetica,Arial">ACE</font> swapping the first two generators;  this  action
is   described   in   the   notes   for    <code>ACEStandardCosetNumbering</code>
(see <a href="CHAP006.htm#SSEC007.2">ACEStandardCosetNumbering</a>).  When  this   special   action   is
invoked, a side-effect is that any setting of the <code>asis</code>  (see <a href="CHAP004.htm#SSEC013.1">option asis</a>) option by the user is ignored.
<p>
The  <code>lenlex</code>  standardisation  scheme  is  the  default  coset  table
standardisation  scheme  of  <font face="Gill Sans,Helvetica,Arial">GAP</font>. Alternatively, <code>semilenlex</code> can
be used. Both schemes are described in detail in  Section <a href="CHAP003.htm#SECT004">Coset Table Standardisation Schemes</a>.
<p>
<dt><a name = "SSEC011.5"></a>
<dt><li><code>semilenlex <dd></code>
Ensures that <code>ACECosetTable</code> and <code>ACECosetTableFromGensAndRels</codeoutput
a coset table that is <code>semilenlex</code> standardised.
<p>
The <code>semilenlex</code> scheme, numbers cosets  in  such  a  way  that  their
``preferred'' (coset) representatives, in an  alphabet  consisting  of
only the user-submitted generators, are  ordered  first  according  to
<code>length</code> and then according to a <code>lexical</code> ordering.
<p>
<dt><a name = "SSEC011.6"></a>
<dt><li><code>incomplete <dd></code>
Allows the return  of  an  <code>incomplete</code>  coset  table,  when  a  coset
enumeration does not finish within preset limits.
<p>
If a coset enumeration that invokes <code>ACECosetTableFromGensAndRels</code>  or
<code>ACECosetTable</code> does not finish within the preset limits, an error  is
raised  by  the  interface  to  <font face="Gill Sans,Helvetica,Arial">GAP</font>,  unless  the  option  <code>silent</code>
(see <a href="CHAP004.htm#SSEC011.3">option silent</a>) or <code>incomplete</code> has  been  set;  in  the  latter
case, a partial coset table, that is a valid <font face="Gill Sans,Helvetica,Arial">GAP</fontlist of lists,  is
returned. Each position of the table  without  a  valid  coset  number
entry is filled with a zero. If  the  option  <code>silent</code>  is  also  set,
<code>incomplete</code>  prevails.  An  incomplete  table  is
returned reduced (i.e. with  insignificant  coset  numbers  ---  those
appearing only in their place of definition --- removed) and  <code>lenlex</code>
standardised (regardless of whether  the  <code>semilenlex</code>  option  is  in
force). When an incomplete table is  returned,  a
warning is emitted at <code>InfoACE</code> or <code>InfoWarning</code> level 1.
<p>
<dt><a name = "SSEC011.7"></a>
<dt><li><code>aceinfile:=</code><var>filename</var><code> <dd></code>
Creates an <font face="Gill Sans,Helvetica,Arial">ACE</fontinput file <var>filename</var> for use  with  the  standalone
only; <var>filename</var> should be a string. (Shortest abbreviation: <code>acein</code>.)
<p>
This option is only relevant to <code>ACECosetTableFromGensAndRels</code> and  is
ignored if included as an option for  invocations  of  <code>ACEStats</code>  and
<code>ACEStart</code>. If this option is used, <font face="Gill Sans,Helvetica,Arial">GAP</font> creates an input file  with
filename <var>filename</var> only, and then exits (i.e. the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  is
not called). This option is  provided  for  users  who  wish  to  work
directly with the <font face="Gill Sans,Helvetica,Arial">ACE</font> standalone. The full path to the  input  file
normally used by <font face="Gill Sans,Helvetica,Arial">ACE</font> (i.e. when option <code>aceinfile</code> is not used)  is
stored in <code>ACEData.infile</code>.
<p>
<dt><a name = "SSEC011.8"></a>
<dt><li><code>aceoutfile:=</code><var>filename</var><code> <dd></code>
Redirects <font face="Gill Sans,Helvetica,Arial">ACE</fontoutput to file <var>filename</var>;  <var>filename</var>  should  be  a
string. (Shortest abbreviation: <code>aceo</code>.)
<p>
This  is  actually  a  synonym  for  the  <code>ao</code>  option.  Please  refer
to <a href="CHAP004.htm#SSEC020.1">option ao</a>, for further discussion of this option.
<p>
<dt><a name = "SSEC011.9"></a>
<dt><li><code>aceignore:=</code><var>optionList</var><code> <dd></code>
Directs an <font face="Gill Sans,Helvetica,Arial">ACE</font> function to  ignore  the  options  in  <var>optionList</var>;
<var>optionList</var> should be a list of strings.
(Shortest abbreviation: <code>aceig</code>.)
<p>
If a function called with its own options, in  turn  calls  an  <font face="Gill Sans,Helvetica,Arial">ACE</font>
function for which those options are not intended, the <font face="Gill Sans,Helvetica,Arial">ACE</font> function
will pass those options to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary.  If  those  options  are
unknown to  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  interface  (and  <code>ACEIgnoreUnknownDefault  :=
false</code>      and      <code>aceignoreunknown</code>      is      not       passed;
see <a href="CHAP004.htm#SSEC011.2">ACEIgnoreUnknownDefault</a> and <a href="CHAP004.htm#SSEC011.10">option aceignoreunknown</a>) a warning
is issued. Options that are unknown to the <font face="Gill Sans,Helvetica,Arial">ACE</font>  binary  are  simply
ignored by <font face="Gill Sans,Helvetica,Arial">ACE</font> (and a warning that the option was  ignored  appears
in the  <font face="Gill Sans,Helvetica,Arial">ACE</font>  output,  which  the  user  will  not  see  unless  the
<code>InfoLevel</code> of <code>InfoACE</code> or <code>InfoWarning</code> is set to  1).  This  option
enables the user to avoid such  options  being  passed  at  all,  thus
avoiding the warning messages and also any options that coincidentally
are <font face="Gill Sans,Helvetica,Arial">ACE</font> options but are not intended for the <font face="Gill Sans,Helvetica,Arial">ACE</font> function  being
called.
<p>
<dt><a name = "SSEC011.10"></a>
<dt><li><code>aceignoreunknown <dd></code>
Directs an <font face="Gill Sans,Helvetica,Arial">ACE</font> function to ignore any  options  not  known  to  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface.
(Shortest abbreviation: <code>aceignoreu</code>.)
<p>
This option is provided for similar reasons to <code>aceignore</code>.  Normally,
it is safe to include it, to avoid aberrant warning messages from  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface. However, fairly obviously, it should not  be  passed
without a value (or set to <code>true</code>) in the situation where a new <font face="Gill Sans,Helvetica,Arial">ACE</font>
binary has been installed with new options that are not  listed  among
the fields of <code>KnownACEOptions</code>, which you intend to use. Omitting the
<code>aceignoreunknown</codeoption is equivalent to setting it to the value  of
<code>ACEIgnoreUnknownDefault</code> (see <a href="CHAP004.htm#SSEC011.2">ACEIgnoreUnknownDefault</a>); i.e. it  is
superfluous    if    <code>ACEIgnoreUnknownDefault    :=    true</code>    unless
<code>aceignoreunknown</code> is set to <code>false</code>.
<p>
<dt><a name = "SSEC011.11"></a>
<dt><li><code>acenowarnings <dd></code>
Inhibits the warning message ``<code>unknown (maybe new) or bad option</code>''
for options not listed in <code>KnownACEOptions</code>.
(Shortest abbreviation: <code>acenow</code>.)
<p>
This option suppresses the warning messages for  unknown  options  (to
the <font face="Gill Sans,Helvetica,Arial">ACE</font> interface), but unlike <code>aceignore</code>  and  <code>aceignoreunknown</code>
still allows them to be passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary.
<p>
<a name = "SSEC011.12"></a>
<dt><li><code>echo</code>
<dt><dt><li><code>echo:=2 <dd></code>
Echoes arguments and options (and indicates how options were handled).
<p>
Unlike the previous options of this  section,  there  <strong>is</strong>  an  <font face="Gill Sans,Helvetica,Arial">ACE</font>
binary option <code>echo</code>. However, the <code>echo</codeoption  is  handled  by  the
<font face="Gill Sans,Helvetica,Arial">ACE</font> interface and is not passed to the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary. (If you  wish
to put  <code>echo</code>  in  a  standalone  script  use  the  <code>aceecho</code>  option
following.) If <code>echo</code> is passed with the value 2 then a  list  of  the
options (together with their values) that are set via <font face="Gill Sans,Helvetica,Arial">ACE</font>  defaults
are also echoed to the screen.
<p>
<dt><a name = "SSEC011.13"></a>
<dt><li><code>aceecho <dd></code>
The <font face="Gill Sans,Helvetica,Arial">ACE</font> binary's echo command.
<p>
This option is only included so  that  a  user  <strong>can</strong>  put  an  <code>echo</code>
statement in  an  <font face="Gill Sans,Helvetica,Arial">ACE</font>  standalone  script.  Otherwise,  use  <code>echo</code>
(above).
<p>
<dt><a name = "SSEC011.14"></a>
<dt><li><code>aceincomment:=</code><var>string</var><code> <dd></code>
Print comment <var>string</var> in the <font face="Gill Sans,Helvetica,Arial">ACE</fontinput; <var>string</var> must be a string.
(Shortest abbreviation: <code>aceinc</code>.)
<p>
This option prints the comment <var>string</var> behind a sharp sign (<code>#</code>)  in
the input to <font face="Gill Sans,Helvetica,Arial">ACE</font>. Only useful  for  adding  comments  (that  <font face="Gill Sans,Helvetica,Arial">ACE</font>
ignores) to standalone input files.
<p>
<dt><a name = "SSEC011.15"></a>
<dt><li><code>aceexampleoptions <dd></code>
An <strong>internal</strongoption for <code>ACEExample</code>.
<p>
This option is passed  <strong>internally</strong>  by  <code>ACEExample</code>  to  the  <font face="Gill Sans,Helvetica,Arial">ACE</font>
interface function  it  calls,  when  one  invokes  <code>ACEExample</code>  with
options. Its purpose is to provide a mechanism for the over-riding  of
an example's options by the user. The option name is deliberately long
and has no abbreviation to discourage user use.
<p>
</dl>
<p>
<p>
<h2><a name="SECT012">4.12 ACE Parameter Options</a></h2>
<p><p>
<a name = "SSEC012.1"></a>
<li><code>ACEParameterOptions V</code>
<p>
is a <font face="Gill Sans,Helvetica,Arial">GAP</font> record, whose fields are the ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options''.
The ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options'' are options which, if not supplied  a
value by the user, are supplied a default value by  <font face="Gill Sans,Helvetica,Arial">ACE</font>.  In  fact,
the ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options'' are those options that appear  (along
with <code>Group Generators</code>, <code>Group Relators</code> and  <code>Subgroup  Generators</code>,
which are defined from <font face="Gill Sans,Helvetica,Arial">ACE</font> interface  function  arguments)  in  the
``Run Parameters'' block of <font face="Gill Sans,Helvetica,Arial">ACE</font>  output,  when,  for  example,  the
<code>messages</codeoption is non-zero.
<p>
For each field (<font face="Gill Sans,Helvetica,Arial">ACE</font> parameter option) of the  <code>ACEParameterOptions</code>
record, the value assigned is  the  default  value  (or  a  record  of
default values) that are supplied by <font face="Gill Sans,Helvetica,Arial">ACE</font> when  the  option  is  not
given a value by the user (either indirectly by selecting  a  strategy
option or directly).
<p>
In the cases where the value of a field of  the  <code>ACEParameterOptions</code>
record is itself a record, the fields of that record are <code>default</code> and
strategies for which the value assigned by that strategy differs  from
the <code>default</code> strategy. A ``strategy'', here, is the  strategy  option
itself, if it is only  a  no-value  option,  or  the  strategy  option
concatenated with any of its integer values  (as  strings),  otherwise
(e.g. <code>felsch0</code> and <code>sims9</code>  are  strategies,  and  <code>hlt</code>  is  both  a
strategy and a strategy option). As an exercise, the reader might like
to try to reproduce the table at the  beginning  of  Chapter <a href="CHAP005.htm">Strategy Options for ACE</a> using the <code>ACEParameterOptions</code>  record.  (Hint:  you
first need to select those fields of the <code>ACEParameterOptions</code>  record
whose values are records with at least two fields.)
<p>
<strong>Note:</strong>
Where  an  ``<font face="Gill Sans,Helvetica,Arial">ACE</font>  Parameter  Option''  has   synonyms,   only   the
``preferred'' option name (see <a href="CHAP004.htm#SSEC010.1">ACEOptionSynonyms</a>) appears as a field
of <code>ACEParameterOptions</code>. The  complete  list  of  ``<font face="Gill Sans,Helvetica,Arial">ACE</font>  Parameter
Options'' may be obtained by
<p>
<pre>
gap> Concatenation( List(RecNames(ACEParameterOptions),
>                        optname -> ACEOptionData(optname).synonyms) );
"path""subgroup""max""time""fill""ffactor""asis""ct"
  "cfactor""compaction""dmode""dsize""enumeration""hole"
  "lookahead""loop""mendelsohn""messages""monitor""no""pmode"
  "psize""rt""rfactor""row""workspace" ]

</pre>
<p>
We describe the ``<font face="Gill Sans,Helvetica,Arial">ACE</font> Parameter Options'' in the  Sections <a href="CHAP004.htm#SECT013">General ACE Parameter Options  that  Modify  the  Enumeration  Process</a>,  <a href="CHAP004.htm#SECT014">ACE Parameter Options  Modifying  C  Style  Definitions</a>,  <a href="CHAP004.htm#SECT015">ACE  Parameter Options for R Style Definitions</a>, <a href="CHAP004.htm#SECT016">ACE Parameter Options for Deduction Handling</a>, <a href="CHAP004.htm#SECT017">Technical ACE Parameter Options</a>, <a href="CHAP004.htm#SECT018">ACE  Parameter  Options controlling ACE Output</a>, and <a href="CHAP004.htm#SECT019">ACE Parameter Options that give Names to the Group and Subgroup</a>, following.
<p>
<p>
<h2><a name="SECT013">4.13 General ACE Parameter Options that Modify the Enumeration Process</a></h2>
<p><p>
<p>
<dl compact>
<p>
<dt><a name = "SSEC013.1"></a>
<dt><li><code>asis <dd></code>
Do not reduce relators. (Shortest abbreviation: <code>as</code>.)
<p>
By default, <font face="Gill Sans,Helvetica,Arial">ACE</font> freely  and cyclically reduces the relators, freely
reduces  the  subgroup generators,  and  sorts  relators and  subgroup
generators in length-increasing  order.  If you do not  want this, you
can switch it off by setting the <code>asis</codeoption.
<p>
<strong>Notes:</strong> As well as allowing you  to use the presentation <strong>as</strong> it <strong>is</strong>
given,  this  is  useful for  forcing  definitions  to  be made  in  a
prespecified  order,  by  introducing  dummy  (i.e.,  freely  trivial)
subgroup generators.   (Note that the  exact form of  the presentation
can  have a significant  impact on  the enumeration  statistics.)  For
some fine points of the influence of <code>asis</code> being set on the treatment
of involutory generators see the <font face="Gill Sans,Helvetica,Arial">ACE</font> standalone manual.
<p>
<a name = "SSEC013.2"></a>
<dt><li><code>ct:=</code><var>val</var><code></code>
<dt><a name = "SSEC013.2"></a>
<dt><li><code>cfactor:=</code><var>val</var><code> <dd></code>
Number of C style definitions per pass; <code></code><var>val</var><code></code> should be an  integer. 
(Shortest abbreviation of <code>cfactor</code> is <code>c</code>.)
<p>
The absolute value of <code></code><var>val</var><code></code> sets the number of C  style  definitions
per pass through the enumerator's main loop. The sign of val sets
the style. The possible combinations of the values of  <code>ct</code>  and  <code>rt</code>
(described below) are given in the  table  of  enumeration  styles  in
Section <a href="CHAP003.htm#SECT001">Enumeration Style</a>.
<p>
<a name = "SSEC013.3"></a>
<dt><li><code>rt:=</code><var>val</var><code></code>
<dt><a name = "SSEC013.3"></a>
<dt><li><code>rfactor:=</code><var>val</var><code> <dd></code>
Number of R style definitions per pass; <code></code><var>val</var><code></code> should be an  integer. 
(Shortest abbreviation of <code>rfactor</code> is <code>r</code>.)
<p>
The absolute value of <code></code><var>val</var><code></code> sets the number of R  style  definitions
per pass through the enumerator's main loop. The sign of val sets
the style. The possible combinations of the values of <code>ct</code>  (described
above) and <code>rt</code> are given  in  the  table  of  enumeration  styles  in
Section <a href="CHAP003.htm#SECT001">Enumeration Style</a>.
<p>
<dt><a name = "SSEC013.4"></a>
<dt><li><code>no:=</code><var>val</var><code> <dd></code>
The number of group relators to include in the subgroup;  
<code></code><var>val</var><code></code> should be an integer greater than or equal to −1.
<p>
It is sometimes helpful to include the group relators into the list of
the subgroup generators, in the sense that they are applied  to  coset
number 1 at the start of an enumeration. A value of 0 for this  option
turns this feature off and the (default) argument of −1 includes all
the relators. A positive argument includes  the  specified  number  of
relators,  in  order.  The  <code>no</code>  option  affects  only  the   C style
procedures.
<p>
<dt><a name = "SSEC013.5"></a>
<dt><li><code>mendelsohn <dd></code>
Turns on mendelsohn processing. (Shortest abbreviation: <code>mend</code>.)
<p>
Mendelsohn style processing during relator scanning/closing is  turned
on by giving this option. Off is the default, and  here  relators  are
scanned only from the start (and end) of a relator. Mendelsohn  ``on''
means that all  (different)  cyclic  permutations  of  a  relator  are
scanned.
<p>
The effect of Mendelsohn style processing  is  case-specific.  It  can
mean the difference between success or failure, or it can  impact  the
number of coset numbers required, or it  can  have  no  effect  on  an
enumeration's statistics.
<p>
<strong>Note:</strong> Processing all cyclic permutations of the relators can be very
time-consuming,  especially if  the  presentation is  large.  So,  all
other things being equal, the  Mendelsohn flag should normally be left
off.
<p>
</dl>
<p>
<p>
<h2><a name="SECT014">4.14 ACE Parameter Options Modifying C Style Definitions</a></h2>
<p><p>
<a name = "I2"></a>

The  next  three  options  are  relevant  only  for  making  <strong>C  style
definitions</strong> (see Section <a href="CHAP003.htm#SECT001">Enumeration Style</a>). Making definitions  in
style, that is filling the coset table line by line, it can be  very
advantageous to  switch  to  making  definitions  from  the  preferred
definition stack. Possible definitions  can  be  extracted  from  this
stack in  various  ways  and  the  two  options  <code>pmode</code>  and  <code>psize</code>
(see <a href="CHAP004.htm#SSEC014.2">option pmode</a> and <a href="CHAP004.htm#SSEC014.3">option psize</a>  respectively)  regulate  this.
However it should be clearly understood that  making  all  definitions
from a preferred definition stack one may  violate  the  condition  of
Mendelsohn's theorem, and the option fill (see option fill) can be
used to avoid this.
<p>
<p>
<dl compact>
<p>
<a name = "SSEC014.1"></a>
<dt><li><code>fill:=</code><var>val</var><code></code>
<dt><a name = "SSEC014.1"></a>
<dt><li><code>ffactor:=</code><var>val</var><code> <dd></code>
Controls the preferred definition strategy by setting the fill factor;
<code></code><var>val</var><code></code> must be a non-negative integer.
(Shortest abbreviation of <code>fill</code> is <code>fil</code>, and  shortest  abbreviation
of <code>ffactor</code> is <code>f</code>.)
<p>
Unless prevented by the fill factor, gaps of length one  found  during
deduction  testing  are  preferentially   filled   (see <a href="biblio.htm#Hav91"><cite>Hav91</cite></a>).
However, this potentially violates the  formal  requirement  that  all
rows in the coset table are eventually filled (and tested against  the
relators). The fill factor  is  used  to  ensure  that  some  constant
proportion of the coset table is always kept filled. Before defining a
coset number to fill a  gap  of  length  one,  the  enumerator  checks
whether <code>fill</code> times the completed part of the table is at  least  the
total size of the table  and,  if  not,  fills  coset  table  rows  in
standard order (i.e. C style; see Section <a href="CHAP003.htm#SECT001">Enumeration Style</a>) instead
of filling gaps.
<p>
An  argument of  0  selects  the default  value  of ⎣5(<i>n</i>+2)/4 ⎦,  where <i>n</i>  is the  number of  columns in  the  table.  This
default  fill factor  allows  a moderate  amount  of gap-filling.   If
<code>fill</code> is  1, then there is  no gap-filling.  A large  value of <code>fill</code>
can cause  what is in effect  infinite looping (resolved  by the coset
enumeration failing).   However, in general,  a large value  does work
well.  The  effects of the various gap-filling  strategies vary widely.
It is  not clear  which values are  good general defaults  or, indeed,
whether any strategy is always ``not too bad''.
<p>
This option is identified as <code>Fi</code>  in  the  ``Run  Parameters''  block
(obtained when <code>messages</code> is non-zero) of the <font face="Gill Sans,Helvetica,Arial">ACE</fontoutput, since for
the <font face="Gill Sans,Helvetica,Arial">ACE</font> binary, <code>fi</code> is an allowed abbreviation of <code>fill</code>. However,
<code>fi</code> is a <font face="Gill Sans,Helvetica,Arial">GAP</font> keyword and so the shortest  abbreviation  of  <code>fill</code>
allowed by the interface functions is <code>fil</code>.
<p>
<dt><a name = "SSEC014.2"></a>
<dt><li><code>pmode:=</code><var>val</var><code> <dd></code>
Option for preferred definitions; <code></code><var>val</var><code></code> should  be  in  the  integer
range 0 to 3. (Shortest abbreviation: <code>pmod</code>.)
<p>
The  value of  the  <code>pmode</codeoption  determines  which definitions  are
preferred.  If  the argument is  0, then Felsch style  definitions are
made using  the next empty table  slot.  If the  argument is non-zero,
then gaps of length one found during relator scans in Felsch style are
preferentially  filled  (subject to  the  value  of  <code>fill</code>).  If  the
argument  is 1,  they are  filled  immediately, and  if it  is 2,  the
consequent deduction  is also made  immediately (of course,  these are
also put on the deduction stack).  If the argument is 3, then the gaps
of length one are noted in the preferred definition queue.
<p>
Provided such a gap survives (and no coincidence occurs, which  causes
the queue to be discarded) the next coset number will  be  defined  to
fill the oldest gap of length one. The default value is either 0 or 3,
depending on the strategy selected (see Chapter <a href="CHAP005.htm">Strategy Options  for ACE</a>). If you want to know more details, read the code.
<p>
<dt><a name = "SSEC014.3"></a>
<dt><li><code>psize:=</code><var>val</var><code> <dd></code>
Size of preferred definition queue; <code></code><var>val</var><code></code> <strong>must</strong> be 0 or 2<sup><i>n</i></sup>,  for
some integer <i>n</i> > 0. (Shortest abbreviation: <code>psiz</code>.)
<p>
The  preferred definition  queue is  implemented as  a  ring, dropping
earliest entries. An argument of 0 selects  the default size of 256.
Each  queue slot takes two words (i.e., 8 bytes),  and the  queue  can
store up to 2<sup><i>n</i></sup>−1 entries.
<p>
</dl>
<p>
<p>
<h2><a name="SECT015">4.15 ACE Parameter Options for R Style Definitions</a></h2>
<p><p>
<a name = "I3"></a>

<p>
<dl compact>
<p>
<dt><a name = "SSEC015.1"></a>
<dt><li><code>row:=</code><var>val</var><code> <dd></code>
Set the ``row filling'' option; <code></code><var>val</var><code></code> is either 0 or 1.
<p>
By default, ``row filling'' is on (i.e. <code>true</code> or 1). To turn  it  off
set <code>row</code> to <code>false</code> or 0 (both are translated to 0 when passed to the
<font face="Gill Sans,Helvetica,Arial">ACE</font>  binary).  When   making   HLT   style   (i.e. R   style;   see
Section <a href="CHAP003.htm#SECT001">Enumeration Style</a>) definitions, rows of the coset table  are
scanned for holes after its coset  number  has  been  applied  to  all
relators, and definitions are made to fill any holes encountered. This
will,  in  particular,  guarantee  fulfilment  of  the  condition   of
Mendelsohn's Theorem. Failure to do so can cause even simple
--> --------------------

--> maximum size reached

--> --------------------

99%


¤ Dauer der Verarbeitung: 0.25 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

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 ist noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Software

     Produkte
     Quellcodebibliothek

Aktivitäten

     Artikel über Sicherheit
     Anleitung zur Aktivierung von SSL

Muße

     Gedichte
     Musik
     Bilder

Jenseits des Üblichen ....

Besucherstatistik

Besucherstatistik

Monitoring

Montastic status badge