conjugate: Conjugate partitions and Durfee squares

Description Usage Arguments Details Value Note Author(s) Examples

Description

Given a partition, provide its conjugate or Durfee square

Usage

1
2

Arguments

x

Either a vector describing a partition, in standard form (ie nonincreasing); or a matrix whose columns are partitions in standard form

Details

Conjugation is described in Andrews, and (eg) Hardy and Wright.

The conjugate of a partition may be calculated by taking its Ferrers diagram and considering the partition defined by columns instead of rows. This may be visualised by flipping the Ferrers diagram about the leading diagonal.

Essentially, conjugate() carries out R idiom rev(cumsum(table(factor(a[a>0],levels=max(a):1)))), but faster.

The “Durfee square” of a partition is defined on page 281 of Hardy and Wright. It is the largest square of nodes contained in the partition's Ferrers graph. Function durfee() returns the length of the side of the Durfee square, which Andrews denotes d(lambda). It is equivalent to R idiom function(a){sum(a>=1:length(a))}, but faster.

Value

Returns either a partition in standard form, or a matrix whose columns are partitions in standard form.

Note

If argument x is not nonincreasing, all bets are off: these functions will not work and will silently return garbage. Caveat emptor! (output from blockparts() is not necessarily non-increasing)

Author(s)

Robin K. S. Hankin

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
parts(5)
conjugate(parts(5))

restrictedparts(6,4)
conjugate(restrictedparts(6,4))

durfee(10:1)


# Suppose one wanted partitions of 8 with no part larger than 3:

conjugate(restrictedparts(8,3))

# (restrictedparts(8,3) splits 8 into at most 3 parts; 
# so no part of the conjugate partition is larger than 3).

partitions documentation built on July 7, 2017, 9:03 a.m.