Eine aufbereitete Darstellung der Quelle

 
     
 
 
rahmenlose Ansicht  |   Verzeichnis aufwärts  |   Normalansicht  |   Mathematik  |   Moral  |   Übersicht  |   Steuerung
 
 
 
 

Benutzer

Quelle  chap78_mj.html   Sprache: HTML

 

 products/Sources/formale Sprachen/GAP/doc/ref/chap78_mj.html




<!DOCTYPE html java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
         "=">GAP (ref) - :  />

< ==Gjava.lang.StringIndexOutOfBoundsException: Range [44, 43) out of bounds for length 47
<>
<script type="text/span
  src=https:cdn.net/npm/athjax@/MathJax.s?=TeX-AMSjava.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 59
scriptjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
title>src="manual.js" type" type=="ext/avascript"span class="ContSS"><br /><span class" &nbsp;/span< href"chap78_mj.tmlX838E29D485D2BAB9"7813ShowDeclarationsOfOperation</a></span>
<meta >
<meta name="generator" content="GAPDoc2HTML" />
<link rel=stylesheet type="text/css" href=span class="ContSS"><br />span class="nocss">  </span><a<span class"ContSS">br/<span class=nocss" <
<cript ="anual..s"type=t/javascript>/cript>
<script type="text/javascript">overwriteStyle();</script>
</head>
<div ="ContSSBlock">


<div=chlinktop><pan = class=ContSS"br/><span class=nocss">  </span><a href="chap78_mj.html#X7EB6830886F62CC0"/div>/div>

<div class="iv class="ChapSects"><a href="chap78_mj.html#X8058CC8187162644"><span>

<p id="<span class="ContS"br>spanjava.lang.StringIndexOutOfBoundsException: Range [0, 38) out of bounds for length 25
<aid=X8058CC8187162644name"8058"<a<>
<div class="ChapSects"><a href<panclass="</<span ="&sp&<panjava.lang.StringIndexOutOfBoundsException: Range [74, 73) out of bounds for length 142
<div /div><div>
/span>
<div<span class"">br/<pan<=tocline"<span class="css>nbsp;/pan>a =chap78_mj.html#X851FC6387CA2B241">78.4 <span
>r>pan ="css">nbsp&bsp<span>a href=hap78_mj.tml#X874C7C6D8650D6481 IsOperation/a><span
<java.lang.StringIndexOutOfBoundsException: Range [11, 5) out of bounds for length 142
<pan="ontSS"<br/<span class=nocss> &bsp<span>
<div class="ContSSBlock">
<span class="ContSS<=><br />span class="nocss">  <span>
 >span=ocss&;&;/>a=".tmlX799081"781- spanclass"eading"TagBasedOperations/spanjava.lang.StringIndexOutOfBoundsException: Index 169 out of bounds for length 169
<span>
</div></div>
<div pan ="ntSS"<br/span "nocss"nbsp /span>ahref=chap78_mj.html#783FA45E7858A8CF>78.2- NewConstructora><java.lang.StringIndexOutOfBoundsException: Range [0, 140) out of bounds for length 7

<div class="ContSSBlock">
<span class<div</div>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap78_mj.html#X7EB6830886F62CC0div ="ontSect"<span ="ocline"><span class="nocss"> </span><a href="chap78_mj.html#X795EE8257848B438">78.3 </span>span class="ontSS">br />span class=nocss"> &;<div class="ontSSBlock">
</div></div>
<div class="ContSect"><span class="tocline"><<span>
</span<class""<br/<span class=java.lang.StringIndexOutOfBoundsException: Range [47, 45) out of bounds for length 144
<class=ContSSBlock<classContSS>br/spanclassn>;bsp/span<href=chap78_mjhtmlX7B26BDF68754DF7A>.- SuspendMethodReordering/
<span/>div
<span<iv class=ContSect"java.lang.StringIndexOutOfBoundsException: Range [2, 1) out of bounds for length 7
<panclass="ontSS"< /<spanclass=nocss"> <span>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
< class=C<div>/iv
<< class""<span class=tocline<class=nocss"&;/span>< href="hap78_mj.#X7B85DD797A907106"786 <="eading"Redispatching/span>/a>
<div div classContSSBlock>
/span>
<=ContSect>class""<span class=java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
<.html#X846865A681D4A623">78.5 < class="eading"Partial Methods<span</>
</spanclass=ContSS"< /><pan class=nocss"&bsp;n<span>ajava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 0
<div class="ContSSBlock">
<span class=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
</div></div>
<ivclass=ContSect"><span class="tocline"></>
</pan
<div class="ContSSBlock">< class=ContSS"</>java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
<="chap78_mj.html#7D4A46CE7BCFCCF5".-RedispatchOnCondition/<pan
</div></div>
<div class="ContSect/div>/>
<pan>
div <p>On the  hand perationsmoreNamelyaoperation correspondstoa  trong class=pkgGAP/>functions,calledthe emjava.lang.StringIndexOutOfBoundsException: Range [155, 154) out of bounds for length 181
span class=ontSS>br/<span =nocss"&;nbsp;/>< href=chap78_mj.html#87B47AC0849611F8"787<
< ="> /<pan =nocss"<
<div</>
<div class="ContSect"><spanjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
</span>
<div class="ContSSBlock">
<java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0
<"n;nbsp</span>a href=chap78_mj.html#X7B26BDF68754DF7A">78.8-2 SuspendMethodReordering</a></span>
</div></div>
<div class="ContSect<t; "MinimalPolynomialjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
<span
</java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
<> the other

