products/sources/formale Sprachen/GAP/pkg/unitlib/doc/   (Browser von der Mozilla Stiftung Version 136.0.1©)  Datei vom 12.5.2025 mit Größe 4 kB image not shown  

Quelle  tech.xml   Sprache: XML

 
<Chapter Label="Theory">
<Heading>Implementation Details</Heading>    

In this chapter we describe the approach used to store the normalized
unit group of the group algebra in the library, and to reconstruct
the group <M>V(KG)</M> from the stored information.

<Section Label="Writing">
<Heading>Saving the data</Heading>

To compute the pc-presentation of the normalized unit group of 
the modular group algebra of a finite <M>p</M>-group we used the 
function <C>PcNormalizedUnitGroup</C> from the &LAGUNA; package.
It uses the algorithm descibed in <Cite Key="Bovdi" />. See the
&LAGUNA; manual <Cite Key="Laguna" /> for more details.
<P/>

When this group is computed, the main idea is to use &GAP; 
function <C>CodePcGroup</C> that returns the code for the
polycyclic generating sequence of the group, and then to create
the group from this code using the &GAP; function <C>PcGroupCode</C>. 
<P/>

The resulting code could be very long, and to compress it
we used the &GAP; function <C>HexStringInt</C> than
returns a string that represents the code with hexa-decimal 
digits (using A-F as digits 10-15). The inverse translation 
then can be performed with the &GAP; function <C>IntHexString</C>.
For example, for groups of order 128, this allows to save almost
20 MB of space and reduce the total size of their database to 90 MB.
<P/>

Furthermore, the library was compressed using
the <File>gzip</File> program. This allowed us, for example,
to reduce the size of the library for groups of order 128
from 90 to 12 MB. Of course, there is some little overhead arising
from the uncompression and subsequent translation from hexa-decimal 
notation, but it is neglectible comparatively with the total time 
of the computation of <M>V(KG)</M> from scratch.
<P/>

There is one more thing that needs to be stored together with
this code to make it sure that we will correctly identify the
underlying group <M>G</M> of the group algebra <M>KG</M> with 
its image in the pc-presentation of the normalized unit group
<M>V(KG)</M>. 
<P/>

The group <M>G</M> is extracted from the &GAP; Small Groups
Library, so it is always the same, unless its description in
the library will be changed (and it will be an important task
of &UnitLib; maintaner to update the package in this case!), 
and here we are safe from inconsistencies. 
<P/>

But the next stage is the computation of generators of the normalized
unit group <M>V(KG)</M>, and the first step is the dimension basis
of the group <M>G</M>, that can be computed using the &LAGUNA; 
function <C>DimensionBasis</C>.  To avoid the influence of possible 
changes in &GAP; or usage of random methods,
we store (in compacted form) the information about the dimension 
basis of <M>G</M> in the &UnitLib;. 
<P/>

All further procedures are implemented inside the &LAGUNA; package, 
and their result is uniquely determined and predictable.
<P/>

For the reader interested in more details, the package contains
the file <File>unitlib/lib/genlib.g</File> with the 
function <C>CreatePcNormalizedUnitGroupsLibrary</C>, that creates
library files for groups of a given prime power order.

</Section>


<Section Label="Reading">
<Heading>Reading the data</Heading>

To reconstruct the normalized unit group <M>V(KG)</M> from the 
library, we need only to know the catalogue number of the 
underlying group <M>G</M> in the &GAP; Small Groups Library.
<P/>

We use the same numbering as in the &GAP; Small Group Library, 
so &UnitLib; finds the appropriate library file(s) and reads from 
it the code for the polycyclic generating sequence of <M>V(KG)</M> 
and the information about the dimension basis of <M>G</M> used 
for the computation of this code.
<P/>

Then <M>V(KG)</M> is created from the code 
using the &GAP; function <Ref Func="PcGroupCode" BookName="ref"/>. 
We also create <M>G</M> using the &GAP; Small Groups Library.
<P/>

Now to <Q>glue</Q> the group <M>V(KG)</M> with the underlying group <M>G</M>
properly, the value of the attribute <Ref Attr="DimensionBasis" BookName="LAGUNA"/> of 
<M>G</M> is set in accordance with the data retrieved from 
the library. This will guarantee the correct construction of
<Ref Attr="NaturalBijectionToPcNormalizedUnitGroup" BookName="LAGUNA"/>
and <Ref Attr="NaturalBijectionToNormalizedUnitGroup" BookName="LAGUNA"/>
by the &LAGUNA; package.
<P/>

It remains now to make only several technical steps, such as
constructing the group algebra <M>KG</M> over the appropriate
field <M>K</M>, and storing <M>KG</M> in the attribute 
<Ref Attr="UnderlyingGroupRing" BookName="LAGUNA"/> of <M>V(KG)</M> 
and <M>V(KG)</M> in the attribute 
<Ref Attr="PcNormalizedUnitGroup" BookName="LAGUNA"/> of <M>KG</M>. 

</Section>

</Chapter>

93%


¤ Dauer der Verarbeitung: 0.26 Sekunden  (vorverarbeitet)  ¤

*© Formatika GbR, Deutschland






Wurzel

Suchen

Beweissystem der NASA

Beweissystem Isabelle

NIST Cobol Testsuite

Cephes Mathematical Library

Wiener Entwicklungsmethode

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung ist noch experimentell.