Operations on partitions
You can add partitions componentwise:
A familiar operation on partitions is conjugation, or association,
as it is also called. This is done using the the standard routine
conjugate, or if you are an expert using the special routine
- NAME: add_part_part
- SYNOPSIS: INT add_part_part(OP a,b,c)
- DESCRIPTION: adds the two PARTITIONobjects a and b to the result
c. c must be an empty object. All the objects a,b,c must
- RETURN: OK or ERROR
- BUGS: there are no checks on the types, you better use
the general routine add.
- NAME: conjugate_partition
- SYNOPSIS: INT conjugate_partition(OP input,output)
- DESCRIPTION: Computes the conjugate partition , there is no check
whether input is a PARTITIONobject, there is no check
whether output is an empty object, and there is no check
whether input and output are different pointers. All these
checks are done if you call the standard routine conjugate.
Partitions are represented graphically using the Ferrers diagram.
The routine to call it is the standard routine ferrers, which then calls
the routine ferrers_partition.
In the representation theory of symmetric groups you often compute
the so-called hooklengths in the Ferrers diagram:
- NAME: ferrers_partition
- SYNOPSIS: INT ferrers_partition(OP part)
- DESCRIPTION: prints the Ferrers diagram to the standard output. There
is no check whether part is really a PARTITIONobject.
Hook lengths are mostly used to compute the dimension of an
ireducible representation of the symmetric group, which is labeled
by a partition. You can do this directly using the standard routine
dimension(), which calls dimension_partition:
- NAME: hook_length
- SYNOPSIS: INT hook_length(OP part; INT i,j; OP result)
- DESCRIPTION: computes the hook length of the hook starting at position
(i,j) in the Ferrers diagram. The row with index 0 is the
longest row. First the result is freed to an empty object.
Another object which is labeled by partitions are the classes and the
centralizers of elements in the symmetric group. We can compute their orders:
- NAME: dimension_partition
- SYNOPSIS: INT dimension_partition(OP part, result)
- DESCRIPTION: computes the dimension of the irreducible representation
labeled by part. There is no check whether part is a
PARTITIONobject. The result becomes a LONGINTobject, if the
dimension is too big.
- BUGS: It would be good, to allow skewpartitions also.
Finally there is a routine for checking the installation
of a PARTITIONobject:
- NAME: ordcen abbreviates order_ of_ centralizer
while ordcon means order_ of_ conjugacy_ class.
INT ordcen(OP part,result)
INT ordcon(OP part,result)
- DESCRIPTION: computes the order of the centralizer or of the
conjugacy class. First it frees the result. There is no check
whether part is a PARTITIONobject. The result may become a
- NAME: test_part
- SYNOPSIS: INT test_part()
- DESCRIPTION: does self-explanatory checks of the implementation
- RETURN: OK
last changed: November 19, 2001