Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 91213ddcfbe7f54821d42c2d9e091326 > files > 2902

gap-system-packages-4.4.12-5mdv2010.0.i586.rpm

<?xml version="1.0" encoding="ISO-8859-1"?>

<!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>
<title>GAP (UnitLib) - Chapter 2: UnitLib functions</title>
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1" />
<meta name="generator" content="GAPDoc2HTML" />
<link rel="stylesheet" type="text/css" href="manual.css" />
</head>
<body>


<div class="pcenter"><table class="chlink"><tr><td class="chlink1">Goto Chapter: </td><td><a href="chap0.html">Top</a></td><td><a href="chap1.html">1</a></td><td><a href="chap2.html">2</a></td><td><a href="chap3.html">3</a></td><td><a href="chap4.html">4</a></td><td><a href="chapBib.html">Bib</a></td><td><a href="chapInd.html">Ind</a></td></tr></table><br /></div>
<p><a id="s0ss0" name="s0ss0"></a></p>

<h3>2. <strong class="pkg">UnitLib</strong> functions</h3>

<p>Since the main purpose of <strong class="pkg">UnitLib</strong> is the storage of large amount of data, it has only two main user functions, which allow to read the description of V(KG) for the given catalogue number of G in the Small Groups Libary of the <strong class="pkg">GAP</strong> system, and to save the description of V(KG) if the user would like to store it for further usage for the group that is not contained in the library.</p>

<p>Examples below contain some functions from the <strong class="pkg">LAGUNA</strong> package <a href="chapBib.html#biBLaguna">[BK+]</a>, see their description in the <strong class="pkg">LAGUNA</strong> manual.</p>

<p>To use the <strong class="pkg">UnitLib</strong> package first you need to load it as follows:</p>


<table class="example">
<tr><td><pre>


