> < ^ Date: Tue, 14 Feb 1995 10:09:00 +0100
> < ^ From: Volkmar Felsch <Volkmar.Felsch@Math.RWTH-Aachen.DE >
^ Subject: Bug in the SpaceGroup command

I would like to warn you of a bug in the SpaceGroup command in
the library of crystallographic groups.

The SpaceGroup command returns a space group in form of a matrix
group together with a set of abstract generators and a set of
defining relators. In the current version, this set of defining
relators is incomplete: It does not contain the relators which
describe the action of the point group generators on the
generators of the normal subgroup of translations.

The bug will be fixed in the next upgrade. For the time being,
you may fix it in your local copy by applying the following patch
to the file grp/cryst.grp.

Volkmar Felsch, Aachen

--------------------------------------------------------------------

--- grp/cryst.grp       1994/06/24 08:17:53
+++ grp/cryst.grp       1995/02/14 08:53:13
@@ -3414,8 +3417,8 @@
 ##
 CR_SpaceGroup := function ( param )

- local CR, crgens, crrels, dim, G, g, g1, gens, gens1, i, j, mat, ngens,
- ngens1, nrels, num, q, qcl, rels, sys, word;
+ local CR, crgens, crrels, dim, G, g, g1, gens, gens1, i, inv, j, k, mat,
+ ngens, ngens1, nrels, num, q, qcl, rels, sys, word;

     # Get the arguments.
     dim := param[1];
@@ -3445,6 +3448,17 @@
     for i in [ ngens1 + 1 .. ngens - 1 ] do
         for j in [ i + 1 .. ngens ] do
             Add( rels, Comm( g[i], g[j] ) );
+        od;
+    od;
+    inv := List( gens, mat -> mat^-1 );
+    for i in [ 1 .. ngens1 ] do
+        for j in [ ngens1 + 1 .. ngens ] do
+            mat := inv[j] * inv[i] * gens[j] * gens[i];
+            word := IdWord;
+            for k in [ 1 .. dim ] do
+                word := word * g[ngens1+k]^mat[k][dim+1];
+            od;
+            Add( rels, g[j]^-1 * g[i]^-1 * g[j] * g[i] * word^-1 );
         od;
     od;
     if ngens1 > 0 then

--------------------------------------------------------------------

> < [top]