combinat-0.2.9.0: Generate and manipulate various combinatorial objects.

Math.Combinat.Partitions.Plane

Description

Plane partitions. See eg. http://en.wikipedia.org/wiki/Plane_partition

Plane partitions are encoded as lists of lists of Z heights. For example the plane partition in the picture

is encoded as

PlanePart [ [5,4,3,3,1]
, [4,4,2,1]
, [3,2]
, [2,1]
, [1]
, [1]
]
Synopsis

# the type of plane partitions

newtype PlanePart Source #

A plane partition encoded as a tablaeu (the "Z" heights are the numbers)

Constructors

 PlanePart [[Int]]
Instances
 Source # Instance detailsDefined in Math.Combinat.Partitions.Plane Methods Source # Instance detailsDefined in Math.Combinat.Partitions.Plane Methods Source # Instance detailsDefined in Math.Combinat.Partitions.Plane MethodsshowList :: [PlanePart] -> ShowS # Source # Instance detailsDefined in Math.Combinat.Partitions.Plane Methods Source # Instance detailsDefined in Math.Combinat.Partitions.Plane Methods

toPlanePart :: [[Int]] -> PlanePart Source #

Throws an exception if the input is not a plane partition

The XY projected shape of a plane partition, as an integer partition

The Z height of a plane partition

# constructing plane partitions

Stacks layers of partitions into a plane partition. Throws an exception if they do not form a plane partition.

Stacks layers of partitions into a plane partition. This is unsafe in the sense that we don't check that the partitions fit on the top of each other.

The "layers" of a plane partition (in direction Z). We should have

unsafeStackLayers (planePartLayers pp) == pp

# generating plane partitions

Plane partitions of a given weight