gap&gt; LoadPackage("unitlib");
----------------------------------------------------------------------------
Loading  UnitLib 2.1 (Library of normalized unit groups of modular group algebras)
by Alexander Konovalov (http://www.cs.st-andrews.ac.uk/~alexk/) and
   Elena Yakimenko (k-algebra@zsu.zp.ua).
----------------------------------------------------------------------------
true
gap&gt;


</pre></td></tr></table>

<p>In case of a non-UNIX system, a warning will be displayed about non-availability of the library of normalized unit groups for groups of orders 128 and 243.</p>

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

<h4>2.1 MainFunctions</h4>

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

<h5>2.1-1 PcNormalizedUnitGroupSmallGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; PcNormalizedUnitGroupSmallGroup</code>( <var>s, n</var> )</td><td class="tdright">( function )</td></tr></table></div>
<p><b>Returns: </b>PcGroup</p>

<p>Let <var>s</var> be a power of prime p and <var>n</var> is an integer from <code class="code">[ 1 .. NrSmallGroups(s) ]</code>. Then <code class="code">PcNormalizedUnitGroupSmallGroup(<var>s</var>,<var>n</var>)</code> returns the normalized unit group V(KG) of the modular group algebra KG, where G is <code class="code">SmallGroup(<var>s</var>,<var>n</var>)</code> and K is a field of p elements.</p>


<table class="example">
<tr><td><pre>


gap&gt; PcNormalizedUnitGroupSmallGroup(128,161);
&lt;pc group of size 170141183460469231731687303715884105728 with 127 generators&gt;


</pre></td></tr></table>

<p>The result returned by <code class="code">PcNormalizedUnitGroupSmallGroup</code> will be equivalent to the following sequence of commands:</p>


<table class="example">
<tr><td><pre>
                                                                         
                                                                         
gap&gt; G := SmallGroup( s, n );
gap&gt; p := PrimePGroup( G );
gap&gt; K := GF( p );
gap&gt; KG := GroupRing( K, G );
gap&gt; PcNormalizedUnitGroup( KG );
                                                                               

</pre></td></tr></table>

<p>Nevertheless, <code class="code">PcNormalizedUnitGroupSmallGroup</code> is not just a shortcut for such computation. It reads the description of the normalized unit group from the <strong class="pkg">UnitLib</strong> library and then reconstructs all its necessary attributes and properties. Thus, if you would like to obtain the group algebra KG or the field K and the group G, you should extract them from V(KG), which should be constructed first.</p>


<table class="example">
<tr><td><pre>


gap&gt; V:=PcNormalizedUnitGroup(GroupRing(GF(2),SmallGroup(8,3)));
&lt;pc group of size 128 with 7 generators&gt;
gap&gt; V1:=PcNormalizedUnitGroupSmallGroup(8,3);                   
&lt;pc group of size 128 with 7 generators&gt;
gap&gt; V1=V;     # two isomorphic groups but not identical objects
false
gap&gt; IdGroup(V)=IdGroup(V1);
true
gap&gt; IsomorphismGroups(V,V1);
[ f1, f2, f3, f4, f5, f6, f7 ] -&gt; [ f1, f2, f3, f4, f5, f6, f7 ]
gap&gt; KG:=UnderlyingGroupRing(V1);  # now the correct way
&lt;algebra-with-one over GF(2), with 3 generators&gt;
gap&gt; V1=PcNormalizedUnitGroup(KG); # V1 is an attribite of KG
true
gap&gt; K:=UnderlyingField(KG);
GF(2)
gap&gt; G:=UnderlyingGroup(KG);     
&lt;pc group of size 8 with 3 generators&gt;


</pre></td></tr></table>

<p>Moreover, the original group G can be embedded into the output of the <code class="code">PcNormalizedUnitGroupSmallGroup</code>, as it is shown in the continuation of the previous example:</p>


<table class="example">
<tr><td><pre>


gap&gt; f:=Embedding(G,V1); 
[ f1, f2, f3 ] -&gt; [ f2, f1, f3 ]
gap&gt; g:=List(GeneratorsOfGroup(G), x -&gt; x^f ); 
[ f2, f1, f3 ]
gap&gt; G1:=Subgroup(V1,g);
Group([ f2, f1, f3 ])
gap&gt; IdGroup(G1);
[ 8, 3 ]


</pre></td></tr></table>

<p>If the first argument <var>s</var> (the order of a group) is not a power of prime, an error message will appear. If <var>s</var> is bigger than 243, you will get a warning telling that the library does not contain V(KG) for G of such order, and you can use only data that you already stored in your <code class="file">unitlib/userdata</code> directory with the help of the function <code class="func">SavePcNormalizedUnitGroup</code> (<a href="chap2.html#s1ss2"><b>2.1-2</b></a>).</p>

<p>It is worth to mention that for some groups of order 243, the construction of the normalized unit group using <code class="code">PcNormalizedUnitGroupSmallGroup</code> may already require some noticeable amount of time. For example, it took about 166 seconds of CPU time to compute <code class="code">PcNormalizedUnitGroupSmallGroup(243,30)</code> on Intel Xeon 3.4 GHz with 2048 KB cache.</p>

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

<h5>2.1-2 SavePcNormalizedUnitGroup</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; SavePcNormalizedUnitGroup</code>( <var>G</var> )</td><td class="tdright">( property )</td></tr></table></div>
<p><b>Returns: </b>true</p>

<p>Let <var>G</var> be a finite p-group of order s from the Small Groups Library of the <strong class="pkg">GAP</strong> system, constructed with the help of <code class="code">SmallGroup(s,n)</code>. Then <code class="code">SavePcNormalizedUnitGroup(<var>G</var>)</code> creates the file with the name of the form <code class="file">us_n.g</code> in the directory <code class="file">unitlib/userdata</code>, and returns <code class="keyw">true</code> if this file was successfully generated. This file contains the description of the normalized unit group V(KG) of the group algebra of the group <var>G</var> over the field of p elements.</p>

<p>If the order of <var>G</var> is greater than 243, after this you can construct the group V(KG) using <code class="func">PcNormalizedUnitGroupSmallGroup</code> (<a href="chap2.html#s1ss1"><b>2.1-1</b></a>) similarly to the previous section. The preliminary warning will be displayed, telling that for such orders you can use only those groups that were already computed by the user and saved to the <code class="file">unitlib/userdata</code> directory. If there will be no such file there, you will get an error message, otherwise the computation will begin.</p>

<p>If the order of <var>G</var> is less or equal to 243, then the file will be created in the <code class="file">unitlib/userdata</code> directory, but <strong class="pkg">UnitLib</strong> will continue to use the file with the same name from the appropriate directory in <code class="file">unitlib/data</code>. You can compare these two files to make it sure that they are the same.</p>

<p><strong class="button">WARNINGS:</strong></p>

<p>1. It is important to apply this function to the underlying group G and not to the normalized unit group V(KG).</p>

<p>2. The user should use as an argument only groups from the Small Groups Library of the <strong class="pkg">GAP</strong> system, constructed with the help of <code class="code">SmallGroup(s,n)</code>, otherwise the consistency of data may be lost.</p>


<table class="example">
<tr><td><pre>


gap&gt; SavePcNormalizedUnitGroup( SmallGroup( 256, 56092 ) );
true
gap&gt; PcNormalizedUnitGroupSmallGroup( 256, 56092 );
WARNING : the library of V(KG) for groups of order
256 is not available yet !!!
You can use only groups from the unitlib/userdata directory
in case if you already computed their descriptions
(See the manual for SavePcNormalizedUnitGroup)

Description of V(KG) for G=SmallGroup(256,
56092) accepted, started its generation
&lt;pc group of size
57896044618658097711785492504343953926634992332820282019728792003956564819968
  with 255 generators&gt;


</pre></td></tr></table>

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

<h4>2.2 Service tools</h4>

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

<h5>2.2-1 UNITLIBBuildManual</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; UNITLIBBuildManual</code>( <var></var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This function is used to build the manual in the following formats: DVI, PDF, PS, HTML and text for online help. We recommend that the user should have a recent and fairly complete TeX distribution. Since <strong class="pkg">UnitLib</strong> is distributed together with its manual, it is not necessary for the user to use this function. Normally it is intended to be used by the developers only. This is the only function of <strong class="pkg">UnitLib</strong> which requires UNIX/Linux environment.</p>

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

<h5>2.2-2 UNITLIBBuildManualHTML</h5>

<div class="func"><table class="func" width="100%"><tr><td class="tdleft"><code class="func">&gt; UNITLIBBuildManualHTML</code>( <var></var> )</td><td class="tdright">( function )</td></tr></table></div>
<p>This fuction is used to build the manual only in HTML format. This does not depend on the availability of the TeX installation and works under Windows and MacOS as well. Since <strong class="pkg">UnitLib</strong> is distributed together with its manual, it is not necessary for the user to use this function. Normally it is intended to be used by the developers only.</p>


<div class="pcenter">
<table class="chlink"><tr><td><a href="chap0.html">Top of Book</a></td><td><a href="chap1.html">Previous Chapter</a></td><td><a href="chap3.html">Next Chapter</a></td></tr></table>
<br />


<div class="pcenter"><table class="chlink"><tr><td class="chlink1">Goto Chapter: </td><td><a href="chap0.html">Top</a></td><td><a href="chap1.html">1</a></td><td><a href="chap2.html">2</a></td><td><a href="chap3.html">3</a></td><td><a href="chap4.html">4</a></td><td><a href="chapBib.html">Bib</a></td><td><a href="chapInd.html">Ind</a></td></tr></table><br /></div>

</div>

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