Quellcodebibliothek Statistik Leitseite products/Sources/formale Sprachen/GAP/pkg/rcwa/doc/   (GAP Algebra Version 4.15.1©)  Datei vom 22.8.2025 mit Größe 119 kB image not shown  

Quelle  chap3_mj.html

  Sprache: HTML
 

 products/Sources/formale Sprachen/GAP/pkg/rcwa/doc/chap3_mj.html


<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<script type="text/javascript"
  src="https://cdn.jsdelivr.net/npm/mathjax@2/MathJax.js?config=TeX-AMS-MML_HTMLorMML">
</script>
<title>GAP (RCWA) - Chapter 3: Residue-Class-Wise Affine Groups</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
<script src="manual.js" type="ext/"></script>
<script typejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
</head>
<body class="chap3"  onload="jscontent()">


<div class="chlinktop"><span class=<script

<div class="chlinkprevnexttop"> <ameta http-="ontent-type ="texthtml; charset=UTF-8" />

<p id="mathjaxlink" class="pcenter"><a href="chap3.html">[MathJax off]</a></p>
<p><a id="X874A3BB684F0639A" name="X874A3BB684F0639A"></a></p>
<div class="ChapSects"><a href="chap3_mj.html#X874A3BB684F0639A">3 <span class="Heading">Residue-Class-Wise Affine Groups</span></a>
<div class="ContSect"><span class="tocline"><span class="<meta name="content"APDoc2HTML"/
</span>
<div class="ContSSBlock">
<script src=manual.js"="text/avascript">/java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
<span class="
<panclass="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X80D13D2A7AD73C2C">3.1-3 <span class="Heading">
    WreathProduct
    (for an rcwa group over Z, with a permutation group or (ℤ,+))
  </span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8794913B878DD5C4">3.1-4 MergerExtension</a></span>
