Rigged Partitions#

Class and methods of the rigged partition which are used by the rigged configuration class. This is an internal class used by the rigged configurations and KR tableaux during the bijection, and is not to be used by the end-user.

We hold the partitions as a 1-dim array of positive integers where each value corresponds to the length of the row. This is the shape of the partition which can be accessed by the regular index.

The data for the vacancy number is also stored in a 1-dim array which each entry corresponds to the row of the tableau, and similarly for the partition values.

AUTHORS:

  • Travis Scrimshaw (2010-09-26): Initial version

Todo

Convert this to using multiplicities \(m_i\) (perhaps with a dictionary?)?

class sage.combinat.rigged_configurations.rigged_partition.RiggedPartition[source]#

Bases: SageObject

The RiggedPartition class which is the data structure of a rigged (i.e. marked or decorated) Young diagram of a partition.

Note that this class as a stand-alone object does not make sense since the vacancy numbers are calculated using the entire rigged configuration. For more, see RiggedConfigurations.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RP = RC(partition_list=[[2],[2,2],[2,1],[2]])[2]
sage: RP
 0[ ][ ]0
-1[ ]-1
>>> from sage.all import *
>>> RC = RiggedConfigurations(['A', Integer(4), Integer(1)], [[Integer(2), Integer(2)]])
>>> RP = RC(partition_list=[[Integer(2)],[Integer(2),Integer(2)],[Integer(2),Integer(1)],[Integer(2)]])[Integer(2)]
>>> RP
 0[ ][ ]0
-1[ ]-1
<BLANKLINE>
get_num_cells_to_column(end_column, t=1)[source]#

Get the number of cells in all columns before the end_column.

INPUT:

  • end_column – The index of the column to end at

  • t – The scaling factor

OUTPUT:

  • The number of cells

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RP = RC(partition_list=[[2],[2,2],[2,1],[2]])[2]
sage: RP.get_num_cells_to_column(1)
2
sage: RP.get_num_cells_to_column(2)
3
sage: RP.get_num_cells_to_column(3)
3
sage: RP.get_num_cells_to_column(3, 2)
5
>>> from sage.all import *
>>> RC = RiggedConfigurations(['A', Integer(4), Integer(1)], [[Integer(2), Integer(2)]])
>>> RP = RC(partition_list=[[Integer(2)],[Integer(2),Integer(2)],[Integer(2),Integer(1)],[Integer(2)]])[Integer(2)]
>>> RP.get_num_cells_to_column(Integer(1))
2
>>> RP.get_num_cells_to_column(Integer(2))
3
>>> RP.get_num_cells_to_column(Integer(3))
3
>>> RP.get_num_cells_to_column(Integer(3), Integer(2))
5
insert_cell(max_width)[source]#

Insert a cell given at a singular value as long as its less than the specified width.

Note that insert_cell() does not update riggings or vacancy numbers, but it does prepare the space for them. Returns the width of the row we inserted at.

INPUT:

  • max_width – The maximum width (i.e. row length) that we can insert the cell at

OUTPUT:

  • The width of the row we inserted at.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RP = RC(partition_list=[[2],[2,2],[2,1],[2]])[2]
sage: RP.insert_cell(2)
2
sage: RP
 0[ ][ ][ ]None
-1[ ]-1
>>> from sage.all import *
>>> RC = RiggedConfigurations(['A', Integer(4), Integer(1)], [[Integer(2), Integer(2)]])
>>> RP = RC(partition_list=[[Integer(2)],[Integer(2),Integer(2)],[Integer(2),Integer(1)],[Integer(2)]])[Integer(2)]
>>> RP.insert_cell(Integer(2))
2
>>> RP
 0[ ][ ][ ]None
-1[ ]-1
<BLANKLINE>
remove_cell(row, num_cells=1)[source]#

Removes a cell at the specified row.

Note that remove_cell() does not set/update the vacancy numbers or the riggings, but guarantees that the location has been allocated in the returned index.

INPUT:

  • row – the row to remove the cell from

  • num_cells – (default: 1) the number of cells to remove

OUTPUT:

  • The location of the newly constructed row or None if unable to remove row or if deleted a row.

EXAMPLES:

sage: RC = RiggedConfigurations(['A', 4, 1], [[2, 2]])
sage: RP = RC(partition_list=[[2],[2,2],[2,1],[2]])[2]
sage: RP.remove_cell(0)
0
sage: RP
 None[ ]None
-1[ ]-1
>>> from sage.all import *
>>> RC = RiggedConfigurations(['A', Integer(4), Integer(1)], [[Integer(2), Integer(2)]])
>>> RP = RC(partition_list=[[Integer(2)],[Integer(2),Integer(2)],[Integer(2),Integer(1)],[Integer(2)]])[Integer(2)]
>>> RP.remove_cell(Integer(0))
0
>>> RP
 None[ ]None
-1[ ]-1
<BLANKLINE>
rigging[source]#
vacancy_numbers[source]#
class sage.combinat.rigged_configurations.rigged_partition.RiggedPartitionTypeB[source]#

Bases: RiggedPartition

Rigged partitions for type \(B_n^{(1)}\) which has special printing rules which comes from the fact that the \(n\)-th partition can have columns of width \(\frac{1}{2}\).