Cubic Hecke matrix representations¶
This module contains the class CubicHeckeMatrixRep which is used to
treat the matrix representations of the elements of the cubic Hecke algebra
(CubicHeckeAlgebra)
together with its parent class CubicHeckeMatrixSpace. Furthermore,
it contains enums for their types (RepresentationType) and names
(AbsIrreducibeRep).
AUTHORS:
Sebastian Oehms May 2020: initial version
- class sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.AbsIrreducibeRep(*values)[source]¶
Bases:
EnumEnum class to select an absolutely irreducible representation for the cubic Hecke algebra (
CHAn) on \(n\)-strands.The names are build as follows: Take the determinant of one of the generators of the
CHAn. This is a monomial in the generic extension ring (GER) ofCHA, saya^ib^jc^kwherea, bandcare the generators ofGER. This does not depend on the choice of the generator ofCHA, since these are conjugated to each other. This monomial might be looked as the weight of the representation. Therefore we use it as a name:Wn_ijkThe only ambiguity among the available irreducible representations occurs for the two nine-dimensional modules, which are conjugated to each other and distinguished by these names:
W4_333andW4_333barExamples of names:
W2_100– one dimensional representation of the cubic Hecke algebra on 2 strands corresponding to the first root of the cubic equationW3_111– three dimensional irreducible representation of the cubic Hecke algebra on 3 strandsW4_242– eight dimensional irreducible representation of the cubic Hecke algebra on 4 strands having the second root of the cubic equation as weight of dimension 4
Alternative names are taken from [MW2012] and can be shown by
alternative_name().EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: [irr.name for irr in chmr.AbsIrreducibeRep] ['W2_100', 'W2_001', 'W2_010', 'W3_100', 'W3_001', 'W3_010', 'W3_011', 'W3_110', 'W3_101', 'W3_111', 'W4_100', 'W4_001', 'W4_010', 'W4_011', 'W4_110', 'W4_101', 'W4_111', 'W4_120', 'W4_201', 'W4_012', 'W4_102', 'W4_210', 'W4_021', 'W4_213', 'W4_132', 'W4_321', 'W4_231', 'W4_123', 'W4_312', 'W4_422', 'W4_224', 'W4_242', 'W4_333', 'W4_333bar', 'W5_100', 'W5_001', 'W5_010', 'W5_013', 'W5_130', 'W5_301', 'W5_031', 'W5_103', 'W5_310', 'W5_203', 'W5_032', 'W5_320', 'W5_230', 'W5_023', 'W5_302', 'W5_033', 'W5_330', 'W5_303', 'W5_163', 'W5_631', 'W5_316', 'W5_136', 'W5_613', 'W5_361', 'W5_366', 'W5_663', 'W5_636', 'W5_933', 'W5_339', 'W5_393']
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> [irr.name for irr in chmr.AbsIrreducibeRep] ['W2_100', 'W2_001', 'W2_010', 'W3_100', 'W3_001', 'W3_010', 'W3_011', 'W3_110', 'W3_101', 'W3_111', 'W4_100', 'W4_001', 'W4_010', 'W4_011', 'W4_110', 'W4_101', 'W4_111', 'W4_120', 'W4_201', 'W4_012', 'W4_102', 'W4_210', 'W4_021', 'W4_213', 'W4_132', 'W4_321', 'W4_231', 'W4_123', 'W4_312', 'W4_422', 'W4_224', 'W4_242', 'W4_333', 'W4_333bar', 'W5_100', 'W5_001', 'W5_010', 'W5_013', 'W5_130', 'W5_301', 'W5_031', 'W5_103', 'W5_310', 'W5_203', 'W5_032', 'W5_320', 'W5_230', 'W5_023', 'W5_302', 'W5_033', 'W5_330', 'W5_303', 'W5_163', 'W5_631', 'W5_316', 'W5_136', 'W5_613', 'W5_361', 'W5_366', 'W5_663', 'W5_636', 'W5_933', 'W5_339', 'W5_393']
REFERENCES:
- W2_001 = {'alt_name': 'Sc', 'dim': 1, 'gap_ind': 1, 'intern_ind': 1, 'len_orbit': 3, 'ngens': 1}[source]¶
- W2_010 = {'alt_name': 'Sb', 'dim': 1, 'gap_ind': 2, 'intern_ind': 2, 'len_orbit': 3, 'ngens': 1}[source]¶
- W2_100 = {'alt_name': 'Sa', 'dim': 1, 'gap_ind': 0, 'intern_ind': 0, 'len_orbit': 3, 'ngens': 1}[source]¶
- W3_001 = {'alt_name': 'Sc', 'dim': 1, 'gap_ind': 1, 'intern_ind': 1, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_010 = {'alt_name': 'Sb', 'dim': 1, 'gap_ind': 2, 'intern_ind': 2, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_011 = {'alt_name': 'Tbc', 'dim': 2, 'gap_ind': 3, 'intern_ind': 3, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_100 = {'alt_name': 'Sa', 'dim': 1, 'gap_ind': 0, 'intern_ind': 0, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_101 = {'alt_name': 'Tac', 'dim': 2, 'gap_ind': 5, 'intern_ind': 5, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_110 = {'alt_name': 'Tab', 'dim': 2, 'gap_ind': 4, 'intern_ind': 4, 'len_orbit': 3, 'ngens': 2}[source]¶
- W3_111 = {'alt_name': 'V', 'dim': 3, 'gap_ind': 6, 'intern_ind': 6, 'len_orbit': 1, 'ngens': 2}[source]¶
- W4_001 = {'alt_name': 'Sc', 'dim': 1, 'gap_ind': 1, 'intern_ind': 1, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_010 = {'alt_name': 'Sb', 'dim': 1, 'gap_ind': 2, 'intern_ind': 2, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_011 = {'alt_name': 'Tbc', 'dim': 2, 'gap_ind': 3, 'intern_ind': 3, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_012 = {'alt_name': 'Ucb', 'dim': 3, 'gap_ind': 9, 'intern_ind': 9, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_021 = {'alt_name': 'Ubc', 'dim': 3, 'gap_ind': 12, 'intern_ind': 12, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_100 = {'alt_name': 'Sa', 'dim': 1, 'gap_ind': 0, 'intern_ind': 0, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_101 = {'alt_name': 'Tac', 'dim': 2, 'gap_ind': 5, 'intern_ind': 5, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_102 = {'alt_name': 'Uca', 'dim': 3, 'gap_ind': 10, 'intern_ind': 10, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_110 = {'alt_name': 'Tab', 'dim': 2, 'gap_ind': 4, 'intern_ind': 4, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_111 = {'alt_name': 'V', 'dim': 3, 'gap_ind': 6, 'intern_ind': 6, 'len_orbit': 1, 'ngens': 3}[source]¶
- W4_120 = {'alt_name': 'Uba', 'dim': 3, 'gap_ind': 7, 'intern_ind': 7, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_123 = {'alt_name': 'Vcba', 'dim': 6, 'gap_ind': 17, 'intern_ind': 17, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_132 = {'alt_name': 'Vbca', 'dim': 6, 'gap_ind': 14, 'intern_ind': 14, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_201 = {'alt_name': 'Uac', 'dim': 3, 'gap_ind': 8, 'intern_ind': 8, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_210 = {'alt_name': 'Uab', 'dim': 3, 'gap_ind': 11, 'intern_ind': 11, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_213 = {'alt_name': 'Vcab', 'dim': 6, 'gap_ind': 13, 'intern_ind': 13, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_224 = {'alt_name': 'Wc', 'dim': 8, 'gap_ind': 20, 'intern_ind': 20, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_231 = {'alt_name': 'Vbac', 'dim': 6, 'gap_ind': 16, 'intern_ind': 16, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_242 = {'alt_name': 'Wb', 'dim': 8, 'gap_ind': 21, 'intern_ind': 21, 'len_orbit': 3, 'ngens': 3}[source]¶
- W4_312 = {'alt_name': 'Vacb', 'dim': 6, 'gap_ind': 18, 'intern_ind': 18, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_321 = {'alt_name': 'Vabc', 'dim': 6, 'gap_ind': 15, 'intern_ind': 15, 'len_orbit': 6, 'ngens': 3}[source]¶
- W4_333 = {'alt_name': 'X', 'dim': 9, 'gap_ind': 22, 'intern_ind': 22, 'len_orbit': 2, 'ngens': 3}[source]¶
- W4_333bar = {'alt_name': 'Xbar', 'dim': 9, 'gap_ind': 23, 'intern_ind': 23, 'len_orbit': 2, 'ngens': 3}[source]¶
- W4_422 = {'alt_name': 'Wa', 'dim': 8, 'gap_ind': 19, 'intern_ind': 19, 'len_orbit': 3, 'ngens': 3}[source]¶
- W5_001 = {'alt_name': None, 'dim': 1, 'gap_ind': 1, 'intern_ind': 1, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_010 = {'alt_name': None, 'dim': 1, 'gap_ind': 2, 'intern_ind': 2, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_013 = {'alt_name': None, 'dim': 4, 'gap_ind': 3, 'intern_ind': 3, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_023 = {'alt_name': None, 'dim': 5, 'gap_ind': 13, 'intern_ind': 13, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_031 = {'alt_name': None, 'dim': 4, 'gap_ind': 6, 'intern_ind': 6, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_032 = {'alt_name': None, 'dim': 5, 'gap_ind': 10, 'intern_ind': 10, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_033 = {'alt_name': None, 'dim': 6, 'gap_ind': 15, 'intern_ind': 15, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_100 = {'alt_name': None, 'dim': 1, 'gap_ind': 0, 'intern_ind': 0, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_103 = {'alt_name': None, 'dim': 4, 'gap_ind': 7, 'intern_ind': 7, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_130 = {'alt_name': None, 'dim': 4, 'gap_ind': 4, 'intern_ind': 4, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_136 = {'alt_name': None, 'dim': 10, 'gap_ind': 21, 'intern_ind': 21, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_163 = {'alt_name': None, 'dim': 10, 'gap_ind': 18, 'intern_ind': 18, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_203 = {'alt_name': None, 'dim': 5, 'gap_ind': 9, 'intern_ind': 9, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_230 = {'alt_name': None, 'dim': 5, 'gap_ind': 12, 'intern_ind': 12, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_301 = {'alt_name': None, 'dim': 4, 'gap_ind': 5, 'intern_ind': 5, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_302 = {'alt_name': None, 'dim': 5, 'gap_ind': 14, 'intern_ind': 14, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_303 = {'alt_name': None, 'dim': 6, 'gap_ind': 17, 'intern_ind': 17, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_310 = {'alt_name': None, 'dim': 4, 'gap_ind': 8, 'intern_ind': 8, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_316 = {'alt_name': None, 'dim': 10, 'gap_ind': 20, 'intern_ind': 20, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_320 = {'alt_name': None, 'dim': 5, 'gap_ind': 11, 'intern_ind': 11, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_330 = {'alt_name': None, 'dim': 6, 'gap_ind': 16, 'intern_ind': 16, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_339 = {'alt_name': None, 'dim': 15, 'gap_ind': 28, 'intern_ind': 28, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_361 = {'alt_name': None, 'dim': 10, 'gap_ind': 23, 'intern_ind': 23, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_366 = {'alt_name': None, 'dim': 15, 'gap_ind': 24, 'intern_ind': 24, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_393 = {'alt_name': None, 'dim': 15, 'gap_ind': 29, 'intern_ind': 29, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_613 = {'alt_name': None, 'dim': 10, 'gap_ind': 22, 'intern_ind': 22, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_631 = {'alt_name': None, 'dim': 10, 'gap_ind': 19, 'intern_ind': 19, 'len_orbit': 6, 'ngens': 4}[source]¶
- W5_636 = {'alt_name': None, 'dim': 15, 'gap_ind': 27, 'intern_ind': 26, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_663 = {'alt_name': None, 'dim': 15, 'gap_ind': 26, 'intern_ind': 25, 'len_orbit': 3, 'ngens': 4}[source]¶
- W5_933 = {'alt_name': None, 'dim': 15, 'gap_ind': 25, 'intern_ind': 27, 'len_orbit': 3, 'ngens': 4}[source]¶
- alternative_name()[source]¶
Return the name of the split irreducible representation for cubic Hecke algebras for up to four strands as given in [MW2012].
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_011.alternative_name() 'Tbc'
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_011.alternative_name() 'Tbc'
- dimension()[source]¶
Return the dimension of the representation.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_111.dimension() 3
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_111.dimension() 3
- gap_index()[source]¶
Return the array index of this representation for the access to the
GAP3packageCHEVIE.EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_111.gap_index() 6
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_111.gap_index() 6
- internal_index()[source]¶
Return the array index of this representation for the internal access.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_111.internal_index() 6
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_111.internal_index() 6
- length_orbit()[source]¶
Return the length of the orbit of this representation under the action of the Galois group of the cubic equation.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_001.length_orbit() 3 sage: chmr.AbsIrreducibeRep.W3_111.length_orbit() 1
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_001.length_orbit() 3 >>> chmr.AbsIrreducibeRep.W3_111.length_orbit() 1
- number_gens()[source]¶
Return the number of generators of the underlying cubic Hecke algebra.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.AbsIrreducibeRep.W3_001.number_gens() 2 sage: chmr.AbsIrreducibeRep.W4_001.number_gens() 3
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.AbsIrreducibeRep.W3_001.number_gens() 2 >>> chmr.AbsIrreducibeRep.W4_001.number_gens() 3
- class sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.CubicHeckeMatrixRep[source]¶
Bases:
Matrix_generic_denseClass to supervise the diagonal block matrix structure arising from cubic Hecke algebra-representations.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: CHA2.<c1> = algebras.CubicHecke(2) sage: MS = chmr.CubicHeckeMatrixSpace(CHA2) sage: m1 = MS(c1); m1 [ a 0 0] [ 0 b 0] [ 0 0 -b - a + u] sage: type(m1) <class 'sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.CubicHeckeMatrixSpace_with_category.element_class'> sage: m1.block_diagonal_list() [[a], [b], [-b - a + u]] sage: MSo = chmr.CubicHeckeMatrixSpace(CHA2, original=True) sage: MSo(c1) [a 0 0] [0 b 0] [0 0 c] sage: reg_left = chmr.RepresentationType.RegularLeft sage: MSreg = chmr.CubicHeckeMatrixSpace(CHA2, representation_type=reg_left) sage: MSreg(c1) [ 0 -v 1] [ 1 u 0] [ 0 w 0] sage: len(_.block_diagonal_list()) 1
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> MS = chmr.CubicHeckeMatrixSpace(CHA2) >>> m1 = MS(c1); m1 [ a 0 0] [ 0 b 0] [ 0 0 -b - a + u] >>> type(m1) <class 'sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.CubicHeckeMatrixSpace_with_category.element_class'> >>> m1.block_diagonal_list() [[a], [b], [-b - a + u]] >>> MSo = chmr.CubicHeckeMatrixSpace(CHA2, original=True) >>> MSo(c1) [a 0 0] [0 b 0] [0 0 c] >>> reg_left = chmr.RepresentationType.RegularLeft >>> MSreg = chmr.CubicHeckeMatrixSpace(CHA2, representation_type=reg_left) >>> MSreg(c1) [ 0 -v 1] [ 1 u 0] [ 0 w 0] >>> len(_.block_diagonal_list()) 1
- block_diagonal_list()[source]¶
Return the list of sub-matrix blocks of
selfconsidered as block diagonal matrix.OUTPUT:
A list of instances of
Matrix_generic_denseeach of which represents a diagonal block ofself.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: c1.matrix().block_diagonal_list() [[a], [b], [-b - a + u]]
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> c1.matrix().block_diagonal_list() [[a], [b], [-b - a + u]]
- reduce_to_irr_block(irr)[source]¶
Return a copy of
selfwith zeroes outside the block corresponding toirrbut the block according to the input identical to that ofself.INPUT:
irr– anAbsIrreducibeRepspecifying an absolute irreducible representation of the cubic Hecke algebra; alternatively, it can be specified by list index (seeinternal_index()respectivelygap_index())
OUTPUT:
An instance of
Matrix_generic_densewith exactly one nonzero block according toirr.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: m1 = c1.matrix() sage: m1.reduce_to_irr_block(0) [a 0 0] [0 0 0] [0 0 0] sage: m1.reduce_to_irr_block(CHA2.irred_repr.W2_001) [0 0 0] [0 b 0] [0 0 0]
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> m1 = c1.matrix() >>> m1.reduce_to_irr_block(Integer(0)) [a 0 0] [0 0 0] [0 0 0] >>> m1.reduce_to_irr_block(CHA2.irred_repr.W2_001) [0 0 0] [0 b 0] [0 0 0]
- class sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.CubicHeckeMatrixSpace(base_ring, dimension, cubic_hecke_algebra, representation_type, subdivide)[source]¶
Bases:
MatrixSpaceThe matrix space of cubic Hecke algebra representations.
INPUT:
cubic_hecke_algebra– (optional)CubicHeckeAlgebramust be given ifelementfails to be an instance of its element classrepresentation_type– (default:RepresentationType.SplitIrredChevie)RepresentationTypespecifying the type of the representationsubdivide– boolean (default:False); whether or not to subdivide the resulting matricesoriginal– boolean (default:False); ifTrue, the matrix will have coefficients in the generic base / extension ring
EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: c1.matrix() # indirect doctest [ a 0 0] [ 0 b 0] [ 0 0 -b - a + u] sage: c1.matrix(original=True) [a 0 0] [0 b 0] [0 0 c] sage: c1.matrix(representation_type = CHA2.repr_type.RegularLeft) # indirect doctest [ 0 -v 1] [ 1 u 0] [ 0 w 0]
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> c1.matrix() # indirect doctest [ a 0 0] [ 0 b 0] [ 0 0 -b - a + u] >>> c1.matrix(original=True) [a 0 0] [0 b 0] [0 0 c] >>> c1.matrix(representation_type = CHA2.repr_type.RegularLeft) # indirect doctest [ 0 -v 1] [ 1 u 0] [ 0 w 0]
- construction()[source]¶
Return
Nonesince this construction is not functorial.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: MS = c1.matrix().parent() sage: MS._test_category() # indirect doctest
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> MS = c1.matrix().parent() >>> MS._test_category() # indirect doctest
- one()[source]¶
Return the one element of
self.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: m1 = c1.matrix() sage: m1rl = c1.matrix(representation_type = CHA2.repr_type.RegularLeft) sage: o = m1.parent().one() sage: orl = m1rl.parent().one() sage: matrix(o) == matrix(orl), o.is_one(), orl.is_one() (True, True, True) sage: o.block_diagonal_list() [[1], [1], [1]] sage: orl.block_diagonal_list() [ [1 0 0] [0 1 0] [0 0 1] ]
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> m1 = c1.matrix() >>> m1rl = c1.matrix(representation_type = CHA2.repr_type.RegularLeft) >>> o = m1.parent().one() >>> orl = m1rl.parent().one() >>> matrix(o) == matrix(orl), o.is_one(), orl.is_one() (True, True, True) >>> o.block_diagonal_list() [[1], [1], [1]] >>> orl.block_diagonal_list() [ [1 0 0] [0 1 0] [0 0 1] ]
- some_elements()[source]¶
Return a generator of elements of
self.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2, cubic_equation_roots=(2, 3, 5)) sage: M = c1.matrix(); M [2 0 0] [0 3 0] [0 0 5] sage: MS = M.parent() sage: MS.some_elements() ( [ 94/3 0 0] [ 0 187/3 0] [ 0 0 373/3] ) sage: MS.some_elements() == tuple(MS(x) for x in CHA2.some_elements()) True
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), cubic_equation_roots=(Integer(2), Integer(3), Integer(5)), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> M = c1.matrix(); M [2 0 0] [0 3 0] [0 0 5] >>> MS = M.parent() >>> MS.some_elements() ( [ 94/3 0 0] [ 0 187/3 0] [ 0 0 373/3] ) >>> MS.some_elements() == tuple(MS(x) for x in CHA2.some_elements()) True
- zero()[source]¶
Return the zero element of
self.EXAMPLES:
sage: CHA2.<c1> = algebras.CubicHecke(2) sage: m1 = c1.matrix() sage: m1rl = c1.matrix(representation_type = CHA2.repr_type.RegularLeft) sage: z = m1.parent().zero() sage: zrl = m1rl.parent().zero() sage: matrix(z) == matrix(zrl), z.is_zero(), zrl.is_zero() (True, True, True) sage: z.block_diagonal_list() [[0], [0], [0]] sage: zrl.block_diagonal_list() [ [0 0 0] [0 0 0] [0 0 0] ]
>>> from sage.all import * >>> CHA2 = algebras.CubicHecke(Integer(2), names=('c1',)); (c1,) = CHA2._first_ngens(1) >>> m1 = c1.matrix() >>> m1rl = c1.matrix(representation_type = CHA2.repr_type.RegularLeft) >>> z = m1.parent().zero() >>> zrl = m1rl.parent().zero() >>> matrix(z) == matrix(zrl), z.is_zero(), zrl.is_zero() (True, True, True) >>> z.block_diagonal_list() [[0], [0], [0]] >>> zrl.block_diagonal_list() [ [0 0 0] [0 0 0] [0 0 0] ]
- class sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.GenSign(*values)[source]¶
Bases:
EnumEnum class to select the braid generators sign.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.GenSign.pos <GenSign.pos: 1> sage: chmr.GenSign.neg <GenSign.neg: -1>
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.GenSign.pos <GenSign.pos: 1> >>> chmr.GenSign.neg <GenSign.neg: -1>
- class sage.algebras.hecke_algebras.cubic_hecke_matrix_rep.RepresentationType(*values)[source]¶
Bases:
EnumEnum class to select a representation type for the cubic Hecke algebra.
RegularLeft– left regular representationsRegularRight– right regular representationsSplitIrredMarin– split irreducible representations obtained from Ivan Marin’s dataSplitIrredChevie– the split irreducible representations obtained from CHEVIE via theGAP3interface
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.RepresentationType.RegularLeft.is_regular() True
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.RepresentationType.RegularLeft.is_regular() True
- RegularLeft = {'data': CubicHeckeDataSection.regular_left, 'num_rep': [1, 1, 1, 1], 'regular': True, 'split': False}[source]¶
- RegularRight = {'data': CubicHeckeDataSection.regular_right, 'num_rep': [1, 1, 1, 1], 'regular': True, 'split': False}[source]¶
- SplitIrredChevie = {'data': None, 'num_rep': [1, 3, 7, 24, 30], 'regular': False, 'split': True}[source]¶
- SplitIrredMarin = {'data': CubicHeckeDataSection.split_irred, 'num_rep': [1, 3, 7, 24], 'regular': False, 'split': True}[source]¶
- data_section()[source]¶
Return the name of the data file. For more information see
CubicHeckeDataBase.EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: reg_left = chmr.RepresentationType.RegularLeft sage: reg_left.data_section() <CubicHeckeDataSection.regular_left: 'regular_left'>
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> reg_left = chmr.RepresentationType.RegularLeft >>> reg_left.data_section() <CubicHeckeDataSection.regular_left: 'regular_left'>
- is_regular()[source]¶
Return
Trueif this representation type is regular,Falseelse-wise.EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: reg_left = chmr.RepresentationType.RegularLeft sage: reg_left.is_regular() True
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> reg_left = chmr.RepresentationType.RegularLeft >>> reg_left.is_regular() True
- is_split()[source]¶
Return
Trueif this representation type is absolutely split,Falseelse-wise.EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chevie = chmr.RepresentationType.SplitIrredChevie sage: chevie.is_split() True
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chevie = chmr.RepresentationType.SplitIrredChevie >>> chevie.is_split() True
- number_of_representations(nstrands)[source]¶
Return the number of representations existing to that type.
EXAMPLES:
sage: import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr sage: chmr.RepresentationType.SplitIrredChevie.number_of_representations(4) 24 sage: chmr.RepresentationType.SplitIrredMarin.number_of_representations(4) 24
>>> from sage.all import * >>> import sage.algebras.hecke_algebras.cubic_hecke_matrix_rep as chmr >>> chmr.RepresentationType.SplitIrredChevie.number_of_representations(Integer(4)) 24 >>> chmr.RepresentationType.SplitIrredMarin.number_of_representations(Integer(4)) 24