<pan class="ontSS><br />span class=nocss">  </span><a href="chap3_mj.html#X8143AB647801F438">3.1-5 GroupByResidueClasses</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mjjava.lang.StringIndexOutOfBoundsException: Index 83 out of bounds for length 62
    estriction (of  rcwa mappingor -, an injectivercwamapping)
  </span></a>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X82171D7287CBED95">3.1-7 <span class="Headingdiv class=">spanclass=tocline><=nocss"nbsp;/< href"htmlX81242A6586A604A3.1< =Heading--affinegroupsspan<
    Induction (of an rcwa mapping or -group, by an injective rcwa mapping<class="ContSS<br /><span class="nocss"> nbsp<ahref"java.lang.StringIndexOutOfBoundsException: Range [114, 106) out of bounds for length 138
  </span></a>
</an
<class="><r/> class="ocss>&bsp;nbsp</pan< "#X79450C1C8756FEB3"3.18 RCWA</a></span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7BD42D8481300E25">3.1-9 CT</a></span>
<div>/
<div class="ContSect"><span class="tocline"><span class="ContSS"><br /><span class="nocss"> >spanclass"" nbsp>a href="chap3_mj.html#X8143AB647801F438">3.1-5 GroupByResidueClasses</a></span>
  routines forinvestigatingresidue-lasswise affine groups
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X864A7E3E87F366A8">3.2-1 StructureDescription</a></span>
</span>
<span class="ContSS"><br /><span class="nocss">  </span><a hrefclass=ContSS">br />spanclass=nocss>&;&&lt;/ href="chap3_mj#82171java.lang.StringIndexOutOfBoundsException: Range [107, 106) out of bounds for length 136
</div></div>
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href="chap3_mj.html#X8151BE577FFDCE87">3.3 <span class="Heading">
  The natural action of an rcwa group on the underlying ring
</span></a>
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7C046BE97EE53692">3.3-1 <span class="Heading"> Orbit (for an rcwa group and either a point or a set</pan<a
</span>
<pan class=ContSS>br/<span class"";nbsp<span<ahref".html#7"3.3-java.lang.StringIndexOutOfBoundsException: Index 146 out of bounds for length 146
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7D9DFAC97F9F0891">3.3-3   routines  residueclass-affine groups
<>< =chtml#".4 span =java.lang.StringIndexOutOfBoundsException: Range [135, 134) out of bounds for length 136
    <span class"<r /span"ocss>& <span<ahref="chap3_mjX83527DA37C5CB2C7"32-2 </>/>
  </span></a>
</pan
<span class="/div></div>
    ShortResidueClassOrbits &;ShortResidueClassCycles
  </span></a>
</span>
</span<>
<span class=ContSS">br /><spanclass"nocss"  </span><a href="chap3_mj.html#X7F76B04E86C77B94">3.3-7 CycleRepresentativesAndLengths</a></span>
<span class="ContSS"><br<iv class"">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8735855587CC029F">3.3-9 </>
    Ball (orgroup,elementand  group,point java.lang.StringIndexOutOfBoundsException: Range [64, 63) out of bounds for length 75
  </span></a>
</pan
<span  =>< > class"nocss>&bsp span><a href="chap3_mj.html#X78F145197F63A25D">3.3-4 <span class="Heading">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X8587246A7F890849">3 ShortOrbits ( rcwa groups & ShortCycles (forrcwapermutations)
<spanclass"ContSS"><br /><panclass=nocss">nbsp;&bsp<>a href="hap3_mjhtml#D08213067E".3-12</>/span>
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X82DBAF35788FA239">3.3-13 CollatzLikeMappingByOrbitTree</a></span>
<
<div class="ContSect"><span class="tocline"><span class="nocss"> </span><a href=<pan class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X7F76B04E86C77B94">3.3-7 CycleRepresentativesAndLengths</a></span>
  Special attributes of tame residue-class-wise affine groups
</span></a>
</span>
<div class="ContSSBlock">
<class="ContSS"><br/>span class"&;&bsp;/span<a href="chap3_mj.html#X7F523A6B87825AB8">3.4-1 <span class="Heading">
    RespectedPartition ( a tame rcwagroup  -)
  </span></a>
</span>
<span class="ContSS"><br /ContSS<br /<span java.lang.StringIndexOutOfBoundsException: Range [39, 38) out of bounds for length 170
    ActionOnRespectedPartition & KernelOfActionOnRespectedPartition
  </span></a>
</span>
</div></div>
<div class=<panclass"><java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 146
</span>
</div>spanclass""< /><span classn;> java.lang.StringIndexOutOfBoundsException: Range [108, 106) out of bounds for length 155
<div class="ContSect"><span java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 12
</span>
<div class="ContSSBlock">
<span class="ContSS"><br /><span class="nocss">  </span><a href="chap3_mj.html#X84AFBB997B694A3D">3.6-1 IsRcwaGroup</a></span>
<
<div>

<h3>3 <span class="Heading">Residue-Class-Wise Affine Groups</span></h3>

<p>In this chapter, we describe how to construct residue-class-java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 13

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

<h4>3.1 <span class="Heading">Constructing residue-class-wise affine groups</span></h4>

<p>As any other groups in <java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 13


<divclass="ContSect><spanclass=tocline"><span class="nocss"> </span><a href="chap3_mj.html#X81941A247942FB99">3.5 <span class="Heading">Generating pseudo-random elements of RCWA(R) and CT<>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(0,2,1,4),ClassShift(0,5));</span>
&;rcwa over with2 generatorsgt;
<span class="GAPprompt">gap></span> <span class="GAPinput">IsTame(G); Size(G); IsSolvable(G); IsPerfect(G);</span>
rue
infinity
false
false

</pre></java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 0

<p>An rcwa group isomorphic to a given group can be obtained by taking the image of a faithful rcwa representation:</p>h3 <span=H"ResidueClassWiseAffineGroups/<h3>

<p><a id="X7EB8A301790290C7" name="X7EB8A301790290C7java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 0

<h5>3.1-1 IsomorphismRcwaGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsomorphismRcwaGroup</code>( <var class="Arg">G</var>, <var class="Arg">R</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
< ="func"<table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#='color: green'>8227; IsomorphismRcwaGroup</code>( <var class="Arg">G</var> )/td>tdclass"tdright">( attribute )</td></tr></table></div>
<p>Returns: a monomorphism from the group <var class="Arg">G</var> to RCWA(<var class="Arg">R</var>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0

<p>The best-supported case is <var class="Arg">R</var> = ℤ. java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">F := FreeProduct(Group((1,2)(3,4),(1,3)(2,4)),Group((1,2,3)),</span>
<spanclass=GAPprompt">></span> <span class="GAPinput">                    SymmetricGroup(3));</span>
<
<span class="GAPprompt"gap&t</>< class=">IsomorphismRcwaGroup(F)</>
[ f1, f2, f3, f4
  &trcwa  of Zwith modulus24&,
  <rcwa permutation java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
  lt;  with  &;,
  <rcwa permutation of Z with modulus 36> ]
<">gap>< < java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 104
[ f1,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  <wild rcwa permutation of Z with java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 0
<pan classGAPprompt">ap></> span class""F2 := Image(last);</span>
<wild rcwa group over Z with 2>

</pre></div>

<p>Further, new rcwa groups can be constructed from given ones by taking direct products and by taking wreath <div class=func"<table class"func width"00"tr<dclass=""< =func">‣IsomorphismRcwaGroup<code(<var ="Arg>G<;;)>>/able</div

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

<h5>3.1-2 DirectProduct</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; DirectProduct</code>( <var class="Arg">G1</var>, <var class="Arg">G2java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ver given asarguments<p

<p>There is certainly no unique or canonical way tol;fpgroup on thegenerators [f1,f2,f3f4, f5]gjava.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">F2 := Image(IsomorphismRcwaGroup(FreeGroup(2)));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">F2xF2 := DirectProduct(F2,F2);</span>
er Z with 4 generatorsgtjava.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
<span class="GAPprompt">gt;</> <pan class="GAPinput"Image(F2xF2)) F2<span>
java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 4

</pre></span=GAPprompt>ap&;span span ="java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 104

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

<h5>3.1-3 <span class="Heading"&;rcwa  java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 48
    WreathProduct
    (for an rcwa group over Z, with a permutation group or (ℤ,+))
  </span></h5>

<div=func class="width"100%>trtd class"<=f"&#8227;WreathProduct>( varclass="Arg"G, var class"></var>/td> class"tdright(m&;<td>/tr>/>/div>
class>tablejava.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 244
<p>Returns:rcwagroup  to wreath product of thercwa<var class="ArgG<var> over  with  finite permutation group <var class="Arg">P</var> or with the infinite cyclic group <var class="Arg">Z</var>, respectively.</p>

<p>The first-mentioned method embeds the <code class="code">NrMovedPoints(<var class="Arg">P</var>)</code>th direct power of <var class="Arg">G</var> using the method for <code class="code">DirectProduct</code>, and lets the permutation group <var class="Arg">P</var> act naturally on the set of residue classes modulo <code class="code">NrMovedPoints(<var class="Arg">P</var>)</code>. The second-mentioned method restricts (<span class="SimpleMath">\(\rightarrow\)</span> <code class="func">Restriction</code> (<a href="chap3_mj.html#X852EF2C079E4D7FF"><span class="RefLink">3.1-6</span></a>)) the group <var class="Arg">G</var> to the residue class 3(4), and maps the generator of the infinite cyclic group <var class="Arg">Z</var> to <code class="code">ClassTransposition(0,2,1,2) * ClassTransposition(0,2,1,4)</code>.</p>


<

<classGAPprompt>&;</span ="> : ImageIjava.lang.StringIndexOutOfBoundsException: Range [95, 94) out of bounds for length 118
<class"GAPprompt>><java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 118
<span class="GAPprompt">gap></span> <span class="GAPinput">Embedding(F2wrA5,1);</span>
[ <true
  &;   Z 8&; ] - &;
[ <wild rcwa  Zwith modulus 40&;
  <wild rcwa h51 span""
< java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 89
 4(5) ,
  ( 2(5), 3(5), 4(div=""table"width100>tr>tdclass=tdleft> =">#8227;java.lang.StringIndexOutOfBoundsException: Range [115, 114) out of bounds for length 244
"">gap></span span="GAPinput">wrZ: WreathProductGroup((0,1),(0,)))<>
<wild rcwa  over with 2generators&;
<span class="GAPpromptjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
 ClassShift(Z  ] -&;
[ <tame rcwa permutation of Z with modulus 4, of order infinityclassGAPprompt>&;/ span class""F2wrA5= (F2,AlternatingGroup5);/java.lang.StringIndexOutOfBoundsException: Index 118 out of bounds for length 118
<classG"gap></span> <span class="GAPinput">EmbeddingZwrZ,2/>
[(Z) ]-;  <wildrcwaof  with >

<re<div

<> java.lang.StringIndexOutOfBoundsException: Range [21, 20) out of bounds for length 95

<(25,() (5) )=>ZwrZ =WreathProductGroup(ClassShift1),((0,))<span

<h5>3.1-4 MergerExtension</h5>

<div class="func"><table class="func" width="100%"><tr><td class= java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 25
<p>ReturnsClassShift  java.lang.StringIndexOutOfBoundsException: Range [25, 24) out of bounds for length 79

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

<p>Let <span class="SimpleMath">\(n\)</span> be the largest moved point <Also, cwagroups can be obtained as particular extensions of finite permutation groups:</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput"># First example
<spanclass""gap&;/span span =G: ((123))[1,2];/java.lang.StringIndexOutOfBoundsException: Index 114 out of bounds for length 114
<rcwa group over Z with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Size(G); </span>
infinity
<span class="GAPprompt">gap></span> <span class="GAPinput">GeneratorsOfGroup(G);</span>
  0(), (32()) (0() 2(1(),5(  
<span class="GAPprompt"
<java.lang.StringIndexOutOfBoundsException: Range [22, 5) out of bounds for length 84
1346812
<;</span> <java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 70
<span class="GAPprompt">gap></span> <span class="java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0
<panclass""gap></ span class="GAPinput">G := MergerExtension(Group((1,2,3,4),(1,2)),[1,2],3);</span>
&;cwagroup overZ   generators>
<span class="GAPprompt">gap></span> <span class="< group  with2 generators;
infinity
<span class="GAPprompt">gap><span> < class"java.lang.StringIndexOutOfBoundsException: Range [62, 60) out of bounds for length 90
0(), 4)),
  ( 0(4), 2(8) ) ( 1(4 (), (3) 2))(03)2() )( 13)56  ]
<span class="GAPprompt">gap></span> <span class="GAPinput">B := Ball(G,One(G),6:Spheres);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">spanclass="GAPprompt"gap&</span
1,4,11,2869, 170 413 ]
<spanclass=GAPprompt"gap></span> <span class="GAPinput">G = Group(List([[0,2,1,2],[1,2,2,4],[0,2,1,4],[1,4,2,4]]ppan =""gap>span> span "">G : MergerExtension(12,,,(12)[12,span
<lass">g;/> <pan java.lang.StringIndexOutOfBoundsException: Range [48, 47) out of bounds for length 105
true

</pre></div>

<Itisalso  to buildan     list   <p

<p><a ="X8143AB647801F438"name="X8143AB647801F438"></a></p>

<h5>3.1-5 GroupByResidueClasses</h5>

<div classspan class="APprompt>gap&;<span><span class="GAPinput">(,<>
<ns:the  whichis  by allclass  which disjointresidue classesinvarclassArg"classes<var</p>

<p>Theargument <ar class"">lasses/>  be aof  classes</p

<p>If the residue class"java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 105


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := 
<span class="GAPprompt">></span
<rcwa group over Z with 8 generators>
<pan<span class="APinput"H: Group(List([[0,2,1,2],[1,2,2,4],[0,2,1,4],[1,4,2,4]],</span>
<span class="GAPprompt">></span> <span class="
<(0(2),1(2)),(1(2),2(4)),(0(2),1(4)),(java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
< class="gap&;/>< =GAPinput">G = H;</span>
true

</pre></div>

<p>Various ways to construct rcwa groups are based on certain monomorphisms from the group RCWA(<span class="SimpleMath">\(R\)</span>) into itself. Examples are the constructions of direct products and wreath products described above. The support of the image of such a monomorphism is the image of a given injective rcwa mapping. For this reason, these monomorphisms are called <em>restriction monomorphisms</em>. The following operation computes images of rcwa mappings and -groups under these embeddings of RCWA(<span class="SimpleMath">\(R<Returns: the group which is generated by all class transpositions which interchange disjoint residue

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

<1-<span class="">
    Restriction (of an rcwa mapping
  </</h5>

<div class="func"><span  class="GAPprompt">><> <span class="GAPinput">                                   ResidueClass));</span>
<=100%"tr>td class="tdleft"><code class="func">‣ Restriction</code>( <var class="Arg">G</var>, <var class="Arg">f</var> )</td><td< =GAPprompt>gapgt</> < java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 127
<p>Returns: the restriction of the rcwa mapping <var class="Arg">g</var> (respectively the rcwa group <var class="Arg">G</var>) by the injective rcwa mapping <var class="Arg">f</var>.</p>

<p>By definition, the <em>restriction</em> <span class="SimpleMathjava.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 55

<p>The em>/> ofan rcwa < class"">Gvar> byaninjectivercwamapping var class=Arg></>   the groupwhose elementsare  of  elementsof< =Arg>G<var>by class=Arg">f/>.java.lang.StringIndexOutOfBoundsException: Range [261, 260) out of bounds for length 414


<div class="example"><pre>

<span class="GAPprompt"gap></span> <java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 119
<wild rcwa group over Z with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Support(F2tilde);</span>
3(5)

</pre></div>

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

<h5>3.1-7 <span class="Heading">
    Induction (of an rcwa mapping or -group, by an injective rcwa mapping)
  </span></h5>

<iv class=func"<able class="func" width="100%"<tr><td class""code class="func">‣ Induction</code>( <var class="Arg">g</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<java.lang.StringIndexOutOfBoundsException: Range [5, 4) out of bounds for length 243
<p>Returns the induction of the rcwa mapping <var class="Arg">g</var> (respectively the rcwa group <var class="Arg">G</var>) by the injective rcwa mapping <var class="Arg">f</var>.</p>

<p><em>Induction</em> is the right inverse of restriction, i.e. it is <code class="code">Induction(Restriction(<var class="Arg">g</var>,<var class="Argjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0


<class=example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">Induction(F2tilde,RcwaMapping([[5,3,1]])) = F2;</span>
true

</pre></div>

<p>Once having constructed an rcwa group, it is sometimes possible to obtain a smaller generating set by<Returnsthe      var class="Arg">g</var> (respectively the rcwa group <var class="Arg">G</var>) by the injective rcwa mapping <var class="Arg">f</var>.</p>

<p>There are methods for the operations <code class="code">View</code>, <code class="code">Display</code>, <code class="code">Print</code> and <code class="code">String</code> which are applicable to rcwa groups.</p>

<p>Basic attributes of an rcwa group which are derived from the >The em><> anrcwa  < "">G/>by injective  mapping var Arg>f/ar> definedas groupwhoseelementsare the restrictionsofthe  var ="Arg>Gvar> var class""</>.The restriction of <var class="Arg">G</var> by <var class="Arg">f</var> acts on the image of <var class="Arg">f</var> and fixes its complement pointwise.</p>


<div class="example"><pre>

<span class="GAPprompt">gap&3(5)
< class"GAPprompt">gt;/> <span class=GAPinput">              ClassReflection(2,4));</span>
<rcwa group over Z java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 0
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
<span class="GAPprompt">></span> <span class="GAPinput">         IsIntegral,IsClassWiseOrderPreservingInduction (   java.lang.StringIndexOutOfBoundsException: Range [34, 33) out of bounds for length 74
2422, [ 23 ], false,ss="" width="100%"><tr<td class="tdleft><code class="func">‣ Induction</code>( <var class="Arg">g</var>, <var class="Arg">f</var> )</td><td class="tdright">( operation )</td></tr></table></div>

</pre></div>

<p>All rcwa groups over a ring <span class="SimpleMath">\(R\)</span> are subgroups of RCWA(<span class="SimpleMath">\(R\)</span>). The group RCWA(<span class="SimpleMath">\(R\)</span>) itself is not finitely generated, thus cannot be constructed as described above. It is handled as a special case:</p>

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

<h5>3.1-8 RCWA</h5>

<div class="func"><table
<>the RCWA("Arg>R</var) java.lang.StringIndexOutOfBoundsException: Range [85, 73) out of bounds for length 140


<div class="example"><pre>

<class"GAPprompt>&t<span span"" =java.lang.StringIndexOutOfBoundsException: Range [77, 76) out of bounds for length 94
CWAZ)
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 4
true

</pre></div>

<p>Examples<p>There  methods forthe operationscode =""Viewcodecode =code"Display</java.lang.StringIndexOutOfBoundsException: Range [105, 104) out of bounds for length 216


<div

<span "">><spanspanclass="GAPinput">List([2,105],NrConjugacyClassesOfRCWAZOfOrder);</span>
 infinity 218]

</pre></div>

<pWe thegroup is java.lang.StringIndexOutOfBoundsException: Range [49, 48) out of bounds for length 218

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

<h5>3.1-9 CT</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; CT</code>( <var class="Arg">R</var> )</td><td class="tdright">( function )</td></tr></table></div>
< class"func"<tableclass="func"width"100%"<<td class=tdleft< class="func">&#8227</ode> <var =Arg</, var class"Arg"</ )/td< class"">&functionnbsp)/>/>/></>
<p>Returns: the group CT(<var class="Arg">R</var>) which is generated by all class transpositions of the ring <var class="Arg">R</var>, respectively, the group CT(<var class="Arg">P</var>,ℤ) java.lang.StringIndexOutOfBoundsException: Index 196 out of bounds for length 143


<div class="example"><java.lang.StringIndexOutOfBoundsException: Range [0, 25) out of bounds for length 12

<span class="GAPprompt">gap></span> <span class="GAPinput">CT_Z := CT
CT(Z)
<span class="GAPprompt">gap&java.lang.StringIndexOutOfBoundsException: Index 29 out of bounds for length 0
true
<span class="GAPprompt">gap></span> <span class="GAPinput">V := -class-affinepermutations  thering <var class="Arg">R</var>.</p>
CT_[ ](Zjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11
<spanclass="GAPprompt>gt;/>span java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 90
[( 0(2)1(), (1(), (),  02,1(4)),( 14)2())
<<java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 12
CT_ 23 Z
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 49 out of bounds for length 0
[ ( 0(2), 1(2) ), ( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  ( 0(2), 5(6) ), ( 0(3), 1(6) ) ]

</pre

<p>The 


< class""<>

<</span><span ""ct: (0,,,</>
( 0eturns:thejava.lang.StringIndexOutOfBoundsException: Range [22, 21) out of bounds for length 361
<class"APprompt">gt</ span =>irrored);/>
1(2), 4(6) )
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,2,1,2],[0,3,2,3],[2,4,1,6]],ClassTransposition));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">java.lang.StringIndexOutOfBoundsException: Index 66 out of bounds for length 5
[ [ 0 .. 5 ] ]
<span class
[ [ -6 .. -1 ] ]

</pre></div>

<p>Under the hypothesis that CT(CT_[ 2 ]Zjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">NrElementsOfCTZWithGivenModulus{[1..8]};</span>
11172384679, < =""gap>/span  class="java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 94

</pre></div>

<p>The number of conjugacy classes of CT(ℤ( 0(2), 5() ) (0(3), 1(6))]

<p

<h4>3
  Basic routines for investigating residue-class-wise affine groups
</span></h4>

<p>In the previous section we have seen how to construct rcwa groups. The purpose of this section is p>The group CT(ℤ) has an outer automorphism which is given by conjugation with <span class="SimpleMath -1)java.lang.StringIndexOutOfBoundsException: Range [132, 131) out of bounds for length 479

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

<h5>3.2-1 StructureDescription</h5>

<div class="func"><table class="func" width="100%"><tr><java.lang.StringIndexOutOfBoundsException: Range [0, 58) out of bounds for length 0
<Returns:astringwhichsometimesgivesalittleglimpse the  ofthe  group< classArg"G</var.p>

<p>The attribute <code class="code">StructureDescription</code> for finite groups is documented in the <strong class="pkg">GAP</strong> Reference Manual. Therefore we describe here only issues which are 0), 1(6 

<p>Wreath products < class"GAPprompt">&;/pan> ="APinput"ShortOrbits100.100,100)/panjava.lang.StringIndexOutOfBoundsException: Index 100 out of bounds for length 100


<div class="example"><pre>

<span class="
<pan">>span> <span class="GAPinput">StructureDescription(G);</span>
"(Z x Z x Z x Z x Z x Z x Z) . (C2 x S7)"
<span  class="GAPprompt>gap&;/> < class="GAPinput"G := Group(ClassTransposition(0,2,1,4),</span>
<span class="GAPprompt">></span> <span class="GAPinput">              ClassShift(2,4),ClassReflection(1,2));;/>
<span class=span class=GAPprompt>ap>/span> <span class="GAPinput">NrElementsOfCTZWithGivenModulus{[1..8]};</span>
"Z^2.((S3xS3):2)"
<span class/re<div>
<span class="GAPprompt">gapp>number    (ℤ) of  of  orderis under  java.lang.StringIndexOutOfBoundsException: Range [174, 105) out of bounds for length 296
<span class="GAPprompt">></span> <span class="GAPinput">                                                   CyclicGroup(2))));;</span>
<pan class=GAPpromptgap&t</><class=Gjava.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 98
<wild rcwa group over Z with 4 generators>
<
"(C3 * C2) x  class"Heading">
<lass="GAPprompt">></span <span class"">G: WreathProduct(GCyclicGroup(,infinity);span
<wild rcwa group over Z with 5 java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 0
<java.lang.StringIndexOutOfBoundsException: Range [23, 5) out of bounds for length 93
"(C3 C2) xF2)wrZ"
<span class="GAPprompt">gap></span> <span class="GAPinput">Collatz
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(Collatz,ClassShift(0,1));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">StructureDescription(G:short);</span>
"lt;>Z"

</pre></div>

<p>The extent to which the structure of an rcwa group can be exhibited automatically pReturns:a string sometimesgivesa    the of  rcwagroup var =ArgG</var./p>

<p>The order of an rcwa group can be computed by java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 0


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Groupjava.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 0
<span ="APprompt">&;> < class=GAPinput">              ClassReflection(0,5));</span>
<rcwa group over Z with 3 generators>
<span class="<span class="GAPprompt&;/java.lang.StringIndexOutOfBoundsException: Range [39, 37) out of bounds for length 126
46080

</pre></div>

< rcwa group, an isomorphismto a groupcanbecomputed by<code=""IsomorphismPermGroup>:/p>


<divclass="example><pre>

<span">/span>span class"();>
<panclass""gap&;> <java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 93
 ((),1( ) (3), (3  ] -gt [ (,2)345,

</pre></div>

<p>In general the membership problem for rcwa groups is algorithmically unsolvable, see Corollary 4<span class"">gap;</ span =""G: (PSL2ZF2)</pan

<On Info2of< =code<the  why the  is  of givenrcwa group  not.</>

<p>The membership test <q><"  F2


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassShift(0,3),ClassTransposition(0,3,2,6));;</span>
<class="GAPprompt">gap></span> <span class="GAPinput"> ClassShift(2,6)^7 * ClassTransposition(0,3,2,6)</span>
<span class="GAPprompt">></span> <span class="GAPinput">  * ClassShift(0,3)^-3 in G;<span">java.lang.StringIndexOutOfBoundsException: Range [28, 27) out of bounds for length 106

<span class=
false

</pre></div>

<p>The conjugacy


<div class="example"><pre>

<span class=GAPprompt"gap&/<spanclass">IsConjugateRCWAIntegers),>
<java.lang.StringIndexOutOfBoundsException: Range [22, 5) out of bounds for length 126
false
<span class="GAPprompt">gap></span> <span class="GAPinput">IsConjugate(CT(Integers),ClassTransposition(0,2,1,6),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                            ClassTransposition(1,4,0,8));</span>

<span java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 5
<
<rcwa permutation of Z with modulus 48java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<panclass""gt;span span class""(0,,,6)g = (,4,,8</span
true

</pre></div>

<p>There is a property <code class="<pan java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 93


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<></span><span class="APinput"H:= ClassTransposition(,1ClassShift1,);</pan>
<span class="java.lang.StringIndexOutOfBoundsException: Index 19 out of bounds for length 0
true
<span class="GAPprompt">gap></span> <span class="GAPinput">IsTame(H);</span>
false

<pre></iv

<p>For div "example">pre


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class= class=G"&t;<span < class=GAPinput"  * ClassShift(,)^-  ;</span
"GAPprompt>gap>/><span =GAPinputG);/>
false
<span class="GAPprompt">gap></span> <span class="GAPinputjava.lang.StringIndexOutOfBoundsException: Index 60 out of bounds for length 5
true
<span class="GAPprompt">gap></span> <span class="GAPinput">D1 := DerivedSubgroup
<java.lang.StringIndexOutOfBoundsException: Range [0, 5) out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Range [87, 4) out of bounds for length 4
<span class="GAPprompt"<spanclass">&;/span span class"">               lassTransposition(0,2,14,ClassShift(0,1));</span>
infinity
9
<span class
( xx).S3
"(Z x Z) .  class="gt<span                             (4,,)/span
<pan""&;/>spanjava.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 80
Group([ (), (1,2,4)(3,5,7)(6,8,9), (1,3,6)(2,5,8)(4,7,9) ])
<pan=>java.lang.StringIndexOutOfBoundsException: Range [87, 82) out of bounds for length 94
"C3 x C3"
<span class="GAPprompt">gap></span> <span class="GAPinput">Exponent(G);</span>
infinity
<span class="GAPprompt">gap></span> <span class="GAPinput">phijava.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
< java.lang.StringIndexOutOfBoundsException: Range [13, 11) out of bounds for length 117
[ [     0,     0,   1/2,  -1/2,     0,     0 ], 
  [     0,     0,     0,     1,     0,     0 ], 
  [     2,     1,     0,     0,     0java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  [0,1,0,0 0,0], 
  [     0,     0,     0,     0,     1,     0 ], 
  [0,,     ,     0,,     ,1 ]]

</pre></div>

<p>When investigating a group, a basic task is to find relations among the generators:</p>

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

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

<div class=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; <pFor tame rcwa groups, there are methods for <code class=""IsSolvableGroup</code> and <code class="code">IsPerfectGroup</code> available, and usually derived subgroups and subgroup indices can be computed as well. Linear representations of java.lang.StringIndexOutOfBoundsException: Index 251 out of bounds for length 0
<p>Returns: an epimorphism from a finitely presented group to the rcwa group <var class="Arg">G</var>.</p>

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


<div class="java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1

<span class="GAPprompt">gap></span> <span class="GAPinput">a := ClassTransposition(2,4"(Z  Z  x Z) . S3"
<span ""gap&;span><class"GAPinputb := ClassTransposition(4,6,8,12);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">c := ClassTransposition(3,4,4,6);;</span>
<span class="GAPprompt"><pan class"java.lang.StringIndexOutOfBoundsException: Range [23, 22) out of bounds for length 94
&(2()3(),((6,8)3,)gt
<span class="GAPprompt">gap></span> <span class="GAPinput">phi := EpimorphismFromFpGroup(
#I  there are 3 <pan ="GAPpromptgap&t;/span> java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 103
Ithereare   and  oftotallength312
ab, c ] ->  [     ,0   /2,  -1/2,     0,    0] 
<span class="[     0,     0,     0,     ,1,    0     0 ],
[^, (ab*c*b)^3, (a*c*b*)3,
  (a*b*a*c)^12, ((a*b)^2*a*c)^12, (a*b*(a*c)^2)^12, (a*b*c*a*c*b)^12 ]

</pre></div>

<p>A related very common task is to<pre</iv

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

<h5

<div class="func"><table div class="func"><table classfunc" " width="100%"><tr><td class="tdleft"<code class="func">‣ EpimorphismFromFpGroup</code>( <var class="Arg">G</var>, <var class="Arg">r</var> )</td><td class="tdright">( method )</td></tr></table></div>
<Returns: a representative of the set of preimages of <var class="Arg">g</var> under the epimorphism <var class="Arg">phi</var> from a free group to an rcwa group.</p>

<p>The epimorphism <var class="Arg">phi</var> must map the generators of the free group to the generators of the rcwa group one-by-one.</p>

<p>This method can be used for factoring elements of rcwa groups into generators. The implementation is based on <code class="code">RepresentativeActionPreImage</code>, see <code class="func">RepresentativeAction</code> (<a href="chap3_mj.html#X87A3462C82FD376E"><span class="RefLink">3.3-10</span></a>).</p>

<p, computingseveralpreimages isnot harder than computing just one, i.e. often several preimages are found simultaneously. The operation <code class="code">PreImagesRepresentatives</code> takes care of this. It takes the same arguments as <code class="code">PreImagesRepresentative</code> and returns a list of preimages. If multiple preimages are found, their quotients give rise to nontrivial java.lang.StringIndexOutOfBoundsException: Index 419 out of bounds for length 0


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">a := RcwaMapping([[2,0,3],[4,-1,3],[4,1,3]<pan class"GAPprompt">></ < "GAPinput"c:= java.lang.StringIndexOutOfBoundsException: Range [86, 85) out of bounds for length 103
<span class="GAPprompt">gap></span> <span class="GAPinput">b := ClassShift(0,1);; span class="GAPprompt">gap></span> <span class="GAPinput">phi := EpimorphismFromFpGroup(G,6);</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(a,b);; # G = [a,b, c]-;[( 2(4,3(   () 812)),  34)]
<span class="GAPprompt">gap& a^, ^ c^, c^3,ab6,(a**)^, **bc^3
< class="">gt<span>span ="GAPinput"g:=Comm(^2*4,b3;asampleelementtobe <span
<rcwa permutation of Z with modulus 8>
<span class="GAPprompt">gap></span> <span java.lang.StringIndexOutOfBoundsException: Index 50 out of bounds for length 0
b3b-^1^b3**^-1*b^3
<span class="GAPprompt">gap></span> <span class="GAPinput">g = b^-4*a^-1*b^-1*a^-1*b^3*a*b^-1*a*b

<span class="GAPprompt">gap></span> <span class="GAPinput">g := Comm(a*b,Comm(a,b^3));</span>
&; permutationof Z with &;
<= PreImagesRepresentativesspan>
[ (b^-1*a^-1)^2*b^2*(b*a)^2*b^-2b^-1*(a^-
<span class="GAPprompt">gap></span> <span class="GAPinput">rel := pre[1]/pre[2]; # -> a nontrivial relation</span>
(^*a-)^3a^*-*b^*b-*a^*java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
<span
tityMapping(Integers )

</panclass=GAPprompt">gapgt;/span><span ="APinput>a := cwaMapping([,,3][4,-1,][413]); (a,"";</span>

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

<h4>3.3 <span class="Heading">
  The naturalspan class""gap&;/<span "phi java.lang.StringIndexOutOfBoundsException: Range [94, 93) out of bounds for length 105
</span></h4>

<>java.lang.StringIndexOutOfBoundsException: Range [11, 10) out of bounds for length 342

<p>The support, i.e. the set of moved points, of an rcwa group can be determined by <code class="code">Support</code> or <code class="^-3*b^1a^1)^)^*b^*a*b^1*ab^3


<div class="example"><pre>

<span class=true
<panclass"GAPprompt&t</span span classGAPinput">IsTransitive(G,Integers);</span>
true

<>/div

<p>Groupsb-1^1)2*^ 


<dl>
<dt><strong class="Mark"><code class="code">phi</code></strong></dt>
<dd><pis an epimorphismfroma group to <var class="to var class=""G<var> java.lang.StringIndexOutOfBoundsException: Range [77, 76) out of bounds for length 111

</dd>
<dt><strong class="Mark"><code class="code">words</code>, <code class="code">classes</code></strong></dt>
<dd. -- <codeclass="code">words[i]</code> is a preimage under <code class="code">phi</code> of an element of <var class="Arg">G</var> which maps all sufficiently large positive integers in the residue classes <code class="code">classes[i]</code> toIdentityMapping( Integers )

</
< class=""<class">mallpointbound/code</strong>/dtjava.lang.StringIndexOutOfBoundsException: Index 80 out of bounds for length 80
<dd<pin addition tofinding list ofgroupelements< class"SimpleMath"\(_)</  thatforany largeenoughinteger<java.lang.StringIndexOutOfBoundsException: Range [140, 139) out of bounds for length 535

</dd>
<dt><strong class="Mark"><code class="code">status</code></strong></dt>
<dd><p>the string <code class="code">"transitive"</code> in case all checks have been completed successfully.</p>

</dd>
<java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
<>p<odeclass>true/>in caseall  been  java.lang.StringIndexOutOfBoundsException: Range [90, 89) out of bounds for length 94

</dd>
</dl>
<p>Groups generated class transpositionsofthe   the of integers There isproperty < class=code" java.lang.StringIndexOutOfBoundsException: Range [294, 293) out of bounds for length 852


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,2,1,2],[0,3,2,3],[1,2,2,4]],</span>
<span class="GAPprompt">></span> <span class="GAPinput">                   ClassTransposition));</span>
&12,24)&;
<class">gt;/><java.lang.StringIndexOutOfBoundsException: Range [45, 44) out of bounds for length 115
true
<java.lang.StringIndexOutOfBoundsException: Range [6, 5) out of bounds for length 96
rec( 
  classes := [ [ 1(2) ], [ 2(6) ], [ 6(12), 10(12) ], [ 0(12) ], 
       412)]],:=true,java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
  phi := [ ab, c ] -> [ ( 0(2), 1(2) ), ( 0(3), 2(3) ), ( 1(2), 2(4) ) 
     ], smallpointbound := 4, status := "transitive"
  words := [ ab, c, b*c, a*b ] )
<dt>< =Mark"<codeclasscode"/>/java.lang.StringIndexOutOfBoundsException: Range [75, 74) out of bounds for length 80
:= [[ 1() ,[24)]  ()] [012) 812)]] 
  complete := true,java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
  phi := [ ab, <><thestring < ">"/>incaseall  have java.lang.StringIndexOutOfBoundsException: Range [86, 85) out of bounds for length 113
     ]java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 73
  words := [ a, c, a*bb*c ] )
<span class="GAPprompt">gap></span> <span class="
<span class="GAPprompt">></span> <span class="GAPinput">                   ClassTransposition));              # '3n+1 group'</span>
<(02),12)((),()(()26)t
<span class="GAPprompt">gap></span> <span class="GAPinput">cert := TryToComputeTransitivityCertificate
rec(
  java.lang.StringIndexOutOfBoundsException: Range [18, 9) out of bounds for length 73
       (),1624)  ,  java.lang.StringIndexOutOfBoundsException: Range [46, 44) out of bounds for length 46
  phi: ,b   -> (021() , (2) ()) (() ())java.lang.StringIndexOutOfBoundsException: Index 76 out of bounds for length 76
     ], remaining := [ 12(48), 28(48), 52(96), 84(96) ], 
  smallpointbound := 42, status := "unclear"
  words := [ ab, (a*c)^2*bgt</> < =GAPinput">IsTransitiveOnNonnegativeIntegersInSupport(G);</span>
<span class="GAPprompt">gap&
<union of 90 residue classes (mod 96) (6 classes)>
<java.lang.StringIndexOutOfBoundsException: Range [87, 5) out of bounds for length 116
12(48U 28(48U 52(96U 84(96)
">&;/>< ="java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 138
rec(
  :   ()], ( ,432),  244(48) (6 ,
      [024))][(768),268() ] [28768,(768  ] 
  complete := false, 
  :[a,, c] &;  ( 0(2,1) ), ( 12,24) ,(1(4),2(6) ) 
     ], 
  remaining := [ 52(96), 84(96), 60(192), 108(192), 124(192), 172(192), 
      76384204(384220(, 348384, () 396) 
      412(768), 652(768) ], smallpointbound := 1074, status := "unclear"
  java.lang.StringIndexOutOfBoundsException: Range [18, 7) out of bounds for length 63
      (a*c)^4*b*a*b*a*b ] )
<span class="GAPpromptphi : , ]-gt   2), 1()), (03),23) , (1() 24))
<union of 44 residue classes (mod 768) (14 classes)>
<span class="GAPprompt">gap></span> <java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 31
 ,6076,]

<></>

<p>Let <var lt;(0()1()(2)(),(()26)gt;


<dl>
<>< ""> class"ode><code</strong></dt
<dd><classes:=[ 2) ] ] [ 4()] 8(), (), 2096 ] 

