I'd like to have a Mathematica program to output planar partitions for small values. I seem to remember once writing such a program years ago using a program that appeared in an IEEE journal from the 1960's, but I can't locate the article and can't find the program. Does anyone have any ideas? By planar partition I mean exactly what is given in the first answer to my question, namely: "a two-dimensional array of integers that are non-increasing both from left to right and top to bottom and that add up to a given number n."
2 Answers
$\begingroup$
$\endgroup$
I believe this software suite is the answer to your prayers (and then some). (to give credit: Axel Riese's Omega package).
$\begingroup$
"...a two-dimensional array of integers $n_{i,j}$ that are nonincreasing both from left to right and top to bottom
and that add up to a given number $n$."
$\endgroup$
2
The unadorned term "planar partition" does not have an unambiguous meaning. One possible meaning is described in an article in Mathworld entitled Plane partition:
"...a two-dimensional array of integers $n_{i,j}$ that are nonincreasing both from left to right and top to bottom
and that add up to a given number $n$."
The OP seeks
to output planar partitions for small values
If you could specify (1) what is the input, (2) what is a "planar partition," and (3) for small values of what parameter, then perhaps someone can help.
-
1$\begingroup$ I believe the OP does mean plane partitions. $\endgroup$ Commented Jan 29, 2018 at 0:33
-
$\begingroup$ Removed my incorrect guesses as to the OP's intent. $\endgroup$ Commented Jan 29, 2018 at 1:43
SortBy[DeleteDuplicates[ Map[Sort, Map[Total, SetPartitions[Table[1, {n}]], {2}]]], N[Last[#]] &]
(needsCombinatorica
), which gives you a list of unique partitions of the integer $n$. Then maybe a recursiveModule
which partitions each list entry further, then combines them into matrices? $\endgroup$