<h3>78 <panclass=Heading>ethodSelectionspan

<p>This chapter explains how(n )..

<p>An <em>operation</em> is a special <java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 5

<p>All methods of an operation compute the same result. But each method is installed id"813"ame"813BE52887A3E0FA"a>/

<p>If an operation

<>pecial stringfrom the list  =ode["" "peration""roperty,ategory,"presentation,Filter,Setter<>reflectingwhichjava.lang.StringIndexOutOfBoundsException: Range [172, 171) out of bounds for length 218

<p<>see< =c.#CC6903E78F24167>span class=>.<span>/>, < href".htmlX8698205F8648EB33"<java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<h4>78.1 <span class="Heading">Operations and Methods</span></java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0

<pjava.lang.StringIndexOutOfBoundsException: Range [4, 5) out of bounds for length 0

<p>Soclass

<p>Onp> information aboutall <panclass=APprompt"&;/pan>span class=APinput"IsOperation(Factorial;/pan

<<an class=APprompt"&;/pan><java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 107

p>< declarations for operation <Property "IsFinite">

<p>Also all attributes and properties areoperations.Each  has java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 70

<p>The setter java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<p><a java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<h5>78.1-1 IsOperation</h5>

<div ="unc"<tableclass=f
<p>is thediv class=func><code class="func">NewOperation>eturns operation< =rg"pr/ with name var ">ame/>The  varclass""-<var>escribes requirementsaboutthe argumentsof var ="g<ar> thenumberof argumentsmustbe   the length<ar class"rg"args-<> and the <spanjava.lang.StringIndexOutOfBoundsException: Range [363, 362) out of bounds for length 501


<div class="example"><pre>
<span class="
&t; "MinimalPolynomial">
<span class="GAPprompt">gap></span> <span class="GAPinput<spanjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
rue
<spanjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
true
an =java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
function  3: GAPROOT//ctblgd: with argument,and  [IsNearlyCharacterTable ]
< ="java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 12
false
<=unc> f"=100>r>d =" java.lang.StringIndexOutOfBoundsException: Range [87, 85) out of bounds for length 258

<p><a id="X813BE52887A3E0FA" name="X813BE52887A3E0FA"></a></p>

<h5><>codeclass="unc"NewOperation/code returnsanoperation"rg"opr/ar>

<div class="func"><table class="func" width="100
<returns stringfromthe list < class=code>[Attribute peration""roperty," "epresentation,"ilter" "Setter"<code reflectingwhich typeofoperation var class=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>(see <a href="java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<p><a id="X838E29D485D2BAB9" namedoes same asjava.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 290

<h5>78.1-3 ShowDeclarationsOfOperation</h5>

<java.lang.StringIndexOutOfBoundsException: Range [0, 4) out of bounds for length 0
<>isplays informationabout all declarations of the<p>Displays information about all declarations of the operation


<div class="example
<pan class=GAPprompt
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  lipThe java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  2:/li
  3ivclass=func"table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ 
<pre<div

<>a id=X<>ypical use casesfor  basedoperations are that shall create objects in particular internal representations; the filters that define these java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<h5>78.1-4 NewOperation</h5>

<iv class=
p<ode class="func">NewOperation</code> returns an operation <var class="li<>The method

<

<p>ne caninstallli><p>If none of thebased class="Arg"oper/ar> has a <var class="Arg"tag>that is identical with the first argument of the<

<>< id"X843F48137B899BC3" name="X843F48137B899BC3"></a></p>

<java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code classspanclass=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<>doesthe  as<code class="unc"NewOperation</ode>(ahref=chap78_mj.html#X85A9E019795B79D6"><span class="RefLink">78.1-4<<span class="GAPprompt">gap></span> <java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 0

<p><a id="X799081B4854DC003" name="X799081B4854DC003"></a></p>

<<h5

<div class="func"><table <pc group of size 3 with 1>
<iv class="func"><table class=func"width="00%><tr<td class=tdleft"><code class="func">‣ DeclareTagBasedOperation</code>( <var class<ym( [1..3 ])
<div class=<lt;ull transformationmonoid of degree < class=APprompt>apgt;span <span classGAPinput"DeclareConstructor("XCons",[IsMagma,IsInt]);</span>
<><de class="unc>ewTagBasedOperation</code> returns an operation with name <var class="Arg">name</var> that is declared as <em>tag based</em> w.r.t. the list <var class="Arg">java.lang.StringIndexOutOfBoundsException: Index 187 out of bounds for length 86

<p><code class="func"&tspan classGAPprompt">gap></span> <span class="GAPinput">InstallMethod(XCons, [IsSemigroup, IsInt]pre></div>

<p>Declaring the operation<


<<pan class="GAPprompt">gap></span> <span class="GAPinput">XCons(IsPermGroup
i>p> method <ar class="rg>eth</var> is applicable  the first argument of the call to <var class="Arg">oper</var> is identical (in the sense <panclass="GAPprompt">gap></<full transformation monoid of deg 4gtjava.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46

</li>
<li><p>If none of the tag based methods for <var class="Arglt;&;full transformation monoid of degree 3>

</li>
<ul
<p>Thusspan class=GAPbrkprompt">brk></span> <span class="java.lang.StringIndexOutOfBoundsException: Index 61 out of bounds for length 0

<p>Typical use cases 

<>Currently  itis  todeclare an operation as tag based only for <em>one</em> list of requirementsError,nomethod found!For spanclass="GAPprompt">gap></span> <span class="GAPinput">XCons(java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72

<p>methods with <code class="<function "HANDLE_METHOD_NOT_FOUND">( arguments>)

<p>oucan ';'to toouter loop,or

<h4>78<span class="APbrkprompt">brk></span>

<p>Constructorsare a special type of operation used to make newyoucan 'eturn; to continue

<p>Also, method ranking works differently: instead of the sum of the ranks of the java.lang.StringIndexOutOfBoundsException: Index 84 out of bounds for length 0


<div class="exampleError, no method found! For debugging hints java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0
span<span ==GPinput>eclareConstructor("XCons",[IsMagma,IsInt]);</span>
<span class
s="g;/>span=APinput>XCons ,sInt(t,x) return SymmetricGroup(x); end);</span>
<span class="GAPprompt">gap><<called calledfrom read-eval loop atr/ode>returns a constructor <var class="Arg">cons</var> with name <java.lang.StringIndexOutOfBoundsException: Range [0, 108) out of bounds for length 0
<span class="GAPprompt">gap></span> <java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 41
&t</iv>
<span
Sym<>he  rankamethod installed a constructor  is determined solely by <ar ="rg"args-</var<span
<span class="GAPprompt">gap>p> has the followingeffects on the<
&java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
ssfunccodereturns java.lang.StringIndexOutOfBoundsException: Range [67, 65) out of bounds for length 753
< class"Pprompt"ap&<span<spanclass=GAPinput>XCons3;/span
<full transformation monoid of degree 3>
</pre></DeclareFilte("IsMyObj")

<p>The

<java.lang.StringIndexOutOfBoundsException: Range [15, 2) out of bounds for length 130


<div class=
<java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
Error hints type?ecovery from NoMethodFound
Error, no 1st choice method found for `XCons' on 2 arguments called java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
<[IsMyObj ]
 -eval loop at line 8 of *stdin*
you can 'quite;
you can t    
<spantype: NewType MyFamily,IsMyObj  ;
< =APprompt>&<>pan=APinput>(sNilpotentGroup4;spanjava.lang.StringIndexOutOfBoundsException: Index 95 out of bounds for length 95
Error, method!Fordebugginghints type ?    type = MyFamily IsMyObj andIsMyFilter  IsMyOtherFilter )
ror,o choice methodfound for`'   arguments called from
&(filter )re>>
 Print
you  'uit'toquit  outer,or
you can 'java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 0
span class=GPbrkprompt"rkt</span>
</>

<p> that both  cases there are methods

<java.lang.StringIndexOutOfBoundsException: Range [8, 2) out of bounds for length 62

<h5>78Specialconstructor

<java.lang.StringIndexOutOfBoundsException: Range [10, 4) out of bounds for length 259
<ode class=unc>NewConstructor<code> aconstructor <var class="Arg">cons</var> with name <java.lang.StringIndexOutOfBoundsException: Index 107 out of bounds for length 33

<p>Each method that

<p>Onedivclass=example><re

<p>Note h578. DeclareConstructor</h5>

<p

pspanclass=APprompt"gap&;span <panclass="GAPinput">IsMyOtherFilter(a);</span>

p><thatfor which areconstructorsjava.lang.StringIndexOutOfBoundsException: Range [59, 58) out of bounds for length 283


<div class="example"><pre>
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
h4>78.3 <span class="Heading
DeclareFiltersMyOtherFilter)
BindGlobal( "java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 0

DeclareConstructor( "NewMyObj", [ IsMyObj ] );

InstallMethod( NewMyObj,
[ IsMyObjtrue
ion(filter )
    java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
    Print("General constructor\n");
    type := NewType( MyFamily, IsMyObj     
    return Objectify type,[);
endjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
InstallMethod
<iv ="unc"<tableclass=func"width"100"<>td tdleft"<code class="func"&#227;div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">‣ InstallMethod="rg>opr</ar>[ var class"">info</var>], <ar =Arg"famp>,<class="Arg">p>does the same as <code class="func">NewConstructor</code> (<a href="chap78_mj.html#X783FA45E7858A8CF"><span class="RefLink">78.2-1</span></a>) and then binds the result to the global variable <var class="Arg">name</var>. The variable<p
unction filterjava.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
    local type;
    Print("Special constructor\n");
    type := NewType( MyFamily, IsMyObj and IsMyFilter
    return Objectify type,[ ;
end );
</

<p


divorder describe  method of an operation,we  how the areconnected totheir operations.</p
<span class
<p> id"java.lang.StringIndexOutOfBoundsException: Range [0, 27) out of bounds for length 0
<span declaring that a  isimplied byother filters  is <ode class==func"<p>For declaring that a filter is implied by other filters there is <code class="func">InstallTrueMethod class="unc>tableclass=func width="100%><>td ="dleft>java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<span class="GAPprompt">gap></span> <span class="GAPinput">b := NewMyObj( IsMyObj and 
Special constructor
<span class="GAPprompt
rue
<java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
Special Special constructor
<panclass=GAPprompt">gap></span> <span class="GAPinput">IsMyOtherFilter(c);</span>
true
</</pre="func><table class="func" width="100%"><

<<

<h5<>he defaultvaluesfor < class="rg>info<var> <ar class="Arg">famp</var>, and <var class="Arg">val</var> are the empty string, java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<="func"<table class="func" widthjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<p>does

p operations whichareconstructorsspecial rules respect toapplicabilityandrank ofmethods see section< =func>/ < hrefc.#783FA45E7858A8CF"><span class="RefLink">78.21</span>/a><p>installs a   var =">ethod<var  the <var=Arg>pr/var>  the sameway as  <codeclass="func">InstallMethod</code> (<a href="chap78_mj.html#X837EFDAB7BEF290B"><span class="RefLink">78.3-1</span></a>), but 

<p><a id="X795EE8257848B438" name="X795EE8257848B438"></a></p>

<h4>78.3 <span class="Heading">Method Installation</span></p>installs a special "early" function method <var class="Arg> for the operation"rg><

<p>In p>Thisjava.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0

<p>For attributes and properties there is <code class="func">InstallImmediateMethodjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>For declaring that a filter is implied<>A method <p>A method installed

p<a id=X837EFDAB7BEF290B"name="X837EFDAB7BEF290B"></a></p>

<h5java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<div class="func><table class="unc width=100"<tr
<p>installs a function method <var <iv class="func"<tableclass="unc width="100%"><tr><td class="tdleft"><code class

<p>The default values for <var class="Arg">info</var>, <var class="Arg">java.lang.StringIndexOutOfBoundsException: Index 74 out of bounds for length 0

<p>The exact meaningof the arguments <var class=Arg>famp</ar, <var class=Arg">args-filts</var>, and <var class=

<p><var class="Arg">opr</var> expects its methods<

p> id=XD2C12DB841CE539"ame"X7D2C12DB841CE539">/a>/p>

<h5>78.3-2 h4>78.4 <span classHeading<li

<div class="


<p><a java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0

<h5java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<div classp>otethatforoperations which areconstructors rules java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0
<a special ""function method var class=Arg>method<var>for  operation <ar class=Arg"opr/var>.An  early method is special in that it bypasses method dispatch, and is always the first java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>This can be used to avoid method selectionli<p>If<varclass="Arg">val</var> is an java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 0

<p>Also<p><a id

<p>If anearly method determines thatitis notli>pIf <var class="Arg">val</var> is a list of the form <code class="code">[ filters

<p>For an exampleAfter a method has

<p><java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<5>78.3-4 InstallMethodWithRandomSource</h5

<div class="func<Ofcourse java.lang.StringIndexOutOfBoundsException: Range [0, 18) out of bounds for length 0
<div<< id"7B85DD797A907106"name=X7B85DD797A907106"></a></p>
<p>These java.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 0

<p>java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 0

<p>function  installs two methods: first it calls <code class="func">InstallMethod</code calls 

<java.lang.StringIndexOutOfBoundsException: Range [0, 2) out of bounds for length 0

<.spanH"Applicable  and Method</>/>

<p>A

<

<="Arg>args-filt> describes conditions for each argument, and <var class="Arg

<p>pForattributesandproperties  caninstall<immediate methods

<p

<

<>,theapplicable java.lang.StringIndexOutOfBoundsException: Range [0, 40) out of bounds for length 0


<ul>
<li>

</li>
<">val

</li>
<> arethoughtas  forobjectsgainknowledge notbeto the< informationq  anobject other,java.lang.StringIndexOutOfBoundsException: Range [203, 202) out of bounds for length 515

</li>
</ul>
<p>So the 

<p>Note that for operations which are constructors special <p>This function installs a method for the operation <var class=

<p>Note that

mpossible for <strong class="pkg">GAP</strong> to select an optimal method in all casesjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p

<p>Of

<p<java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<h4>78.5 <span>  "java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 631

<p><a id="X7EED949B83046A7F" name=

<h5>78.5-1 TryNextMethod</h5>

<iv class="unc">table class="func" width="100%"><tr>
<p

<p>In effect, the execution of the method is terminated,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>Care is needed if a partial method might modify the 

<p><a id="java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 0

<h4>78.6 <span class="Heading">Redispatching</span></h4>

<p>As mentioned above thejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<>neway tojava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 429

<p>A much better way is to use redispatching: Before deciding that no method has been found one tests these java.lang.StringIndexOutOfBoundsException: Index 115 out of bounds for length 0

<p>This can be

<Injava.lang.StringIndexOutOfBoundsException: Range [19, 17) out of bounds for length 57

<h5>78.6-1 RedispatchOnCondition</h5>

<div class="func"><table class="func" width="100%"><tr><td java.lang.StringIndexOutOfBoundsException: Range [0, 64) out of bounds for length 0
  methodthe  < ="rg"oper/ under  conditions <arclass=Arg"fampred/var>and < class="Arg></ar> which has absolute value <var>Itmayhappen that afilter varclass=Argnewfil/var>shall  implied by anotherfilter class=Arg>filt<var>,which isusually   meet of otherproperties,or the meet  someproperties and some categories.Suchlogical  installed asan<qimmediate method</q> for <var class="Arg">newfil</var> that requires <var class="Arg">filt</var> and that always returns <code class="keyw">true</code>. (This should not be mixed up 

<p><a id="X87D38D2584D0A8AF" name="X87D38D2584D0A8AF"

<h4>78.7 <span

<p><4>8.9  <panclass="Heading"Operations and java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 0

<p>For attributes and properties, one can java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0

<p><a id

<h5>78.7-1 InstallImmediateMethod

<div class="func"><table class="java.lang.StringIndexOutOfBoundsException: Index 34 out of bounds for length 0
<><</code> installsvar ="Arg">method<var>as immediate method for <var class="Arg">opr</var>, which must be an attribute or a property, with requirement <var class="Arg">div =func"<>q>mbiguous</q> operations such as <code class="code">Rank</code> are declared in the library file <code java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0

<p>An immediate method is called automatically as soon as the object lies in <var class="Arg">filter</var>, provided that the value is not yet known.java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>Note the difference to <code class="func">InstallMethod</code> (<a href="chap78_mj.html#X837EFDAB7BEF290B"><span class="RefLink">78.3-1</span></a>) that no family predicate

<p>Immediate methods are thought of as a possibility for objects to gain useful knowledge

<p>Note

<p>

<p>Another example would be the implementationof the conclusion that every finite group of prime power order is nilpotent. This could be done by installing an immediate method for the attribute <code<

<p><a id="X80C3A19E7B99BB41" name="X80C3A19E7B99BB41"></a></p>

<h5>< class="oot>generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsNoImmediateMethodsObject</code>( <var class="Arg">obj</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>If this filter is set immediate methods will be ignored for <var class="Arg">obj</var>. This can be crucial for performance for objects like pcgs (see Section <a href="chap45_mj.html#X7F18A01785DBAC4E"><span class="RefLink">45.1</span></a>), of which many are created, which are collections, but for which all those immediate methods for <code class="func">IsTrivial</code> (<a href="chap30_mj.html#X7E3402D6799D3C24"><span class="RefLink">30.4-3</span></a>) et cetera do not really make sense. Other examples of objects in <code class="func">IsNoImmediateMethodsObject</code> are compressed vectors and matrices over small finite fields, see the sections <a href="chap23_mj.html#X8679F7DD7DFCBD9C"><span class="RefLink">23.3</span></a> and <a href="chap24_mj.html#X873822B6830CE367"><span class="RefLink">24.14</span></a>.</p>

<p><a id="X7FB5016E83DB4349" name="X7FB5016E83DB4349"></a></p>

<h4>78.8 <span class="Heading">Logical Implications</span></h4>

<p><a id="X860B8B707995CFE3" name="X860B8B707995CFE3"></a></p>

<h5>78.8-1 InstallTrueMethod</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; InstallTrueMethod</code>( <var class="Arg">newfil</var>, <var class="Arg">filt</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>It may happen that a filter <var class="Arg">newfil</var> shall be implied by another filter <var class="Arg">filt</var>, which is usually a meet of other properties, or the meet of some properties and some categories. Such a logical implication can be installed as an <q>immediate method</q> for <var class="Arg">newfil</var> that requires <var class="Arg">filt</var> and that always returns <code class="keyw">true</code>. (This should not be mixed up with the methods installed via <code class="func">InstallImmediateMethod</code> (<a href="chap78_mj.html#X87B47AC0849611F8"><span class="RefLink">78.7-1</span></a>), which have to be called at runtime for the actual objects.)</p>

<p><code class="func">InstallTrueMethod</code> has the effect that <var class="Arg">newfil</var> becomes an implied filter of <var class="Arg">filt</var>, see <a href="chap13_mj.html#X84EFA4C07D4277BB"><span class="RefLink">13.2</span></a>.</p>

<p>For example, each cyclic group is abelian, each finite vector space is finite dimensional, and each division ring is integral. The first of these implications is installed as follows.</p>


<div class="example"><pre>
InstallTrueMethod( IsCommutative, IsGroup and IsCyclic );
</pre></div>

<p>Contrary to the immediate methods installed with <code class="func">InstallImmediateMethod</code> (<a href="chap78_mj.html#X87B47AC0849611F8"><span class="RefLink">78.7-1</span></a>), logical implications cannot be switched off. This means that after the above implication has been installed, one can rely on the fact that every object in the filter <code class="code">IsGroup and IsCyclic</code> whose type gets created after the installation of the implication will also be in the filter <code class="func">IsCommutative</code> (<a href="chap35_mj.html#X830A4A4C795FBC2D"><span class="RefLink">35.4-9</span></a>). In particular, it may happen that an object which existed already before the installation of the implication lies in <code class="code">IsGroup and IsCyclic</code> but not in <code class="func">IsCommutative</code> (<a href="chap35_mj.html#X830A4A4C795FBC2D"><span class="RefLink">35.4-9</span></a>). Thus it is advisable to install all implications between filters before one starts creating (types of) objects lying in these filters.</p>

<p>Adding logical implications can change the rank of filters (see <code class="func">RankFilter</code> (<a href="chap13_mj.html#X82E62B997C05E05E"><span class="RefLink">13.2-1</span></a>)) and consequently the rank, and so choice of methods for operations (see <a href="chap78_mj.html#X851FC6387CA2B241"><span class="RefLink">78.4</span></a>). By default <code class="func">InstallTrueMethod</code> adjusts the method selection data structures to take care of this, but this process can be time-consuming, so functions <code class="func">SuspendMethodReordering</code> (<a href="chap78_mj.html#X7B26BDF68754DF7A"><span class="RefLink">78.8-2</span></a>) and <code class="func">ResumeMethodReordering</code> (<a href="chap78_mj.html#X7B26BDF68754DF7A"><span class="RefLink">78.8-2</span></a>) are provided to allow control of this process.</p>

<p><a id="X7B26BDF68754DF7A" name="X7B26BDF68754DF7A"></a></p>

<h5>78.8-2 SuspendMethodReordering</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; SuspendMethodReordering</code>(  )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ResumeMethodReordering</code>(  )</td><td class="tdright">( function )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ResetMethodReordering</code>(  )</td><td class="tdright">( function )</td></tr></table></div>
<p>These functions control whether the method reordering process described in <code class="func">InstallTrueMethod</code> (<a href="chap78_mj.html#X860B8B707995CFE3"><span class="RefLink">78.8-1</span></a>) is invoked or not. Since this process can be comparatively time-consuming, it is usually suspended when a lot of implications are due to be installed, for instance when loading the library, or a package. This is done by calling <code class="func">SuspendMethodReordering</code> once the installations are done, <code class="func">ResumeMethodReordering</code> should be called. These pairs of calls can be nested. When the outermost pair is complete, method reordering takes place and is enabled in <code class="func">InstallTrueMethod</code> (<a href="chap78_mj.html#X860B8B707995CFE3"><span class="RefLink">78.8-1</span></a>) thereafter. <code class="func">ResetMethodReordering</code> effectively exits all nested suspensions, resuming reordering immediately. This function is mainly provided for error recovery and similar purposes and is called on quitting from a break loop.</p>

<p><a id="X855FE25783FB0D4E" name="X855FE25783FB0D4E"></a></p>

<h4>78.9 <span class="Heading">Operations and Mathematical Terms</span></h4>

<p>Usually an operation stands for a mathematical concept, and the name of the operation describes this uniquely. Examples are the property <code class="func">IsFinite</code> (<a href="chap30_mj.html#X808A4061809A6E67"><span class="RefLink">30.4-2</span></a>) and the attribute <code class="func">Size</code> (<a href="chap30_mj.html#X858ADA3B7A684421"><span class="RefLink">30.4-6</span></a>). But there are cases where the same mathematical term is used to denote different concepts, for example <code class="code">Degree</code> is defined for polynomials, group characters, and permutation actions, and <code class="code">Rank</code> is defined for matrices, free modules, <span class="SimpleMath">\(p\)</span>-groups, and transitive permutation actions.</p>

<p>It is in principle possible to install methods for the operation <code class="code">Rank</code> that are applicable to the different types of arguments, corresponding to the different contexts. But this is not the approach taken in the <strong class="pkg">GAP</strong> library. Instead there are operations such as <code class="func">RankMat</code> (<a href="chap24_mj.html#X7A995A74838950E6"><span class="RefLink">24.7-1</span></a>) for matrices and <code class="func">DegreeOfCharacter</code> (<a href="chap72_mj.html#X7802BC157C69DD75"><span class="RefLink">72.8-4</span></a>) (in fact these are attributes) which are installed as methods of the <q>ambiguous</q> operations <code class="code">Rank</code> and <code class="code">Degree</code>.</p>

<p>The idea is to distinguish between on the one hand different ways to compute the same thing (e.g. different methods for <code class="func">\=</code> (<a href="chap31_mj.html#X7EF67D047F03CA6F"><span class="RefLink">31.11-1</span></a>), <code class="func">Size</code> (<a href="chap30_mj.html#X858ADA3B7A684421"><span class="RefLink">30.4-6</span></a>), etc.), and on the other hand genuinely different things (such as the degree of a polynomial and a permutation action).</p>

<p>The former is the basic purpose of operations and attributes. The latter is provided as a user convenience where mathematical usage forces it on us <em>and</em> where no conflicts arise. In programming the library, we use the underlying mathematically precise operations or attributes, such as <code class="func">RankMat</code> (<a href="chap24_mj.html#X7A995A74838950E6"><span class="RefLink">24.7-1</span></a>) and <code class="func">RankAction</code> (<a href="chap41_mj.html#X8166A6A17C8D6E73"><span class="RefLink">41.10-3</span></a>). These should be attributes if appropriate, and the only role of the operation <code class="code">Rank</code> is to decide which attribute the user meant. That way, stored information is stored with <q>full mathematical precision</q> and is less likely to be retrieved for a wrong purpose later.</p>

<p>One word about possible conflicts. A typical example is the mathematical term <q>centre</q>, which is defined as <span class="SimpleMath">\(\{ x \in M | a * x = x * a \forall a \in M \}\)</span> for a magma <span class="SimpleMath">\(M\)</span>, and as <span class="SimpleMath">\(\{ x \in L | l * x = 0 \forall l \in L \}\)</span> for a Lie algebra <span class="SimpleMath">\(L\)</span>. Here it is <em>not</em> possible to introduce an operation <code class="func">Centre</code> (<a href="chap35_mj.html#X847ABE6F781C7FE8"><span class="RefLink">35.4-5</span></a>) that delegates to attributes <code class="code">CentreOfMagma</code> and <code class="code">CentreOfLieAlgebra</code>, depending on the type of the argument. This is because any Lie algebra in <strong class="pkg">GAP</strong> is also a magma, so both <code class="code">CentreOfMagma</code> and <code class="code">CentreOfLieAlgebra</code> would be defined for a Lie algebra, with different meaning if the characteristic is two. So we cannot achieve that one operation in <strong class="pkg">GAP</strong> corresponds to the mathematical term <q>centre</q>.</p>

<p><q>Ambiguous</q> operations such as <code class="code">Rank</code> are declared in the library file <code class="file">lib/overload.g</code>.</p>


<div class="chlinkprevnextbot"> <a href="chap0_mj.html">[Top of Book]</a>   <a href="chap0_mj.html#contents">[Contents]</a>    <a href="chap77_mj.html">[Previous Chapter]</a>    <a href="chap79_mj.html">[Next Chapter]</a>   </div>


<div class="chlinkbot"><span class="chlink1">Goto Chapter: </span><a href="chap0_mj.html">Top</a>  <a href="chap1_mj.html">1</a>  <a href="chap2_mj.html">2</a>  <a href="chap3_mj.html">3</a>  <a href="chap4_mj.html">4</a>  <a href="chap5_mj.html">5</a>  <a href="chap6_mj.html">6</a>  <a href="chap7_mj.html">7</a>  <a href="chap8_mj.html">8</a>  <a href="chap9_mj.html">9</a>  <a href="chap10_mj.html">10</a>  <a href="chap11_mj.html">11</a>  <a href="chap12_mj.html">12</a>  <a href="chap13_mj.html">13</a>  <a href="chap14_mj.html">14</a>  <a href="chap15_mj.html">15</a>  <a href="chap16_mj.html">16</a>  <a href="chap17_mj.html">17</a>  <a href="chap18_mj.html">18</a>  <a href="chap19_mj.html">19</a>  <a href="chap20_mj.html">20</a>  <a href="chap21_mj.html">21</a>  <a href="chap22_mj.html">22</a>  <a href="chap23_mj.html">23</a>  <a href="chap24_mj.html">24</a>  <a href="chap25_mj.html">25</a>  <a href="chap26_mj.html">26</a>  <a href="chap27_mj.html">27</a>  <a href="chap28_mj.html">28</a>  <a href="chap29_mj.html">29</a>  <a href="chap30_mj.html">30</a>  <a href="chap31_mj.html">31</a>  <a href="chap32_mj.html">32</a>  <a href="chap33_mj.html">33</a>  <a href="chap34_mj.html">34</a>  <a href="chap35_mj.html">35</a>  <a href="chap36_mj.html">36</a>  <a href="chap37_mj.html">37</a>  <a href="chap38_mj.html">38</a>  <a href="chap39_mj.html">39</a>  <a href="chap40_mj.html">40</a>  <a href="chap41_mj.html">41</a>  <a href="chap42_mj.html">42</a>  <a href="chap43_mj.html">43</a>  <a href="chap44_mj.html">44</a>  <a href="chap45_mj.html">45</a>  <a href="chap46_mj.html">46</a>  <a href="chap47_mj.html">47</a>  <a href="chap48_mj.html">48</a>  <a href="chap49_mj.html">49</a>  <a href="chap50_mj.html">50</a>  <a href="chap51_mj.html">51</a>  <a href="chap52_mj.html">52</a>  <a href="chap53_mj.html">53</a>  <a href="chap54_mj.html">54</a>  <a href="chap55_mj.html">55</a>  <a href="chap56_mj.html">56</a>  <a href="chap57_mj.html">57</a>  <a href="chap58_mj.html">58</a>  <a href="chap59_mj.html">59</a>  <a href="chap60_mj.html">60</a>  <a href="chap61_mj.html">61</a>  <a href="chap62_mj.html">62</a>  <a href="chap63_mj.html">63</a>  <a href="chap64_mj.html">64</a>  <a href="chap65_mj.html">65</a>  <a href="chap66_mj.html">66</a>  <a href="chap67_mj.html">67</a>  <a href="chap68_mj.html">68</a>  <a href="chap69_mj.html">69</a>  <a href="chap70_mj.html">70</a>  <a href="chap71_mj.html">71</a>  <a href="chap72_mj.html">72</a>  <a href="chap73_mj.html">73</a>  <a href="chap74_mj.html">74</a>  <a href="chap75_mj.html">75</a>  <a href="chap76_mj.html">76</a>  <a href="chap77_mj.html">77</a>  <a href="chap78_mj.html">78</a>  <a href="chap79_mj.html">79</a>  <a href="chap80_mj.html">80</a>  <a href="chap81_mj.html">81</a>  <a href="chap82_mj.html">82</a>  <a href="chap83_mj.html">83</a>  <a href="chap84_mj.html">84</a>  <a href="chap85_mj.html">85</a>  <a href="chap86_mj.html">86</a>  <a href="chap87_mj.html">87</a>  <a href="chapBib_mj.html">Bib</a>  <a href="chapInd_mj.html">Ind</a>  </div>

<hr />
<p class="foot">generated by <a href="https://www.math.rwth-aachen.de/~Frank.Luebeck/GAPDoc">GAPDoc2HTML</a></p>
</body>
</html>

Messung V0.5 in Prozent
C=96 H=97 G=96

¤ 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.0.31Bemerkung:  ¤

*Bot Zugriff






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

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 und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=1128594
#Domains=1976912