Affine Groups

AUTHORS:

  • Volker Braun: initial version
sage.groups.affine_gps.affine_group.AffineGroup

An affine group.

The affine group \(\mathrm{Aff}(A)\) (or general affine group) of an affine space \(A\) is the group of all invertible affine transformations from the space into itself.

If we let \(A_V\) be the affine space of a vector space \(V\) (essentially, forgetting what is the origin) then the affine group \(\mathrm{Aff}(A_V)\) is the group generated by the general linear group \(GL(V)\) together with the translations. Recall that the group of translations acting on \(A_V\) is just \(V\) itself. The general linear and translation subgroups do not quite commute, and in fact generate the semidirect product

\[\mathrm{Aff}(A_V) = GL(V) \ltimes V.\]

As such, the group elements can be represented by pairs \((A, b)\) of a matrix and a vector. This pair then represents the transformation

\[x \mapsto A x + b.\]

We can also represent affine transformations as linear transformations by considering \(\dim(V) + 1\) dimensional space. We take the affine transformation \((A, b)\) to

\[\begin{split}\begin{pmatrix} A & b \\ 0 & 1 \end{pmatrix}\end{split}\]

and lifting \(x = (x_1, \ldots, x_n)\) to \((x_1, \ldots, x_n, 1)\). Here the \((n + 1)\)-th component is always 1, so the linear representations acts on the affine hyperplane \(x_{n+1} = 1\) as affine transformations which can be seen directly from the matrix multiplication.

INPUT:

Something that defines an affine space. For example

  • An affine space itself:
    • A – affine space
  • A vector space:
    • V – a vector space
  • Degree and base ring:
    • degree – An integer. The degree of the affine group, that is, the dimension of the affine space the group is acting on.
    • ring – A ring or an integer. The base ring of the affine space. If an integer is given, it must be a prime power and the corresponding finite field is constructed.
    • var – (default: 'a') Keyword argument to specify the finite field generator name in the case where ring is a prime power.

EXAMPLES:

sage: F = AffineGroup(3, QQ); F
Affine Group of degree 3 over Rational Field
sage: F(matrix(QQ,[[1,2,3],[4,5,6],[7,8,0]]), vector(QQ,[10,11,12]))
      [1 2 3]     [10]
x |-> [4 5 6] x + [11]
      [7 8 0]     [12]
sage: F([[1,2,3],[4,5,6],[7,8,0]], [10,11,12])
      [1 2 3]     [10]
x |-> [4 5 6] x + [11]
      [7 8 0]     [12]
sage: F([1,2,3,4,5,6,7,8,0], [10,11,12])
      [1 2 3]     [10]
x |-> [4 5 6] x + [11]
      [7 8 0]     [12]

Instead of specifying the complete matrix/vector information, you can also create special group elements:

sage: F.linear([1,2,3,4,5,6,7,8,0])
      [1 2 3]     [0]
x |-> [4 5 6] x + [0]
      [7 8 0]     [0]
sage: F.translation([1,2,3])
      [1 0 0]     [1]
x |-> [0 1 0] x + [2]
      [0 0 1]     [3]

Some additional ways to create affine groups:

sage: A = AffineSpace(2, GF(4,'a'));  A
Affine Space of dimension 2 over Finite Field in a of size 2^2
sage: G = AffineGroup(A); G
Affine Group of degree 2 over Finite Field in a of size 2^2
sage: G is AffineGroup(2,4) # shorthand
True

sage: V = ZZ^3;  V
Ambient free module of rank 3 over the principal ideal domain Integer Ring
sage: AffineGroup(V)
Affine Group of degree 3 over Integer Ring

REFERENCES: