The algorithm described in the paper Automorphism Groups of Hyperbolic Lattices is implemented in the MAGMA-package AutHyp.m
which can be downloaded here. To use it in MAGMA, either include its path into MAGMA's spec-file (then it will be loaded in every MAGMA session) or type
> Attach("/path/of/AutHyp.m");
during a current MAGMA session (then the package will only be attached for this current session).
A hyperbolic lattice is to be represented by its Gram matrix which we will call A from now on. Take for example
> A:=SymmetricMatrix([2,3,3,1,1,4]);
> A;
[2 3 1]
[3 3 1]
[1 1 4]
> pp:=GetPerfectPoints(A);
Got first perfect point. It has 9 D-minimal vectors
Found 4 directions of first point
Testing number 1
2 : Found point with 3 directions
Testing number 2
3 : Found point with 4 directions
4 : Found point with 3 directions
Testing number 3
Testing number 4
The intrinsic GetPerfectPoints returns a record which contains the following fields:
> pp`ConeTestVectors;
[
( 0 1/2 1/6),
(-3 2 0)
]
> pp`Points; [ (-1 1 0), (-3 3 1), (-4 3 2), (-9 11 3) ]
> pp`Lat;
[
[3 1]
[1 4],
[ 4 -1]
[-1 14],
[ 1 0]
[ 0 11],
[ 2 -1]
[ -1 116]
]
> pp`directions;
[
[
(-1 1 1),
(-1 0 0),
(-1 1 -1),
(-1 2 0)
],
[
(-5 3 3),
(-3 5 1),
( 1 -1 -1)
],
[
(-29 21 15),
(-7 3 3),
(-17 15 9),
( 5 -3 -3)
],
[
(-1 3 -1),
( 3 -5 -1),
(-11 13 5)
]
]
> pp`Neighbours;
[ <1, 2>, <2, 3>, <2, 4> ]
> pp`Stabilizers;
[
MatrixGroup(3, Integer Ring)
Generators:
[ 1 -2 0]
[ 0 -1 0]
[ 0 0 -1],
MatrixGroup(3, Integer Ring) of order 1,
MatrixGroup(3, Integer Ring)
Generators:
[ 23 -18 -12]
[ -8 5 4]
[ 56 -42 -29]
[ 23 -18 -12]
[ 0 1 0]
[ 44 -36 -23],
MatrixGroup(3, Integer Ring)
Generators:
[ 5 -8 0]
[ 3 -5 0]
[ 1 -2 1]
]
> pp`Connectors;
[
<
1,
1,
(-2 1 0),
[ 5 -2 0]
[ 3 -1 0]
[ 1 0 -1]
>,
<
2,
1,
(-1 1 0),
[1 0 0]
[0 1 0]
[0 0 1]
>,
<
3,
2,
(-37 27 19),
[ 23 -18 -12]
[ -8 5 4]
[ 56 -42 -29]
>,
<
4,
4,
(-31 37 13),
[ 49 -60 -20]
[ 25 -31 -10]
[ 45 -54 -19]
>,
<
4,
2,
(-5 7 1),
[ 5 -8 0]
[ 3 -5 0]
[ 1 -2 1]
>
]
> pp`AutGrp;
[
[ 1 -2 0]
[ 0 -1 0]
[ 0 0 -1],
[ 23 -18 -12]
[ -8 5 4]
[ 56 -42 -29],
[ 23 -18 -12]
[ 0 1 0]
[ 44 -36 -23],
[ 5 -8 0]
[ 3 -5 0]
[ 1 -2 1],
[ 5 -2 0]
[ 3 -1 0]
[ 1 0 -1],
[ 23 -18 -12]
[ -8 5 4]
[ 56 -42 -29],
[ 49 -60 -20]
[ 25 -31 -10]
[ 45 -54 -19],
[ 5 -8 0]
[ 3 -5 0]
[ 1 -2 1]
]
> pp`Complete;
true
The intrinsic AutGroup returns the actual automorphism group as a finitely generated matrix group and the number of inequivalent D-perfect points. By default, this intrinsic uses the Watson process, thus to be more precise in this case the second return value is the number of inequivalent D-perfect points of the Watson matrix of A. By the option Watson:=false the Watson process is not used anymore, but in average this results in a longer computation time.
> AutGroup(A);
Got first perfect point. It has 9 D-minimal vectors
Found 4 directions of first point
Testing number 1
2 : Found point with 3 directions
Testing number 2
3 : Found point with 4 directions
4 : Found point with 3 directions
Testing number 3
Testing number 4
Starting stabilizer computation.
[ 1 -2 0]
[ 0 -1 0]
[ 0 0 -1]
[ 23 -18 -12]
[ -8 5 4]
[ 56 -42 -29]
[ 23 -18 -12]
[ 0 1 0]
[ 44 -36 -23]
[ 5 -8 0]
[ 3 -5 0]
[ 1 -2 1]
[ 5 -2 0]
[ 3 -1 0]
[ 1 0 -1]
[ 49 -60 -20]
[ 25 -31 -10]
[ 45 -54 -19]
[-1 0 0]
[ 0 -1 0]
[ 0 0 -1]
4
Home | Research | Talks & Conferences | Teaching |