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: - Enum- Enum 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) of- CHA, say- a^ib^jc^kwhere- a, band- care the generators of- GER. This does not depend on the choice of the generator of- CHA, 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_ijk- The 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_333and- W4_333bar- Examples of names: - W2_100– one dimensional representation of the cubic Hecke algebra on 2 strands corresponding to the first root of the cubic equation
- W3_111– three dimensional irreducible representation of the cubic Hecke algebra on 3 strands
- W4_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 - GAP3package- CHEVIE.- 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_dense- Class 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 of- self.- 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 to- irrbut the block according to the input identical to that of- self.- INPUT: - irr– an- AbsIrreducibeRepspecifying an absolute irreducible representation of the cubic Hecke algebra; alternatively, it can be specified by list index (see- internal_index()respectively- gap_index())
 - OUTPUT: - An instance of - Matrix_generic_densewith exactly one nonzero block according to- irr.- 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: - MatrixSpace- The matrix space of cubic Hecke algebra representations. - INPUT: - cubic_hecke_algebra– (optional)- CubicHeckeAlgebramust be given if- elementfails to be an instance of its element class
- representation_type– (default:- RepresentationType.SplitIrredChevie)- RepresentationTypespecifying the type of the representation
- subdivide– boolean (default:- False); whether or not to subdivide the resulting matrices
- original– boolean (default:- False); if- True, 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: - Enum- Enum 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: - Enum- Enum class to select a representation type for the cubic Hecke algebra. - RegularLeft– left regular representations
- RegularRight– right regular representations
- SplitIrredMarin– split irreducible representations obtained from Ivan Marin’s data
- SplitIrredChevie– the split irreducible representations obtained from CHEVIE via the- GAP3interface
 - 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