Product constructions enable the user to construct new groups from the groups provided in RepLAB. The product constructions below also provide ways to construct standard representations that arise from representations of the factor groups.
DirectProductGroup
represents the (outer) direct product of compact groups, the elements are represented by row cell arrays.
SemidirectProductGroup
represents an outer semidirect product arising from the action of a group on another.
WreathProductGroup
describes the wreath product of a compact group by a permutation group.
Bases: replab.CompactGroup
Describes an external direct product of compact groups
This is an abstract base class. Use DirectProductGroup.make
or CompactGroup.directProduct
to construct an instance.
Constructors are defined in subclasses, as for other group products.
Class members list
Properties
Prettyprinting
additionalFields
– Returns the name/value pairs corresponding to additional fields to be printed
disp
– Standard MATLAB/Octave display method
headerStr
– Tiny single line description of the current object type
hiddenFields
– Returns the names of the fields that are not printed as a row vector
longStr
– Multi-line description of the current object
shortStr
– Single line text description of the current object
Property cache
cache
– Sets the value of the designated property in the cache
cached
– Returns the cached property if it exists, computing it if necessary
cachedOrDefault
– Returns the cached property if it exists, or the provided default value if it is unknown yet
cachedOrEmpty
– Returns the cached property if it exists, or []
if it is unknown yet
inCache
– Returns whether the value of the given property has already been computed
Laws
check
– Checks the consistency of this object
checkAndContinue
– Checks the consistency of this object
laws
– Returns the laws that this object obeys
Unique ID
eq
– Equality test
id
– Returns the unique ID of this object (deprecated)
isequal
– Equality test
ne
– Non-equality test
Test helpers
assertEqv
– Compares two elements for equality
assertNotEqv
– Compares two elements for inequality
Sampling and equality test
Monoid operations
areCommuting
– Returns whether the two given elements commute
compose
– Composes two monoid/group elements
composeAll
– Composes a sequence of monoid elements
composeN
– Computes the power of a given element by repeated squaring
isIdentity
– Tests if the given element is the identity
Morphisms
automorphismGroup
– Returns the automorphism group of this group
commutingFactorMorphismsMorphism
– Constructs a morphism from morphisms of the factors with commuting images
commutingFactorMorphismsMorphismFun
– Constructs a morphism from morphisms of the factors with commuting images (function version)
commutingMorphismsMorphism
– Constructs a morphism from morphisms with commuting images
injection
– Returns the morphism embedding the i-th factor into the direct product
innerAutomorphism
– Returns the inner automorphism given using conjugation by the given element
isomorphismByFunctions
– Constructs a group isomorphism using preimage/image functions
morphismByFunction
– Constructs a group morphism using an image function
projection
– Returns the morphism projecting this group into its i-th factor
Group methods
commutator
– Returns the commutator of two group elements
composeFlat
– Returns the composition of elements from an array picked according to the given indices/letters
composeWithInverse
– Returns the composition of an element with the inverse of another element
inverse
– Computes the inverse of an element
leftConjugate
– Returns the left conjugate of a group element
Representations
commutingFactorRepsRep
– Constructs a representation from commuting representations of the factors
commutingFactorRepsRepFun
– Constructs a representation from commuting representations of the factors (function version)
commutingRepsRep
– Constructs a representation from commuting representations
directSumFactorRep
– Constructs a direct sum representation
directSumFactorRepFun
– Constructs a direct sum representation from a function that maps factors to representations
directSumRep
– Computes the direct sum of representations on this group
tensorFactorRep
– Constructs a tensor product representation
tensorFactorRepFun
– Constructs a direct sum representation from a function that maps factors to representations
tensorRep
– Computes the tensor product of representations
trivialRep
– Returns the trivial representation of this group on a finite dimensional vector space
Group construction
directPower
– Returns the direct product of this group with itself a number of times
directProduct
– Returns the direct product of groups
semidirectProduct
– Describes an external semidirect product of groups
Group properties
hasReconstruction
– Returns whether the group has a “reconstruction”
maximalTorusDimension
– Returns, if available, the dimension of the maximal torus contained in the connected component of this group
reconstruction
– Returns a reconstruction of the group used to speed up group averaging
Factor manipulation
factor
– Returns a factor in this direct product
nFactors
– Returns the number of factors in this direct product
General
make
–
Inherited elements
Documentation in replab.Str.additionalFields()
Documentation in replab.Monoid.areCommuting()
Documentation in replab.Domain.assertEqv()
Documentation in replab.Domain.assertNotEqv()
Documentation in replab.Group.automorphismGroup()
Documentation in replab.Obj.cache()
Documentation in replab.Obj.cached()
Documentation in replab.Obj.cachedOrDefault()
Documentation in replab.Obj.cachedOrEmpty()
Documentation in replab.Obj.check()
Documentation in replab.Obj.checkAndContinue()
Documentation in replab.Group.commutator()
Documentation in replab.Group.commutingMorphismsMorphism()
Documentation in replab.CompactGroup.commutingRepsRep()
Documentation in replab.Monoid.compose()
Documentation in replab.Monoid.composeAll()
Documentation in replab.Group.composeFlat()
Documentation in replab.Monoid.composeN()
Documentation in replab.Group.composeWithInverse()
Documentation in replab.CompactGroup.directPower()
Documentation in replab.CompactGroup.directProduct()
Documentation in replab.CompactGroup.directSumRep()
Documentation in replab.Str.disp()
Documentation in replab.Obj.eq()
Documentation in replab.Domain.eqv()
Documentation in replab.CompactGroup.hasReconstruction()
Documentation in replab.Str.headerStr()
Documentation in replab.Str.hiddenFields()
Documentation in replab.Obj.id()
Documentation in replab.Monoid.identity
Documentation in replab.Obj.inCache()
Documentation in replab.Group.innerAutomorphism()
Documentation in replab.Group.inverse()
Documentation in replab.Monoid.isIdentity()
Documentation in replab.Obj.isequal()
Documentation in replab.Group.isomorphismByFunctions()
Documentation in replab.Obj.laws()
Documentation in replab.Group.leftConjugate()
Documentation in replab.Str.longStr()
No documentation
Documentation in replab.CompactGroup.maximalTorusDimension()
Documentation in replab.Group.morphismByFunction()
Documentation in replab.Obj.ne()
Documentation in replab.CompactGroup.reconstruction()
Documentation in replab.Domain.sample()
Documentation in replab.CompactGroup.semidirectProduct()
Documentation in replab.Str.shortStr()
Documentation in replab.CompactGroup.tensorRep()
No documentation
Documentation in replab.CompactGroup.trivialRep()
Factor groups
cell(1,*) of subclass of CompactGroup
Constructs a morphism from morphisms of the factors with commuting images
target (CompactGroup
) – Target group
factorMorphisms (cell(1,*) of Morphism
) – Morphisms for each of the factor groups
The computed morphism
Constructs a morphism from morphisms of the factors with commuting images (function version)
target (CompactGroup
) – Target group
fun (function_handle
) – A function valid for each factor group that maps the group and its index to one of its morphisms
The computed morphism
Constructs a representation from commuting representations of the factors
field ({'R', 'C'}
) – Field
dimension (integer
) – Dimension of the representation
factorReps (cell(1,*) of Rep
) – Representations for each of the factor groups (factorReps{i} is a representation of factor(i))
A representation computed from the product of representations
Constructs a representation from commuting representations of the factors (function version)
field ({'R', 'C'}
) – Field
dimension (integer
) – Dimension of the representation
fun (function_handle
) – A function valid for each factor group that maps the group and its index to one of its representations
A representation computed from the product of representations
Constructs a direct sum representation
field ({'R', 'C'}
) – Field
factorReps (cell(1,*) of Rep
) – Representations for each of the factor groups (factorReps{i} is a representation of factor(i))
A direct sum representation
Constructs a direct sum representation from a function that maps factors to representations
field ({'R', 'C'}
) – Field
fun (function_handle
) – A function valid for each factor group that maps the group and its index to one of its representations
A direct sum representation
Returns a factor in this direct product
i (integer
) – Factor idnex
The i
-th factor
Returns the morphism embedding the i-th factor into the direct product
Example
>>> S2 = replab.S(2);
>>> D = S2.directProduct(S2);
>>> m = D.injection(1);
>>> D.eqv({[2 1] [1 2]}, m.imageElement([2 1]))
1
i (integer
) – Factor index
The injection morphism
Returns the number of factors in this direct product
Number of factors
integer
Returns the morphism projecting this group into its i-th factor
Example
>>> S2 = replab.S(2);
>>> D = S2.directProduct(S2);
>>> m = D.projection(1);
>>> S2.eqv([2 1], m.imageElement({[2 1] [1 2]}))
1
i (integer
) – Factor index
The projection
Constructs a tensor product representation
field ({'R', 'C'}
) – Field
factorReps (cell(1,*) of Rep
)) – Representations for each of the factor groups (factorReps{i} is a representation of factor(i))
A tensor representation
Constructs a direct sum representation from a function that maps factors to representations
field ({'R', 'C'}
) – Field
fun (function_handle
) – A function valid for each factor group that maps the group and its index
to one of its representations
A tensor representation
replab.Rep
Bases: replab.Group
Semidirect product of compact groups through the external/outer construction
This is an abstract base class. Call CompactGroup.semidirectProduct
or make
to construct an instance.
Construction and multiplication rule
An outer semidirect product constructs a group from two given groups, with its set of elements being the Cartesian product of those two groups, and the multiplication operation given by the action of one group on the other.
Formally, we have two groups, \(H\) and \(N\), with \(H\) acting on \(N\) in the following way. We have a group action \(\phi: H \times N \rightarrow N\), obeying the following:
\(\phi(h_1, \phi(h_2, n)) = \phi(h_1 h_2, n)\)
\(\phi(h, n_1) \phi(h, n_2) = \phi(h, n_1 n_2)\)
for \(h,h_1,h_2 \in H\) and \(n,n_1,n_2 \in N\).
Equivalently, this action corresponds to a group morphism \(\phi: H \rightarrow (N \rightarrow N)\) or \(\phi: H \rightarrow \operatorname{Aut}(N)\) from \(H\) into the automorphism group of \(N\).
We now construct the semidirect product \(G = H \ltimes N\). An element of the product is written \(G = (h, n)\), where \(h \in H\) and \(n \in N\).
Note that compared to other references such as Wikipedia ( https://en.wikipedia.org/wiki/Semidirect_product ), we write the element of the acting group \(H\) first, and this changes the rule for multiplying group elements.
The multiplication rule of the group is \((h_1, n_1) \cdot (h_2, n_2) = (h_1 h_2, \phi(h_2^{-1}, n_1) n_2)\). The inverse of \((h, n)\) is given by \((h^{-1}, \phi(h, n))\).
How do we interpret this multiplication rule? First, we want to interpret the elements of \(H\) and \(N\) as “being part” of \(G\).
We can embed elements of \(H\) into \(G\) by writing the injection \(f(h) = (h, 1_N)\) where \(1_N\) is the identity of \(N\). We can embed elements of \(N\) into \(G\) by writing the injection \(g(n) = (1_H, n)\) where \(1_H\) is the identity of \(H\).
Both \(f\) and \(g\) are morphisms: \(f(h_1) f(h_2) = f(h_1 h_2)\) and \(g(n_1) g(n_2) = g(n_1 n_2)\).
Those those injections are available using the methods Hinjection
and Ninjection
.
Noting that \((h,n) = f(h) g(n)\), we write:
\((h_1,n_1) (h_2,n_2) = f(h_1) g(n_1) f(h_2) g(n_2) = h_1 n_1 h_2 n_2\), with the \(f()\) and \(g()\) injections implicit.
If we could swap \(n_1\) and \(h_2\), as is the case with a direct product, we could rewrite the product as a pair of elements of \(H\) and \(N\) respectively. Now, we write \(h_1 n_1 h_2 n_2 = h_1 h_2 h_2^{-1} n_1 h_2 n_2\), and we define \(h_2^{-1} n_1 h_2 = \phi(h_2^{-1}, n_1)\).
Thus, \(h_1 n_1 h_2 n_2 = (h_1 h_2) (\phi(h_2^{-1}, n_1) n_2) = (h_1 h_2, \phi(h_2^{-1}, n_1) n_2)\).
Thus, we interpret that group action \(\phi\) as defining the conjugation of elements of \(N\) by elements of \(H\).
Representations
Representations of semidirect products can be constructed using the semidirectProductRep
method, given compatible
representations of the groups \(H\) and \(N\).
Implementation note
As semidirect product groups are used as a base for wreath product groups, the constructors are duplicated in subclasses as to keep a simple hierarchy of constructor calls.
Example
>>> N = replab.S(3);
>>> H = replab.PermutationGroup.cyclic(3);
>>> A = N.innerAutomorphism([2 3 1]);
>>> phi = H.morphismByImages(replab.AutomorphismGroup(N), 'images', {A});
>>> sd = H.semidirectProduct(N, @(h, n) phi.imageElement(h).imageElement(n));
>>> sd.laws.checkSilent
1
Class members list
Properties
Prettyprinting
additionalFields
– Returns the name/value pairs corresponding to additional fields to be printed
disp
– Standard MATLAB/Octave display method
headerStr
– Tiny single line description of the current object type
hiddenFields
– Returns the names of the fields that are not printed as a row vector
longStr
– Multi-line description of the current object
shortStr
– Single line text description of the current object
Property cache
cache
– Sets the value of the designated property in the cache
cached
– Returns the cached property if it exists, computing it if necessary
cachedOrDefault
– Returns the cached property if it exists, or the provided default value if it is unknown yet
cachedOrEmpty
– Returns the cached property if it exists, or []
if it is unknown yet
inCache
– Returns whether the value of the given property has already been computed
Laws
check
– Checks the consistency of this object
checkAndContinue
– Checks the consistency of this object
laws
– Returns the laws that this object obeys
Unique ID
eq
– Equality test
id
– Returns the unique ID of this object (deprecated)
isequal
– Equality test
ne
– Non-equality test
Test helpers
assertEqv
– Compares two elements for equality
assertNotEqv
– Compares two elements for inequality
Sampling and equality test
Monoid operations
areCommuting
– Returns whether the two given elements commute
compose
– Composes two monoid/group elements
composeAll
– Composes a sequence of monoid elements
composeN
– Computes the power of a given element by repeated squaring
isIdentity
– Tests if the given element is the identity
Morphisms
Hinjection
– Returns the morphism that expresses elements of H
in the semidirect product
Hprojection
– Returns the morphism that projects elements of the semidirect product into H
Ninjection
– Returns the morphism that expresses elements of N
in the semidirect product
automorphismGroup
– Returns the automorphism group of this group
commutingMorphismsMorphism
– Constructs a morphism from morphisms with commuting images
innerAutomorphism
– Returns the inner automorphism given using conjugation by the given element
isomorphismByFunctions
– Constructs a group isomorphism using preimage/image functions
morphismByFunction
– Constructs a group morphism using an image function
Group methods
commutator
– Returns the commutator of two group elements
composeFlat
– Returns the composition of elements from an array picked according to the given indices/letters
composeWithInverse
– Returns the composition of an element with the inverse of another element
inverse
– Computes the inverse of an element
leftConjugate
– Returns the left conjugate of a group element
SemidirectProductGroup creation
make
– Constructs a semidirect product group from an action
Representations
semidirectProductRep
– Constructs a representation by a product of representations of the two groups in the semidirect product construction
Inherited elements
Documentation in replab.Str.additionalFields()
Documentation in replab.Monoid.areCommuting()
Documentation in replab.Domain.assertEqv()
Documentation in replab.Domain.assertNotEqv()
Documentation in replab.Group.automorphismGroup()
Documentation in replab.Obj.cache()
Documentation in replab.Obj.cached()
Documentation in replab.Obj.cachedOrDefault()
Documentation in replab.Obj.cachedOrEmpty()
Documentation in replab.Obj.check()
Documentation in replab.Obj.checkAndContinue()
Documentation in replab.Group.commutator()
Documentation in replab.Group.commutingMorphismsMorphism()
Documentation in replab.Monoid.compose()
Documentation in replab.Monoid.composeAll()
Documentation in replab.Group.composeFlat()
Documentation in replab.Monoid.composeN()
Documentation in replab.Group.composeWithInverse()
Documentation in replab.Str.disp()
Documentation in replab.Obj.eq()
Documentation in replab.Domain.eqv()
Documentation in replab.Str.headerStr()
Documentation in replab.Str.hiddenFields()
Documentation in replab.Obj.id()
Documentation in replab.Monoid.identity
Documentation in replab.Obj.inCache()
Documentation in replab.Group.innerAutomorphism()
Documentation in replab.Group.inverse()
Documentation in replab.Monoid.isIdentity()
Documentation in replab.Obj.isequal()
Documentation in replab.Group.isomorphismByFunctions()
Documentation in replab.Obj.laws()
Documentation in replab.Group.leftConjugate()
Documentation in replab.Str.longStr()
Documentation in replab.Group.morphismByFunction()
Documentation in replab.Obj.ne()
Documentation in replab.Domain.sample()
Documentation in replab.Str.shortStr()
Group acting
Group acted upon
Action of H on N
Returns the morphism that projects elements of the semidirect product into H
Note that for a semidirect product G
, the morphism G.Hinjection.andThen(G.Hprojection
is the identity.
Constructs a semidirect product group from an action
phi (replab.Action
) – Action of a compact group on another compact group
A specialized instance of SemidirectProductGroup
Constructs a representation by a product of representations of the two groups in the semidirect product construction
Those representations Hrep
and Nrep
must obey the following law.
Let phi
be the semidirect product group uncurried homomorphism with h \in H
and n \in N
:
Nrep.image(phi(h, n)) == Hrep.image(h) * Nrep.image(n) * Hrep.inverseImage(h)
.
Bases: replab.SemidirectProductGroup
Wreath product group
This group contains:
a permutation group H
acting on \(n\) elements,
\(n\) copies of a compact group A
(the base group), collected in the direct product group H
,
and those two groups are related through a semidirect product construction (see SemidirectProductGroup
), where
the permutation group acts on H
by permuting the copies of A
.
Note that compared to Wikipedia https://en.wikipedia.org/wiki/Wreath_product we write the elements of this wreath product as a tuple \((h, n)\) where the element \(h \in H\) is written first, followed by \(n = (a_1, ..., a_n)\) with \(n \in N\) and \(a_i \in A\).
The permutation group \(H\) acts on \(N\) as follows. Let \(h \in H\) be a permutation and \(n = (a_1, ..., a_n)\), and \(h(n)\) the result of the action of \(h\) on \(n\). Then \(h(n)_{h(i)} = a_i\), so that \(h(n)_i = a_{h^{-1}(i)}\).
According to the literature (see also Wikipedia above), a wreath product defines two canonical actions, the imprimitive wreath product action and the primitive wreath product action.
Correspondingly, given a representation of the base group A
, we provide methods to construct “imprimitive” and
“primitive$ representations of this wreath product group using imprimitiveRep
and primitiveRep
.
Class members list
Properties
A
– Base factor group
H
– Group acting
N
– Group acted upon
identity
– Monoid identity element
n
– Number of copies of the base group
phi
– Action of H on N
Prettyprinting
additionalFields
– Returns the name/value pairs corresponding to additional fields to be printed
disp
– Standard MATLAB/Octave display method
headerStr
– Tiny single line description of the current object type
hiddenFields
– Returns the names of the fields that are not printed as a row vector
longStr
– Multi-line description of the current object
shortStr
– Single line text description of the current object
Property cache
cache
– Sets the value of the designated property in the cache
cached
– Returns the cached property if it exists, computing it if necessary
cachedOrDefault
– Returns the cached property if it exists, or the provided default value if it is unknown yet
cachedOrEmpty
– Returns the cached property if it exists, or []
if it is unknown yet
inCache
– Returns whether the value of the given property has already been computed
Laws
check
– Checks the consistency of this object
checkAndContinue
– Checks the consistency of this object
laws
– Returns the laws that this object obeys
Unique ID
eq
– Equality test
id
– Returns the unique ID of this object (deprecated)
isequal
– Equality test
ne
– Non-equality test
Test helpers
assertEqv
– Compares two elements for equality
assertNotEqv
– Compares two elements for inequality
Sampling and equality test
Monoid operations
areCommuting
– Returns whether the two given elements commute
compose
– Composes two monoid/group elements
composeAll
– Composes a sequence of monoid elements
composeN
– Computes the power of a given element by repeated squaring
isIdentity
– Tests if the given element is the identity
Morphisms
Hinjection
– Returns the morphism that expresses elements of H
in the semidirect product
Hprojection
– Returns the morphism that projects elements of the semidirect product into H
Ninjection
– Returns the morphism that expresses elements of N
in the semidirect product
automorphismGroup
– Returns the automorphism group of this group
commutingMorphismsMorphism
– Constructs a morphism from morphisms with commuting images
innerAutomorphism
– Returns the inner automorphism given using conjugation by the given element
isomorphismByFunctions
– Constructs a group isomorphism using preimage/image functions
morphismByFunction
– Constructs a group morphism using an image function
Group methods
commutator
– Returns the commutator of two group elements
composeFlat
– Returns the composition of elements from an array picked according to the given indices/letters
composeWithInverse
– Returns the composition of an element with the inverse of another element
inverse
– Computes the inverse of an element
leftConjugate
– Returns the left conjugate of a group element
SemidirectProductGroup creation
make
– Constructs a wreath product group
Representations
imprimitiveRep
– Returns an imprimitive representation of this wreath product
imprimitiveRepFun
– Returns an imprimitive representation of this wreath product
primitiveRep
– Returns a primitive representation of this wreath product
primitiveRepFun
– Returns an primitive representation of this wreath product
semidirectProductRep
– Constructs a representation by a product of representations of the two groups in the semidirect product construction
Permutation actions
imprimitivePermutation
– Returns the permutation corresponding to the canonical imprimitive action
primitivePermutation
– Returns the permutation corresponding to the canonical primitive action
Inherited elements
Documentation in replab.SemidirectProductGroup.H
Documentation in replab.SemidirectProductGroup.Hinjection()
Documentation in replab.SemidirectProductGroup.Hprojection()
Documentation in replab.SemidirectProductGroup.N
Documentation in replab.SemidirectProductGroup.Ninjection()
Documentation in replab.Str.additionalFields()
Documentation in replab.Monoid.areCommuting()
Documentation in replab.Domain.assertEqv()
Documentation in replab.Domain.assertNotEqv()
Documentation in replab.Group.automorphismGroup()
Documentation in replab.Obj.cache()
Documentation in replab.Obj.cached()
Documentation in replab.Obj.cachedOrDefault()
Documentation in replab.Obj.cachedOrEmpty()
Documentation in replab.Obj.check()
Documentation in replab.Obj.checkAndContinue()
Documentation in replab.Group.commutator()
Documentation in replab.Group.commutingMorphismsMorphism()
Documentation in replab.Monoid.compose()
Documentation in replab.Monoid.composeAll()
Documentation in replab.Group.composeFlat()
Documentation in replab.Monoid.composeN()
Documentation in replab.Group.composeWithInverse()
Documentation in replab.Str.disp()
Documentation in replab.Obj.eq()
Documentation in replab.Domain.eqv()
Documentation in replab.Str.headerStr()
Documentation in replab.Str.hiddenFields()
Documentation in replab.Obj.id()
Documentation in replab.Monoid.identity
Documentation in replab.Obj.inCache()
Documentation in replab.Group.innerAutomorphism()
Documentation in replab.Group.inverse()
Documentation in replab.Monoid.isIdentity()
Documentation in replab.Obj.isequal()
Documentation in replab.Group.isomorphismByFunctions()
Documentation in replab.Obj.laws()
Documentation in replab.Group.leftConjugate()
Documentation in replab.Str.longStr()
Documentation in replab.Group.morphismByFunction()
Documentation in replab.Obj.ne()
Documentation in replab.SemidirectProductGroup.phi
Documentation in replab.Domain.sample()
Documentation in replab.SemidirectProductGroup.semidirectProductRep()
Documentation in replab.Str.shortStr()
Base factor group
Number of copies of the base group
integer
Returns the permutation corresponding to the canonical imprimitive action
See https://en.wikipedia.org/wiki/Wreath_product
w (element
) – Wreath product group element to compute the image of
phi (function_handle, optional
) – Morphism from elements of A to permutations
If omitted default to identity, valid only when
A is a permutation group
The permutation corresponding to the imprimitive action of w
permutation
Returns an imprimitive representation of this wreath product
It acts on a space of dimension self.n * factorRep.dimension
, which
is a direct sum of copies of factorRep
. The permutation group acts
by permuting the blocks.
Returns an imprimitive representation of this wreath product
See imprimitiveRep
.
Constructs a wreath product group
H (PermutationGroup
) – Complement group that permutes the factors
A (CompactGroup
) – Base factor group of which the direct product composes the base
A specialized instance of WreathProductGroup
Returns the permutation corresponding to the canonical primitive action
See https://en.wikipedia.org/wiki/Wreath_product
w (element
) – Wreath product group element to compute the image of
phi (function_handle, optional
) – Morphism from elements of A to permutations
If omitted default to identity, valid only when
A is a permutation group
The permutation corresponding to the primitive action of w
permutation
Returns a primitive representation of this wreath product
It acts on a space of dimension factorRep.dimension^self.n
, which
is a tensor product of copies of factorRep
. The permutation group acts
by permuting tensor indices.
Returns an primitive representation of this wreath product
See primitiveRep