Operations on partitions

### Operations on partitions

• 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 be different.
• RETURN: OK or ERROR
• BUGS: there are no checks on the types, you better use the general routine add.
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 conjugate_partition().
• 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.
Example:
```...
scan(PARTITION,a);
println(a);
conjugate_partition(a,b);
...
```
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.
• 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.
In the representation theory of symmetric groups you often compute the so-called hooklengths in the Ferrers diagram:
• 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.
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: 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.
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: ordcen abbreviates order_ of_ centralizer while ordcon means order_ of_ conjugacy_ class.
• SYNOPSIS:
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 LONGINTobject.
Finally there is a routine for checking the installation of a PARTITIONobject:
• NAME: test_part
• SYNOPSIS: INT test_part()
• DESCRIPTION: does self-explanatory checks of the implementation of PARTITIONobjects.
• RETURN: OK

harald.fripertinger@kfunigraz.ac.at,
last changed: November 19, 2001

 Operations on partitions