
Write the two matrices in a file 'g' and add
#g2
as top line. Now 'g' has bravais_TYP as format.

Call
Normalizer g > gn
to produce a file 'gn' containing G, a basis of the space of
invariant quadratic forms of G, generators for the normalizer
of G in GL_{4}(Z), and the order of G. Note 'gn' has bravais_TYP
as format.

Call
Vector_systems gn > gout
to write a set of representatives of the vector systems under the
normalizer action into the file 'out'. It turs out that the order
of the extension group is 8 and that there are 6 orbits, i. e. one
has 6 affine classes going with the Zclass of G.

For each of the 6 cozycles write it into a file 'coz' and call
Extract r gn coz > g.i
to construct the affine classes in the Zclass of G in standard form (i.e. the translation
lattice is Z^{n}):

Call
Tr_bravais gn > gn_tr
to get the transposed group 'gn_tr of 'g'.

Call
Sublattices b gn_tr > gl
to write the matrices representing the bases of the G^{tr}sublattices
of Z^{4} of 2power index into file 'gl'.
(Note G and G^{tr} have order 2^{6}.) These
sublattices are ordered by inclusion and form a chain:
L1 = Z^{4} > L2 > L3 > L4 > 2 L1

For each inverse write it into a file 'inv' call
Tr inv > l.i
to transpose it. So we get the Ginvariant superlattices of Z^{n}:
l.1 = Z^{n} < l.2 < l.3
< l.4 < 1/2 Z^{n}

The following is trivial:

The first extension splits for every superlattice.

The first extension splits and the other extensions don't split for 1/2 Z^{n}.
So we only have to consider 'g.2' to 'g.6' with the lattices 'l.2' to 'l.4'.

Enlarge the matrices in the files 'l.2', 'l.3' and 'l.4', i.e. change
4 /2 % tranposed of 1th matrix of inv
2 0 0 1
0 2 0 1
0 0 2 1
0 0 0 1
to
5 /2 % tranposed of 1th matrix of inv
2 0 0 1 0
0 2 0 1 0
0 0 2 1 0
0 0 0 1 0
0 0 0 0 2

To decide for which superlattice each extension splits, one has to add the translations of a
superlattice 'l.j' to a spacegroup 'g.i' and transform this group such that the translation
lattice is Z^{n} (Cf.
Standard_affine_form). This can be done
in one step by calling:
for i in 2 3 4 5 6 ; do
for j in 2 3 4 ; do
Conj_bravais i g.i l.j > g.i.j ;
done ;
done
We get the following spacegroups:

For each of these groups, extract the cozycle and the point group:
for i in 2 3 4 5 6 ; do
for j in 2 3 4 ; do
Extract p g.i.j > pg.i.j ;
Extract c g.i.j > cg.i.j ;
done ;
done
We get the following files:

Call
for i in 2 3 4 5 6 ; do
for j in 2 3 4 ; do
Vector_systems i pg.$i.$j cg.$i.$j ;
done ;
done
to identify the spacegroups in the files 'g.i.j'. The name is 0 iff the extension splits.
We get the following output:
Name for the 1th extension in pg.2.2: 1
Name for the 1th extension in pg.2.3: 1
Name for the 1th extension in pg.2.4: 0
Name for the 1th extension in pg.3.2: 2
Name for the 1th extension in pg.3.3: 0
Name for the 1th extension in pg.3.4: 0
Name for the 1th extension in pg.4.2: 2
Name for the 1th extension in pg.4.3: 0
Name for the 1th extension in pg.4.4: 0
Name for the 1th extension in pg.5.2: 3
Name for the 1th extension in pg.5.3: 1
Name for the 1th extension in pg.5.4: 0
Name for the 1th extension in pg.6.2: 0
Name for the 1th extension in pg.6.3: 0
Name for the 1th extension in pg.6.4: 0