<dd>
<>strong="">code=">Dcode</java.lang.StringIndexOutOfBoundsException: Range [63, 60) out of bounds for length 66
<dd><p>A list of residue class unions whose union is a (< class"APpromptgap&;java.lang.StringIndexOutOfBoundsException: Range [38, 37) out of bounds for length 95

</dd>
<dt><strong class="Mark"><code class="code">
<dd><p>Alist  elements var ArgG<var> that<java.lang.StringIndexOutOfBoundsException: Range [76, 75) out of bounds for length 263

</dd>
<dt><strong class="Mark>codeclass=code"phi/code></trong></dt>
<dd><p>An epimorphism from a free group <code class="code">F</code> of rank the number of generators of <var class="Arg">G</var> to <var class="Arg">G</var> which maps generators to generators.</p>

</>
<dt><strong class="Mark"><code[0() (24),[12(, 268(  [ 28() (768)]],java.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
<d>>A list ofwords <code class"ode>wi]/code in <code="code"</ such that <java.lang.StringIndexOutOfBoundsException: Range [101, 100) out of bounds for length 207

</dd>
</dl>

<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(1,3,2,3),ClassTransposition(3,4,4,6),</span>
<span class="GAPprompt">>     ],java.lang.StringIndexOutOfBoundsException: Index 8 out of bounds for length 8
<(1(3),2(3)),(3(4),4(6)),(2(4),1(6))>
<span class="GAPprompt">gap></span> <span class="GAPinput">R := SupersetOfOrbitRepresentatives(G,4,6);</span>
rec( D := [ 2(3), 4(6), 1(6) ], R := 0(3U [ 1 ], 
  g := 
    [ ( 1(3), 2(3) ), <rcwa permutation of Z with modulus 12 and 
        < class"GAPprompt>&;/span><span class="GAPinput>(Integers,nion((cert.classes)));</span
        5 affine sidueclasses (mod) (14 classes)gt
   :   b,c ]->[( 1() 2(3) ), ( 3(), 4() ), ( 2(2(, 1(6)  ],
  w := [ ab, c ] )

</pre></div>

<p>Further, there are methods to compute orbits under the action of an rcwa group:</p>

<<dl>

<h5>3.3-1 <span class="Heading"> Orbit (for an rcwa group and the smallest of all the  of  ="rg>G<var on  nonnegative integers. The parameters <var class="Arg">maxsaddle</var> and <var class="Arg">maxprog</var> can be used to control the size of this set. In general, larger values may make the set smaller.

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Orbit</code>( <var class="Arg">G</var>, <varjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Orbit</code>( <var class="Arg">G</var>, <var class="Arg">set</var)</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: the orbit of the point <var class="Arg">point</var> respectively the set <var class="Arg">set</var> under the natural action of the rcwa group <var class="Arg">G</var> on its underlying ring.</p>

<p>The second argument can either be an element or a subset of the underlying ring of the rcwa group <var class="Arg">G</var>. Since orbits under the action of rcwa groups can be finite or infinite, and since infinite orbits are not necessarily residue class unions, the orbit may either be returned in the form of a list, in the form of a residue class union or in the form of an orbit object. It is possible to loop over orbits returned as orbit objects, they can be compared and there is a membership test for them. However note that equality and membership for such orbits cannot always be decided.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassShift(0,2),ClassTransposition(0,3,1,3));</span>
<rcwa group over Z with 2 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">Orbit(G,0);</span>
Z \ 5(6)
<span class="GAPprompt">gap></span> <span class="GAPinput">Orbit(G,5);</span>
5 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Orbit(G,ResidueClass(0,2));</span>
0(2), 1(6U 2(6U 3(6), 1(3U 3(6), 0(3U 1(6), 0(3U 4(6), 
  1(3U 0(6), 0(3U 2(6), 0(6U 1(6U 2(6), 2(6U 3(6U 4(6), 
  1(3U 2(6) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Length(Orbit(G,ResidueClass(0,4)));</span>
80
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(0,2,1,2),ClassTransposition(0,2,1,4),</span>
<span class="GAPprompt">></span> <span class="GAPinput">              ClassReflection(0,3));</span>
<rcwa group over Z with 3 generators>
<span class="GAPprompt">gap></span> <span class="GAPinput">orb := Orbit(G,2);</span>
<orbit of 2 under <wild rcwa group over Z with 3 generators>>
<span class="GAPprompt">gap></span> <span class="GAPinput">1015808 in orb;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">First(orb,n->ForAll([n,n+2,n+6,n+8,n+30,n+32,n+36,n+38],IsPrime));</span>
-19

</pre></div>

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

<h5>3.3-2 GrowthFunctionOfOrbit</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; GrowthFunctionOfOrbit</code>( <var class="Arg">G</var>, <var class="Arg">n</var>, <var class="Arg">r_max</var>, <var class="Arg">size_max</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; GrowthFunctionOfOrbit</code>( <var class="Arg">orb</var>, <var class="Arg">r_max</var>, <var class="Arg">size_max</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: a list whose (<span class="SimpleMath">\(r+1\)</span>)-th entry is the size of the sphere of radius <span class="SimpleMath">\(r\)</span> about <var class="Arg">n</var> under the action of the group <var class="Arg">G</var>, where the argument <var class="Arg">r_max</var> is the largest possible radius to be considered, and the computation stops once the sphere size exceeds <var class="Arg">size_max</var>.</p>

<p>An option <code class="code">"small"</code> is interpreted -- see example below. In place of the group <var class="Arg">G</var> and the point <var class="Arg">n</var>, one can pass as first argument also an rcwa group orbit object <var class="Arg">orb</var>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,4,1,4],[0,3,5,6],[0,4,5,6]],ClassTransposition));</span>
<(0(4),1(4)),(0(3),5(6)),(0(4),5(6))>
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfOrbit(G,18,100,20);</span>
11234344443334344556865
  54334443354565233233454
  44655342344234423343535
  45653456543545544553453
  345423444 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">last = GrowthFunctionOfOrbit(Orbit(G,18),100,20);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfOrbit(G,18,20,20:small:=[0..100]);</span>
rec( smallpoints := [ 182425273032333637394041
      42444548495152535657596061646566
      6869717576778081838889929395100 ], 
  spheresizes := [ 112343444433343445
      568 ] )
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,2,1,2],[1,2,2,4],[1,4,2,6]],ClassTransposition));</span>
<(0(2),1(2)),(1(2),2(4)),(1(4),2(6))>
<span class="GAPprompt">gap></span> <span class="GAPinput">GrowthFunctionOfOrbit(G,0,100,10000);</span>
11111112334576791214192128
  2937425557727899113148164215226288344
  462478612686894985128414161847201826202902
  37864167543259587749856811178 ]

</pre></div>

<p>Given an rcwa group <var class="Arg">G</var> over ℤ and an integer <var class="Arg">n</var>, <code class="code">DistanceToNextSmallerPointInOrbit(</code><var class="Arg">G</var><code class="code">,</code><var class="Arg">n</var><code class="code">)</code> computes the smallest number <span class="SimpleMath">\(d\)</span> such that there is a product <span class="SimpleMath">\(g\)</span> of <span class="SimpleMath">\(d\)</span> generators or inverses of generators of <var class="Arg">G</var> which maps <var class="Arg">n</var> to an integer with absolute value less than |<var class="Arg">n</var>|, provided that the orbit of <var class="Arg">n</var> contains such integer. <strong class="pkg">RCWA</strong> provides a function to draw pictures of orbits of rcwa groups on <span class="SimpleMath">\(ℤ^2\)</span>. The pictures are written to files in bitmap- (bmp-) format. The author has successfully tested this feature both under Linux and under Windows, and the generated pictures can be processed further with many common graphics programs:</p>

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

<h5>3.3-3 DrawOrbitPicture</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; DrawOrbitPicture</code>( <var class="Arg">G</var>, <var class="Arg">p0</var>, <var class="Arg">bound</var>, <var class="Arg">h</var>, <var class="Arg">w</var>, <var class="Arg">colored</var>, <var class="Arg">palette</var>, <var class="Arg">filename</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: nothing.</p>

<p>Draws a picture of the orbit(s) of the point(s) <var class="Arg">p0</var> under the action of the group <var class="Arg">G</var> on <span class="SimpleMath">\(ℤ^2\)</span>. The argument <var class="Arg">p0</var> is either one point or a list of points. The argument <var class="Arg">bound</var> denotes the bound to which the ball about <var class="Arg">p0</var> is to be computed, in terms of absolute values of coordinates. The size of the generated picture is <var class="Arg">h</var> x <var class="Arg">w</var> pixels. The argument <var class="Arg">colored</var> is a boolean which indicates whether a 24-bit true color picture or a monochrome picture should be generated. In the former case, <var class="Arg">palette</var> must be a list of triples of integers in the range <span class="SimpleMath">\(0, \dots, 255\)</span>, denoting the RGB values of the colors to be used. In the latter case, <var class="Arg">palette</var> is not used, and any value can be passed. The picture is written in bitmap- (bmp-) format to a file named <var class="Arg">filename</var>. This is done using the utility function <code class="code">SaveAsBitmapPicture</code> from <strong class="pkg">ResClasses</strong>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">PSL2Z := Image(IsomorphismRcwaGroup(FreeProduct(CyclicGroup(2),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                                   CyclicGroup(3))));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawOrbitPicture(PSL2Z,[0,1],2000,512,512,false,fail,"example1.bmp");</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">DrawOrbitPicture(PSL2Z,Combinations([1..4],2),2000,512,512,true,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                    [[255,0,0],[0,255,0],[0,0,255]],"example2.bmp");</span>

</pre></div>

<p>The pictures drawn in the examples are shown on <strong class="pkg">RCWA</strong>'s webpage.</p>

<p>Finite orbits give rise to finite quotients of a group, and finite cycles can help to check for conjugacy. Therefore it is important to be able to determine them:</p>

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

<h5>3.3-4 <span class="Heading">
    ShortOrbits (for rcwa groups) & ShortCycles (for rcwa permutations)
  </span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortOrbits</code>( <var class="Arg">G</var>, <var class="Arg">S</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortOrbits</code>( <var class="Arg">G</var>, <var class="Arg">S</var>, <var class="Arg">maxlng</var>, <var class="Arg">maxn</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortCycles</code>( <var class="Arg">g</var>, <var class="Arg">S</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortCycles</code>( <var class="Arg">g</var>, <var class="Arg">S</var>, <var class="Arg">maxlng</var>, <var class="Arg">maxn</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortCycles</code>( <var class="Arg">g</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: in the first form a list of all orbits of the rcwa group <var class="Arg">G</var> of length at most <var class="Arg">maxlng</var> which intersect non-trivially with the set <var class="Arg">S</var>. In the second form a list of all orbits of the rcwa group <var class="Arg">G</var> of length at most <var class="Arg">maxlng</var> which intersect non-trivially with the set <var class="Arg">S</var> and which, in terms of euclidean norm, do not exceed <var class="Arg">maxn</var>. In the third form a list of all cycles of the rcwa permutation <var class="Arg">g</var> of length at most <var class="Arg">maxlng</var> which intersect non-trivially with the set <var class="Arg">S</var>. In the fourth form a list of all cycles of the rcwa permutation <var class="Arg">g</var> of length at most <var class="Arg">maxlng</var> which intersect non-trivially with the set <var class="Arg">S</var> and which, in terms of euclidean norm, do not exceed <var class="Arg">maxn</var>. In the fifth form a list of all cycles of the rcwa permutation <var class="Arg">g</var> of length at most <var class="Arg">maxlng</var> which do not correspond to cycles consisting of residue classes.</p>

<p>The operation <code class="func">ShortOrbits</code> recognizes an option <var class="Arg">finite</var>. If this option is set, it is assumed that all orbits are finite, in order to speed up the computation. If furthermore <var class="Arg">maxlng</var> is negative, a list of <em>all</em> orbits which intersect non-trivially with <var class="Arg">S</var> is returned.</p>

<p>There is an operation <code class="code">CyclesOnFiniteOrbit(</code><var class="Arg">G</var><code class="code">,</code><var class="Arg">g</var><code class="code">,</code><var class="Arg">n</var><code class="code">)</code> which returns a list of all cycles of the rcwa permutation <var class="Arg">g</var> on the orbit of the point <var class="Arg">n</var> under the action of the rcwa group <var class="Arg">G</var>. Here <var class="Arg">g</var> is assumed to be an element of <var class="Arg">G</var>, and the orbit of <var class="Arg">n</var> is assumed to be finite.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(1,4,2,4)*ClassTransposition(1,4,3,4),</span>
<span class="GAPprompt">></span> <span class="GAPinput">              ClassTransposition(3,9,6,18)*ClassTransposition(1,6,3,9));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List(ShortOrbits(G,[-15..15],100),</span>
<span class="GAPprompt">></span> <span class="GAPinput">        orb->StructureDescription(Action(G,orb)));</span>
"A15""A4""1""1""C3""1""(C2 x C2 x C2) : (C7 : C3)""1"
  "1""C3""A19" ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortCycles(mKnot(7),[1..100],20);</span>
[ [ 1 ], [ 2 ], [ 3 ], [ 4 ], [ 5 ], [ 6 ], [ 78 ], [ 910 ], 
  [ 1112 ], [ 131416182022191715 ], [ 2124 ], 
  [ 2326 ], [ 2528323631273034383329 ], 
  [ 3540 ], [ 37424854474146524539445043 ], 
  [ 7788100114130148127109124107122105120103
      89 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,2,1,2],[0,5,4,5],[1,4,0,6]],ClassTransposition));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CyclesOnFiniteOrbit(G,G.1*G.2,0);</span>
[ [ 014985 ], [ 67 ], [ 101114191815 ], [ 1213 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(CyclesOnFiniteOrbit(G,G.1*G.2*G.3*G.1*G.3*G.2,32),Length);</span>
31483148 ]

</pre></div>

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

<h5>3.3-5 <span class="Heading">
    ShortResidueClassOrbits & ShortResidueClassCycles
  </span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortResidueClassOrbits</code>( <var class="Arg">G</var>, <var class="Arg">modulusbound</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ShortResidueClassCycles</code>( <var class="Arg">g</var>, <var class="Arg">modulusbound</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ResidueClassCyclesThroughResidueClass</code>( <var class="Arg">g</var>, <var class="Arg">cl</var>, <var class="Arg">modulusbound</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: in the first form a list of all orbits of residue classes under the action of the rcwa group <var class="Arg">G</var> which contain a residue class <span class="SimpleMath">\(r(m)\)</span> such that <span class="SimpleMath">\(m\)</span> divides <var class="Arg">modulusbound</var> and which are not longer than <var class="Arg">maxlng</var>. In the second form a list of all cycles of residue classes of the rcwa permutation <var class="Arg">g</var> which contain a residue class <span class="SimpleMath">\(r(m)\)</span> such that <span class="SimpleMath">\(m\)</span> divides <var class="Arg">modulusbound</var> and which are not longer than <var class="Arg">maxlng</var>. In the third form a list of all cycles of residue classes of the rcwa permutation <var class="Arg">g</var> which contain a residue class <span class="SimpleMath">\(r(m)\)</span> which is a subset of the residue class <var class="Arg">cl</var> on which <var class="Arg">g</var> is affine and whose modulus <span class="SimpleMath">\(m\)</span> divides <var class="Arg">modulusbound</var>.</p>

<p>We are only talking about a <em>cycle</em> of residue classes of an rcwa permutation <span class="SimpleMath">\(g\)</span> if the restrictions of <span class="SimpleMath">\(g\)</span> to all contained residue classes are affine. Similarly we are only talking about an <em>orbit</em> of residue classes under the action of an rcwa group <span class="SimpleMath">\(G\)</span> if the restrictions of all elements of <span class="SimpleMath">\(G\)</span> to all residue classes in the orbit are affine.</p>

<p>The returned lists may contain additional cycles, resp., orbits, which do not contain a residue class <span class="SimpleMath">\(r(m)\)</span> such that <span class="SimpleMath">\(m\)</span> divides <var class="Arg">modulusbound</var>, but which happen to be found without additional efforts.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">g := ClassTransposition(0,2,1,2)*ClassTransposition(0,4,1,6);</span>
<rcwa permutation of Z with modulus 12>
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortResidueClassCycles(g,Mod(g)^2,20);</span>
[ [ 2(12), 3(12) ], [ 10(12), 11(12) ], [ 4(24), 5(24), 7(36), 6(36) ], 
  [ 20(24), 21(24), 31(36), 30(36) ], 
  [ 8(48), 9(48), 13(72), 19(108), 18(108), 12(72) ], 
  [ 40(48), 41(48), 61(72), 91(108), 90(108), 60(72) ], 
  [ 16(96), 17(96), 25(144), 37(216), 55(324), 54(324), 36(216), 24(144
     ], 
  [ 80(96), 81(96), 121(144), 181(216), 271(324), 270(324), 180(216), 
      120(144) ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">ResidueClassCyclesThroughResidueClass(g,ResidueClass(1,4),2^2*12);</span>
[ [ 5(24), 7(36), 6(36), 4(24) ], [ 21(24), 31(36), 30(36), 20(24) ], 
  [ 9(48), 13(72), 19(108), 18(108), 12(72), 8(48) ], 
  [ 41(48), 61(72), 91(108), 90(108), 60(72), 40(48) ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Collected(List(ResidueClassCyclesThroughResidueClass(g,</span>
<span class="GAPprompt">></span> <span class="GAPinput">                  ResidueClass(1,4),2^6*12),Length));</span>
[ [ 42 ], [ 64 ], [ 86 ], [ 108 ], [ 124 ], [ 142 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List(ResidueClassCyclesThroughResidueClass(g,</span>
<span class="GAPprompt">></span> <span class="GAPinput">        ResidueClass(1,4),2^4*12),cyc->cyc[1]);</span>
5(24), 21(24), 9(48), 41(48), 13(72), 61(72), 17(96), 81(96), 25(144), 
  121(144), 33(192), 161(192) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(Difference(ResidueClass(1,4),Union(last)));</span>
1(36U 49(144U 97(144U 65(192U 129(192)
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[0,6,5,6],[1,4,4,6],[2,4,3,6]],ClassTransposition));</span>
<(0(6),5(6)),(1(4),4(6)),(2(4),3(6))>
<span class="GAPprompt">gap></span> <span class="GAPinput">ShortResidueClassOrbits(G,48,10);</span>
[ [ 7(12) ], [ 8(12) ], [ 1(24), 4(36) ], [ 2(24), 3(36) ], 
  [ 12(24), 17(24), 28(36) ], [ 18(24), 23(24), 27(36) ], 
  [ 37(48), 58(72), 87(108) ], [ 38(48), 57(72), 88(108) ], 
  [ 0(48), 5(48), 10(72), 15(108) ], [ 6(48), 11(48), 9(72), 16(108) ] ]

</pre></div>

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

<h5>3.3-6 ComputeCycleLength</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ComputeCycleLength</code>( <var class="Arg">g</var>, <var class="Arg">n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>Returns: a record containing the length, the largest point and the position of the largest point of the cycle of the rcwa permutation <var class="Arg">g</var> which contains the point <var class="Arg">n</var>, provided that this cycle is finite.</p>

<p>If the cycle is infinite, the function will run into an infinite loop unless the option <code class="code">"abortat"</code> is set to the maximum number of iterates to be tried before aborting. Iterates are not stored, to save memory. The function interprets an option <code class="code">"notify"</code>, which defaults to 10000; every <q>notify</q> iterations, the number of binary digits of the latest iterate is printed. This output can be suppressed by the option <code class="code">quiet</code>. The function also interprets an option <code class="code">"small"</code>, which may be set to a range within which small points are recorded and returned in a component <code class="code">smallpoints</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">g := Product(List([[0,5,3,5],[1,2,0,6],[2,4,3,6]],</span>
<span class="GAPprompt">></span> <span class="GAPinput">                     ClassTransposition));</span>
<rcwa permutation of Z with modulus 180>
<span class="GAPprompt">gap></span> <span class="GAPinput">ComputeCycleLength(g,20:small:=[0..1000]);</span>
n = 20: after 10000 steps, the iterate has 1919 binary digits.
n = 20: after 20000 steps, the iterate has 2908 binary digits.
n = 20: after 30000 steps, the iterate has 1531 binary digits.
n = 20: after 40000 steps, the iterate has 708 binary digits.
rec( aborted := false, g := <rcwa permutation of Z with modulus 180>, 
  length := 45961
  maximum := 180479928411509527091314790144929480041473309862957394384783\
0525935437431021442346166422201250935268553945158085769924448388724679753\
5271669245363980744610119632280105994423399614803956244808653465492205657\
8650363041608376587943180444494842094693691286183613056599672737336761093\
3101035841077322874883200384115281051837032147150147712534199292886436789\
7520389780289517825203780151058517520194926468391308525704499649905091899\
9667529835495635671154681958992898010506577172313321500572646883756736685\
0158653917532084531267455434808219032998691038943070902228427549279555530\
6429870190316109419051531138721361826083376315737131067799731181096142797\
4868525347003646887454985757711743327946232372385342293662007684758208408\
8635715976464060647431260835037213863991037813998261883899050447111540742\
5857187943077255493709629738212709349458790098815926920248565399938335540\
8092502449690267365120996852, maxpos := 19825, n := 20
  smallpoints := [ 20236699294295298441447882890
      893 ] )

</pre></div>

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

<h5>3.3-7 CycleRepresentativesAndLengths</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; CycleRepresentativesAndLengths</code>( <var class="Arg">g</var>, <var class="Arg">S</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: a list of pairs (cycle representative, length of cycle) for all cycles of the rcwa permutation <var class="Arg">g</var> which have a nontrivial intersection with the set <var class="Arg">S</var>, where fixed points are omitted.</p>

<p>The rcwa permutation <var class="Arg">g</var> is assumed to have only finite cycles. If <var class="Arg">g</var> has an infinite cycle which intersects non-trivially with <var class="Arg">S</var>, this may cause an infinite loop unless a cycle length limit is set via the option <code class="code">abortat</code>. The output can be suppressed by the option <code class="code">quiet</code>.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">g := ClassTransposition(0,2,1,2)*ClassTransposition(0,4,1,6);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">CycleRepresentativesAndLengths(g,[0..50]);</span>
[ [ 22 ], [ 44 ], [ 86 ], [ 102 ], [ 142 ], [ 168 ], 
  [ 204 ], [ 222 ], [ 262 ], [ 284 ], [ 3210 ], [ 342 ], 
  [ 382 ], [ 406 ], [ 444 ], [ 462 ], [ 502 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">g := Product(List([[0,5,3,5],[1,2,0,6],[2,4,3,6]],</span>
<span class="GAPprompt">></span> <span class="GAPinput">                     ClassTransposition));</span>
<rcwa permutation of Z with modulus 180>
<span class="GAPprompt">gap></span> <span class="GAPinput">CycleRepresentativesAndLengths(g,[0..100]:abortat:=100000);</span>
n = 20: after 10000 steps, the iterate has 1919 binary digits.
n = 20: after 20000 steps, the iterate has 2908 binary digits.
n = 20: after 30000 steps, the iterate has 1531 binary digits.
n = 20: after 40000 steps, the iterate has 708 binary digits.
n = 79: after 10000 steps, the iterate has 1679 binary digits.
n = 100: after 10000 steps, the iterate has 712 binary digits.
n = 100: after 20000 steps, the iterate has 2507 binary digits.
n = 100: after 30000 steps, the iterate has 3311 binary digits.
n = 100: after 40000 steps, the iterate has 3168 binary digits.
n = 100: after 50000 steps, the iterate has 3947 binary digits.
n = 100: after 60000 steps, the iterate has 4793 binary digits.
n = 100: after 70000 steps, the iterate has 5325 binary digits.
n = 100: after 80000 steps, the iterate has 6408 binary digits.
n = 100: after 90000 steps, the iterate has 7265 binary digits.
n = 100: after 100000 steps, the iterate has 7918 binary digits.
[ [ 07 ], [ 53 ], [ 77159 ], [ 119 ], [ 19342 ],
  [ 2045961 ], [ 253 ], [ 2621 ], [ 292 ], [ 313941 ],
  [ 3419 ], [ 377 ], [ 405 ], [ 417 ], [ 463 ], [ 492 ],
  [ 59564 ], [ 61577 ], [ 653 ], [ 6723 ], [ 7141 ],
  [ 7916984 ], [ 805 ], [ 853 ], [ 863 ], [ 892 ], [ 919 ],
  [ 941355 ], [ 977 ], [ 100, fail ] ]

</pre></div>

<p>Often one also wants to know which residue classes an rcwa mapping or an rcwa group fixes setwise:</p>

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

<h5>3.3-8 FixedResidueClasses</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; FixedResidueClasses</code>( <var class="Arg">g</var>, <var class="Arg">maxmod</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; FixedResidueClasses</code>( <var class="Arg">G</var>, <var class="Arg">maxmod</var> )</td><td class="tdright">( operation )</td></tr></table></div>
<p>Returns: the set of residue classes with modulus greater than 1 and less than or equal to <var class="Arg">maxmod</var> which the rcwa mapping <var class="Arg">g</var>, respectively the rcwa group <var class="Arg">G</var>, fixes setwise.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">FixedResidueClasses(ClassTransposition(0,2,1,4),8);</span>
2(3), 3(4), 4(5), 6(7), 3(8), 7(8) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">FixedResidueClasses(Group(ClassTransposition(0,2,1,4),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                             ClassTransposition(0,3,1,3)),12);</span>
2(3), 8(9), 11(12) ]

</pre></div>

<p>Frequently one needs to compute balls of certain radius around points or group elements, be it to estimate the growth of a group, be it to see how an orbit looks like, be it to search for a group element with certain properties or be it for other purposes:</p>

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

<h5>3.3-9 <span class="Heading">
    Ball (for group, element and radius or group, point, radius and action)
  </span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Ball</code>( <var class="Arg">G</var>, <var class="Arg">g</var>, <var class="Arg">r</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Ball</code>( <var class="Arg">G</var>, <var class="Arg">p</var>, <var class="Arg">r</var>, <var class="Arg">action</var> )</td><td class="tdright">( method )</td></tr></table></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; Ball</code>( <var class="Arg">G</var>, <var class="Arg">p</var>, <var class="Arg">r</var> )</td><td class="tdright">( method )</td></tr></table></div>
<p>Returns: the ball of radius <var class="Arg">r</var> around the element <var class="Arg">g</var> in the group <var class="Arg">G</var>, respectively the ball of radius <var class="Arg">r</var> around the point <var class="Arg">p</var> under the action <var class="Arg">action</var> of the group <var class="Arg">G</var>, respectively the ball of radius <var class="Arg">r</var> around the point <var class="Arg">p</var> under the action <code class="code">OnPoints</code> of the group <var class="Arg">G</var>,</p>

<p>All balls are understood with respect to <code class="code">GeneratorsOfGroup(<var class="Arg">G</var>)</code>. As membership tests can be expensive, the former method does not check whether <var class="Arg">g</var> is indeed an element of <var class="Arg">G</var>. The methods require that element- / point comparisons are cheap. They are not only applicable to rcwa groups. If the option <var class="Arg">Spheres</var> is set, the ball is split up and returned as a list of spheres. There is a related operation <code class="code">RestrictedBall(<var class="Arg">G</var>,<var class="Arg">g</var>,<var class="Arg">r</var>,<var class="Arg">modulusbound</var>)</code> specifically for rcwa groups which computes only those elements of the ball whose moduli do not exceed <var class="Arg">modulusbound</var>, and which can be reached from <var class="Arg">g</var> without computing intermediate elements whose moduli do exceed <var class="Arg">modulusbound</var>. The latter operation interprets an option <code class="code">"boundaffineparts"</code>. -- If this option is set and the group <var class="Arg">G</var> and the element <var class="Arg">g</var> are in sparse representation, then <var class="Arg">modulusbound</var> is actually taken to be a bound on the number of affine parts rather than a bound on the modulus.</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">PSL2Z := Image(IsomorphismRcwaGroup(FreeProduct(CyclicGroup(2),</span>
<span class="GAPprompt">></span> <span class="GAPinput">                                                   CyclicGroup(3))));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List([1..10],k->Length(Ball(PSL2Z,[0,1],k,OnTuples)));</span>
481422345074106154218 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">Ball(Group((1,2),(2,3),(3,4)),(),2:Spheres);</span>
[ [ () ], [ (3,4), (2,3), (1,2) ],
  [ (2,3,4), (2,4,3), (1,2)(3,4), (1,2,3), (1,3,2) ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(List([[1,2,4,6],[1,3,2,6],[2,3,4,6]],ClassTransposition));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">B := RestrictedBall(G,One(G),20,36:Spheres);; # try replacing 36 by 72</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">List(B,Length);</span>
[ , 11178]

</pre></div>

<p>It is possible to determine group elements which map a given tuple of elements of the underlying ring to a given other tuple, if such elements exist:</p>

<p><a id="X87A3462C82FD376E" namep>a " name">/><pjava.lang.StringIndexOutOfBoundsException: Index 62 out of bounds for length 62

<h5>3.3-10 RepresentativeAction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; RepresentativeAction</code>( <var class="Arg">G</var>, <var class="Arg">source</var>, <var class="Arg">destination</var>, <var class="Arg">action


<p>If an element satisfying this condition does not exist, this method either returns <code class="code">fail</code> or runs into an infinite loop. The problem whether <var class="Arg">source</var> and <var class="Arg">destination</var> lie in the same orbit under the action <var class="Arg">action</var> of <var class="Arg">G</var> is hard, and in its general form most likely computationally undecidable.</p>

<p>In cases where rather a word in the generators of <var class="Arg">G</var> thanspanclass="GAPprompt">></span> <span class="GAPinput">                                                   CyclicGroup(3))));;</span>

<p> algorithm is basedoncomputing balls of increasing radius around <var class="Arg">source</var> and <var class="Arg">destination</var> until they intersect non-trivially.</p>


<pre>

<>aX78F145197F63A25D=X78F145197F63A25D"</a>/p
<span class="GAPprompt">gap>h5>3.< class">
<panclass""gt;/span  =GAPinput"elm:RepresentativeActionG,[74,],4,,]OnTuples);;/spanjava.lang.StringIndexOutOfBoundsException: Index 127 out of bounds for length 127
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(elm);</span>

Rcwa permutation of Z with modulus 12

        /
        |- n 16)U10(2java.lang.StringIndexOutOfBoundsException: Index 35 out of bounds for length 35
        | n+4 if n in 5(12U 9(12)
 n |-> <  n+1 if n in 4(12)
        12)
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        \

<-&t;n^elm);<span
4513 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">elm := RepresentativeAction(G
<span class="GAPprompt">gap></span> <span class="GAPinput">Display(elm);</span>

Rcwa permutation of Z with modulus 12

        /
        |n3 in() U12java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
        | (4n+1)/3  if n in 2(6U 11(12)
        | (4n-1)/3  if n in 4(6U 7(12)
 n |-> <  (2n-8)/3  if n in 1(12)
        | (4n-17)/3 if n in 5(12)
        | (4n-15)/3 if n in 9(12)
        |
        \

<GAPpromptgap&;spanclass"java.lang.StringIndexOutOfBoundsException: Range [61, 60) out of bounds for length 141
[9,,11]
4, -911 ]
<span class="GAPprompt">gap></span> <span class="GAPinput">F := FreeGroup("a","b");; phi := EpimorphismByGeneratorsp><a id="X80D18D0778A96C16 ="X80D18D0778A96C16"</a>/p
<span class="GAPprompt">gap></span> <span class="GAPinput">w := RepresentativeActionPreImage(G,[10,-4,9,5],[4java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
<span class="GAPprompt">></span> <span class="GAPinput">                                     OnTuples,F);</span>
a*b^-divclass="func">tableclass=" =100%><r>td class="tdleft"><code class="func">‣ ShortResidueClassCycles</code>( <var class="Arg">g</var>, <var class="Arg">modulusbound</var>, <var class="Arg">maxlng</var> )</td><td class="tdright">( operation )</td></tr></table></div>
< G<< ="e :w^;/>
<rcwa permutation of Z with modulus 324>
<^elm)</>
[ ,5,13,- ]

</pre></div>

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

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

<h5>3[ [ 2), ()]  121112( (,) ()] 

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; ProjectionsToInvariantUnionsOfResidueClasses</code>( <var class="Arg">G</var>, <var class="Arg">m</var> )</td><td class="tdright">  [4048,41(8) () 91(108,90108)) 6072 ,
<p>Returns: the projections of the rcwa group <var class="Arg">G</var> to <span class="GAPprompt">gap></span> <span class="GAPinput">ResidueClassCyc(g,ResidueClass(,4)2^*12)<span

orresponding  ofasetof representativesfortheresidue   < class""</var)can    theoperationclass=c"java.lang.StringIndexOutOfBoundsException: Range [180, 178) out of bounds for length 241


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(0,2,1,2),ClassShift(3,4));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">ProjectionsToInvariantUnionsOfResidueClassesspan class"GAPprompt>&/pan < "GAPinput"        ResidueClass14)2412,-gt;yc[]</>
[ [ ( 0(2), 1(2) ), ClassShift( 3(4) ) ] -> 
    [ ( 0(4), 1(4) ), IdentityMapping( Integers ) 
  [ ( 0(2), 1(2) ), ClassShift( 3(4) ) ] -> 
    [ ( 2(4), 3(4) ), <rcwa permutation of Z with modulus 4&06)5(6)((,(6)(243(&;
<spanclass"GAPprompt"gap></span><spanclass="GAPinput">List(,phi->Support(Imagephi));/span>
[04  14),24)U3(4) ]

</pre></div>

<p>Given two<pre></div>

<p><a id="X866843D08213067E" nameh5>3.36 ComputeCycleLength</h5>

<h5>3.3-12 RepresentativeAction</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; RepresentativeAction</code>( <var class="Arg">RCWA(R)</var>, <var class="Argp>:a  record containingthelengththetheposition  thelargest pointof thecycle     varclass=Arg"<var>which containsthevarArgn<>    cycleis finite/p>
<pReturns:an  of RCWA(span =SimpleMath>(R\<span>) which maps the partition <var class="Arg">P1</var> to <var class="Arg">P2</var>.</p>

<p>The arguments <var class="Arg">P1</var> and <var class="Arg">P2</var> must be partitions


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">P1 := AllResidueClassesModulo(3);</span>
0(3), 1(3), 2(3) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">P2 := List([[0,2],[1,4],[3,4]],ResidueClass);</span>
[0(,1(4),3( ]
<span class="">&;</span><span class="GAPinput">elm= RepresentativeAction(RCWAIntegers)P1);</>
&
<;
true
<span;<span>
false
<span class="GAPprompt">gap></span> <span class="GAPinput">elm := RepresentativeAction(RCWA(Integers),\
<tame rcwa permutation of Z with modulus  :20,java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
<span class="GAPprompt">gap></span> <span class="GAPinput">P1^elm = P2;</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">elm := RepresentativeAction(RCWA(Integers),</span>
<span classh53.- </
<span class="GAPprompt">></span> <span class="GAPinput"iv class">< java.lang.StringIndexOutOfBoundsException: Range [31, 30) out of bounds for length 264
<span class="GAPprompt">></span> <span class="GAPinput">            [ResidueClassUnion(Integers,5,[2,4]),</span>
< java.lang.StringIndexOutOfBoundsException: Range [12, 11) out of bounds for length 119
<rcwa permutation of Z with modulus 6>
<spanp> rcwapermutation <varclass="Arg">g</var> is assumed to have only finite cycles. If <var class="Arg">g</var> has an infinite cycle which intersects non-trivially with <var class="Arg">S</var>, this may cause an infinite loop unless a cycle length limit is set via the option <code class="code">abortat</code>. The output can be suppressed by the option <code class="code">quiet</code>.</p>
2(5U 4(5), Z \ 2(5U 4(5) ]

<pre>/div

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

<3313CollatzLikeMappingByOrbitTreejava.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; CollatzLikeMappingByOrbitTree</code>( <var class="Arg">G</var>, <var class="Arg">n</var>, <var class
<>Returns either anrcwa  span class""\f)/span>which maps the sphere of radius <span class="SimpleMath">\(r\)</span> about <var class="Arg">n</var> under the action of <var class="Arg">G</var> into the sphere of radius <span class="SimpleMath">\(r-1\)</span> about <var class="Arg">n</var> for every <span class="SimpleMath">\(r\)</span> ranging from <var class="Arg">min_r</var> to <var class="Arg">max_r</var>, or <code class="code">fail</code>.</p>

<p>Obviously not for every rcwa group and every root point a mapping <span class="SimpleMath">\(f\)</span> with these properties exists, and if it exists, it usually depends on the choice of generators of the group.</p>


<iv java.lang.StringIndexOutOfBoundsException: Range [21, 19) out of bounds for length 26

<span class="[94 1355 ], [97, ], [ 100 fail ] ]
<span class="GAPprompt">></span> <span pre<div
<span class="GAPprompt">gap></span> <span class="GAPinput">G := SparseRep(G);;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">f := CollatzLikeMappingByOrbitTree(G,0,4,10);</span>
<rcwa mapping of Z with modulus 4 and 4 affine parts>
<span h5>3.3-8 java.lang.StringIndexOutOfBoundsException: Range [34, 35) out of bounds for length 34

Rcwa mapping of Z with modulus 4 and 4 affine parts

        /
        | n+1      if n in 0(4)
        |3+1/2 if nin1(4)
 n |-> <  n/2      if n in 2(4)
        | n-1      if n <>: set of   with    1 lessthan orequal to varclass""maxmod/var> which  rcwamapping<varclass=Arg><var> respectively thercwa  varclass="Arg"G/>  ./pjava.lang.StringIndexOutOfBoundsException: Index 244 out of bounds for length 244
        |
        \

<span class="GAPprompt">gap></span> <span class="GAPinput">B := Ball(G,0,15:Spheres)span class="GAPprompt"gap&t<span><span classGAPinput">FixedResidueClasses(Group(ClassTransposition(0,2,1,4),</span>
[ [ 0 ], [ 1 ], [ 2 ], [ 3 ], [ 6 ], [ 7 ], [ 14 ], [ 915 ], [ 81830 ], 
  [ 51931 ], [ 4103862 ], [ 1125394163 ], 
  [ 222440507882126 ], [ 2333517983127 ], 
  [ 324666102158166254 ], 
  [ 214767103105159167169255 ] ]
<span class="GAPprompt">gap></span> <span class="GAPinput">List([3..15],i->IsSubset(B[i-1],B[i]^f));</span>
[ true, true, true, true, true, true, true, true, true, true, true, true,
  true ]
<span class=    Ball(for group, elementand radius  groupgroup, , radius  action)
52538081122619293140141212213320321482241
  362181272273410205308309464465698349524525788
  78911841185177888913346676663335005017527531130
   848 849,1274 637 ,957 1436,1437,2156,2157,3236 3237 
  485648577286364336421821273227334100410161526153
  92304615461423072306115317308651298649974487486
  24324212118291904568691041051587978393819
  18914

<pan "GAPprompt"&t/span=GAPinput"                                                   3));/span

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

<>. span Heading>
  Special attributes of tame residue-class-wise affine groups
</span></h4>

<p>There are a couple of attributes which a < =GAPprompt">gapgt;/span><class"GAPinput"G:=Group(ist([12,,][,,,][,,,],ClassTransposition);</span

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

<h5>.-1<span "Heading"
    RespectedPartition (of a tame rcwa group or -permutation)
  </span></h5>

<class"func"<class=""width=100"<tr>td class=tdleft"<codeclass=func"&8227; RespectedPartition<code(<var class=="Arg><var)/td<td class=tdright"(n;&;)/>/></able></div>
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; RespectedPartition</code>( <var class="Arg">g</var> )</java.lang.StringIndexOutOfBoundsException: Index 158 out of bounds for length 0
<pReturns:  shortest and  possible respected partition ofthe rcwagroup var="Arg"G/var> of thercwa <var class=""g/var>./p

<p>A tame element <span class="SimpleMath">\(g\)</span> <span class="SimpleMath">\(\in\)</span> RCWA(<span class="SimpleMath">\(R\)</span>) permutes a partition of <span class="SimpleMath">\(R\)</span> into finitely many residue classes on all of which it is affine. Given a tame group <span class="SimpleMath">\(G\)</span> <span class="SimpleMath">\(<\)</span> RCWA(<span class="SimpleMath">\(R\)</span>), there is a common such partition for all elements of <span class="SimpleMath">\(G\)</span>. We call the mentioned partitions <em>respected partitions</em> of <span class="SimpleMath">\(g\)</span> or <span class="SimpleMath">\(G\)</span>, respectively.</p>

<p>An rcwa group or an rcwa permutation has a respected partition if and only if it is tame. This holds either by definition or by Theorem 2.5.8 in <a href="chapBib_mj.html#biBKohl05">[Koh05]</a>, depending on how one introduces the notion of tameness.</p>

<="Arg">G</var< =Arg">P</var>)</code>/<class="">espectsPartition(var class=""g<var><var class"">P</var)/code>,which tests whether var class=Arg>G</var>or var class"Arg><var respects a given partition <var class="Arg">P</var>. The permutation induced by <var class="Arg">g</var> on <code class="code">P</code> can be computed efficiently by <code class="code">PermutationOpNC(<var class="Arg">g</var>,P,OnPoints)</code>.</p>


<div class="example"div class""<java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(0,4,1,6),<span class="GAPprompt">gap></span> <span class="GAPinput">a := RcwaMapping([[2,0,3],[4,-1,3],[4,1,3]])a)<span
&trcwa group overZ 2 generatorsg;
< class="GAPprompt"gap&<span<span class="APinput">IsTame(G);</span>
true
<span class="GAPprompt">gapjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
infinity
<span class="GAPprompt">gap></span> <span class="GAPinput">P := RespectedPartition(G n+ if in ()U (12
0(4), 2(4), 1(6), 3(6), 5(6) ]

</pre></div>

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

<h5>3.4-2 <span class[ 4,,13]
    ActionOnRespectedPartition &;KernelOfActionOnRespectedPartition
  </span></h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class=|2n      n in0U 3(12)
<div 4n)3 ifn 46)U712)
<iv=f"<= 100"><dclass="tdleft"><code class="func">‣ RankOfKernelOfActionOnRespectedPartition</code>( <var class="Arg">G</var> )</td><td class="tdright">( attribute )</td></tr></table></div>
<p>Returns:|(4n-17) ifn  512)

<p>The method for <code class="code">KernelOfActionOnRespectedPartition</code> uses the package <strong class="pkg">Polycyclic</strong> <a href="chapBib_mj.java.lang.StringIndexOutOfBoundsException: Index 160 out of bounds for length 9


<div class=-9 ,11  ]

<">gap&;/pan> spanclass="GAPinput"> : GroupClassTransposition0,4,1,,lassShift(,)</>
<span class =GAPprompt"gap&;</ span="" = ([,-49,][4,,3,8]/panjava.lang.StringIndexOutOfBoundsException: Index 129 out of bounds for length 129
Group([ (1,3), (1,2) ])
<span class="GAPprompt">gap&ab^1*-1(b^1**)^*a*^-*a**a-1b
true
"GAPprompt"gap&;spanspan =GAPinput"Size)</>
6
<span class="GAPprompt">gap></span> <span class="GAPinput">K := KernelOfActionOnRespectedPartition(G);</span>
<rcwa group over Z with 
<span class="GAPprompt">gap></span> <span class="GAPinput">RankOfKernelOfActionOnRespectedPartition(G);</span>
3
<java.lang.StringIndexOutOfBoundsException: Range [55, 3) out of bounds for length 60
6
<span class="GAPprompt">gap></span> <span class="GAPinput">List(GeneratorsOfGroup(K),Factorization);</span>
[ [
"APprompt">gap&t</span span java.lang.StringIndexOutOfBoundsException: Range [51, 50) out of bounds for length 99
Pcp-group with orders [ 000 ]

</pre></div>

<p>Let ass=>g;span spanclass"GAPinput>rojectionsToInvariantUnionsOfResidueClasses);<span>

<p>The conjugate <span class="SimpleMath">\(G^g\)[ 041() , Integers)],java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">G := Group(ClassTransposition(0,4,1,6),ClassShift(0,2));;</span>
<span class="GAPprompt">gap></span> <span class="GAPinput">G^IntegralizingConjugator(G) = IntegralConjugate(G);</span>
true
<span class="GAPprompt">gap></span> <span class="GAPinput">RespectedPartition(G);</span>
0(4), 2(4), 1(6), 3(6), 5(6) ]
<span class=java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
0(5), 1(5), 2(5), 3(5), 4(5) ]
<span class="GAPprompt">gap></span> <span class="GAPinput">last = RespectedPartition(IntegralConjugate(G));</span>
true

</pre></div>

<X81941A247942FB99=java.lang.StringIndexOutOfBoundsException: Range [54, 52) out of bounds for length 62

<>.5<=Headingpseudo- of ()and(R</spanh4

<p>There are methods for the operation <code class="code">Random</code> for RCWA(<span class="SimpleMath">\(R\)</span>) and CT(<span class="SimpleMath">\(<pan class="""P2 :=List([,],,4,[4],ResidueClass)<>


<iv =example"<prejava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26

<span=""gapgt<span <span class=GAPinput> :Random(CWA(ntegers);/span>
<span class="GAPpromptspan class">><span <spanclass">sTame(lm)</span>

cwapermutationofZ  

        /
        | 6n+12     if n in 2(10U 4(10U 6(10U 8(10)
        | 3n+3      if n in 1(20U 5(20U 9(20U 17(20)
        | 6n+10     if n in 0(10)
        | (n+1)/2   if n in 15(60U 27(60U 39(60U 51(60)
        | (n+7)/2   if n in 19(60U 31(60U 43(60U 55(60)
        | 3n+1      if n in 13(20)
        | (-n+17)/6 if n in 23(180U 35(180U 59(180U 71(180U 
 n |-> <                    95(180U 131(180U 143(180U 179(180)
        | (-n-1)/6  if n in 11(180U 47(180)<permutationofZwith  >
        | (-n+7)/2  if n in 3(60)
        | (n+3)/2   if n in 7(60)
        | (n-17)/6  if n in 107(180)
        | (-n+11)/6 if n in 119(180)
         (-n+29)6  nin 167180java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
        java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9

</pre></div>

<p>The elements which are returned by this method are obtained by multiplying class shifts (see <code class="func">ClassShift</code> (<a href="chap2_mj.html#X86B611BD7EED62A1"><span class="RefLink">2.2-1</span></a>)), class reflections (see <code class="func">ClassReflection</code> (<a href="chap2_mj.html#X7896C5417E3692B4"><span class="RefLink">2.2-2</span></a>)) and class transpositions (see <code class="func">ClassTransposition</code> (<a href="chap2_mj.html#X8716A75F7DD1C46B"><span class="RefLink">2.2-3</span></a>)). These factors can be retrieved by factoring:</p>


<div class="example"><pre>

<span class="GAPprompt">gap></span> <span class="GAPinput">Factorization(elm);</span>
[ ClassTransposition(0,2,3,4), ClassTransposition(1,2,4,6), ClassShift(0,2), 
  ClassShift(1,3), ClassReflection(2,5), ClassReflection(1,3), 
  ClassReflection(1,2) ]

</pre></div>

<p><a id

<h4>3.6 <span class="Heading">The categories

<p><a id="X84AFBB997B694A3D" java.lang.StringIndexOutOfBoundsException: Range [0, 33) out of bounds for length 31

<java.lang.StringIndexOutOfBoundsException: Range [4, 3) out of bounds for length 26

<div class="func"><table class="span class="GAPprompt">gap></span java.lang.StringIndexOutOfBoundsException: Range [52, 50) out of bounds for length 95
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&#an style='color: green'>8227; IsRcwaGroupOverZ</code>( <var class="Arg">G</var>  5 , ] [, ,38,62  [11 25 39,41, ] 
<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><java.lang.StringIndexOutOfBoundsException: Index 78 out of bounds for length 38
<div class=func>tableclass="func" width="100%"><tr><td class="tdleft"><code class="func">&# style='color: green'>8227; IsRcwaGroupOverGFqx</code>( <var class="Arg">G</var> )</td><td class="tdright">( filter )</td></tr></table></div>
<p>Returns: <code class="code">true</code> if <var class="Arg">G</var> is an true, true,true,true,true,true,true java.lang.StringIndexOutOfBoundsException: Range [50, 48) out of bounds for length 73

<p>Often the same methods can be used for rcwa groups over  52, 53, 80, 81, 122, 61, 92, 93, 140, 141, 212, 213, 320, 321

<p>To allow distinguishing the groups RCWA(<span class="SimpleMath">\(R\)</span>) and CT(<span class="SimpleMath">\(R\)</span>) from others, they have the characteristic property <code class="code">java.lang.StringIndexOutOfBoundsException: Index 205 out of bounds for length 77


<div class=",4857,7286, 3643,,1821, , , , ,61526153, 


<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_mj18 9, 14, 7 , 32,1 

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

Messung V0.5 in Prozent
C=100 H=100 G=100

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

*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.