Elements of a semimonomial transformation group.
The semimonomial transformation group of degree over a ring
is
the semidirect product of the monomial transformation group of degree
(also known as the complete monomial group over the group of units
of
) and the group of ring automorphisms.
The multiplication of two elements
with
(with the multiplication
done from left to right (like in GAP) – that is,
for all
.)
is defined by
with
and an elementwisely defined multiplication of vectors. (The indexing
of vectors is
-based here, so
.)
The parent is SemimonomialTransformationGroup.
AUTHORS:
Thomas Feulner (2012-11-15): initial version
Permutations().global_options()[‘mul’]
EXAMPLES:
sage: S = SemimonomialTransformationGroup(GF(4, 'a'), 4)
sage: G = S.gens()
sage: G[0]*G[1]
((a, 1, 1, 1); (1,2,3,4), Ring endomorphism of Finite Field in a of size 2^2
Defn: a |--> a)
TESTS:
sage: TestSuite(G[0]).run()
Bases: sage.structure.element.MultiplicativeGroupElement
An element in the semimonomial group over a ring . See
SemimonomialTransformationGroup
for the details on the multiplication of two elements.
The init method should never be called directly. Use the call via the parent SemimonomialTransformationGroup. instead.
EXAMPLES:
sage: F.<a> = GF(9)
sage: S = SemimonomialTransformationGroup(F, 4)
sage: g = S(v = [2, a, 1, 2])
sage: h = S(perm = Permutation('(1,2,3,4)'), autom=F.hom([a**3]))
sage: g*h
((2, a, 1, 2); (1,2,3,4), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1)
sage: h*g
((2*a + 1, 1, 2, 2); (1,2,3,4), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1)
sage: S(g)
((2, a, 1, 2); (), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> a)
sage: S(1) # the one element in the group
((1, 1, 1, 1); (), Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> a)
Returns the component corresponding to of self.
EXAMPLES:
sage: F.<a> = GF(9)
sage: SemimonomialTransformationGroup(F, 4).an_element().get_autom()
Ring endomorphism of Finite Field in a of size 3^2 Defn: a |--> 2*a + 1
Returns the component corresponding to of self.
EXAMPLES:
sage: F.<a> = GF(9)
sage: SemimonomialTransformationGroup(F, 4).an_element().get_perm()
[4, 1, 2, 3]
Returns the component corresponding to of self.
EXAMPLES:
sage: F.<a> = GF(9)
sage: SemimonomialTransformationGroup(F, 4).an_element().get_v()
(a, 1, 1, 1)
Returns the (elementwise) inverse of the component corresponding to
of self.
EXAMPLES:
sage: F.<a> = GF(9)
sage: SemimonomialTransformationGroup(F, 4).an_element().get_v_inverse()
(a + 2, 1, 1, 1)
Elementwisely inverts all entries of self which
correspond to the component .
The other components of self keep unchanged.
EXAMPLES:
sage: F.<a> = GF(9)
sage: x = copy(SemimonomialTransformationGroup(F, 4).an_element())
sage: x.invert_v();
sage: x.get_v() == SemimonomialTransformationGroup(F, 4).an_element().get_v_inverse()
True