Function Repository Resource:

PseudoConjugatePartition

Source Notebook

Compute the pseudo-conjugate of an integer partition

Contributed by: George Beck

ResourceFunction["PseudoConjugatePartition"][x]

gives the pseudo-conjugate partition of the integer partition x.

Details

A partition of n is a list of weakly decreasing positive integers that add up to n. For instance, written compactly, these are the five partitions of 4: 4, 31, 2, 2 211, 1111.
The pseudo-conjugate of a partition is defined via somewhat complicated piecewise functions as discussed in Appendix A of the paper of Berkovich and Garvan. Using those functions, the Ferrers diagram of the partition is broken up into at most six pieces that are rearranged by shifts and ordinary conjugation.

Examples

Basic Examples (1) 

Compute the pseudo-conjugate of an integer partition:

In[1]:=
ResourceFunction["PseudoConjugatePartition"][{11, 4, 4, 4, 2, 1}]
Out[1]=

Properties and Relations (2) 

The partition rank of a partition and its conjugate have opposite signs:

In[2]:=
\[Lambda] = {11, 4, 4, 4, 2, 1};
ResourceFunction[
ResourceObject[<|"Name" -> "PartitionRank", "ShortName" -> "PartitionRank", "UUID" -> "d2ed67b2-c36e-4386-9fa3-3852e8854e3d", "ResourceType" -> "Function", "Version" -> "2.0.0", "Description" -> "The largest part minus the number of parts of a partition", "RepositoryLocation" -> URL[
     "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$7802ac1dc2804f12892499f0de430db5`PartitionRank", "FunctionLocation" -> CloudObject[
     "https://www.wolframcloud.com/obj/e59104d9-b151-48ff-adb4-d32ec42539ba"]|>, ResourceSystemBase -> Automatic]][\[Lambda]]
Out[3]=
In[4]:=
ResourceFunction[
ResourceObject[<|"Name" -> "PartitionRank", "ShortName" -> "PartitionRank", "UUID" -> "d2ed67b2-c36e-4386-9fa3-3852e8854e3d", "ResourceType" -> "Function", "Version" -> "2.0.0", "Description" -> "The largest part minus the number of parts of a partition", "RepositoryLocation" -> URL[
     "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$7802ac1dc2804f12892499f0de430db5`PartitionRank", "FunctionLocation" -> CloudObject[
     "https://www.wolframcloud.com/obj/e59104d9-b151-48ff-adb4-d32ec42539ba"]|>, ResourceSystemBase -> Automatic]][ResourceFunction[
ResourceObject[<|"Name" -> "ConjugatePartition", "ShortName" -> "ConjugatePartition", "UUID" -> "b069081a-6f99-40ce-950a-77b521734bc1", "ResourceType" -> "Function", "Version" -> "1.1.0", "Description" -> "Switch the rows and columns of a partition", "RepositoryLocation" -> URL[
      "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$8cd6ed891701488690f30ef7fc0c1bbc`ConjugatePartition", "FunctionLocation" -> CloudObject[
      "https://www.wolframcloud.com/obj/5f7fc5dc-9dd7-433c-8769-710d19306dce"]|>, ResourceSystemBase -> Automatic]][\[Lambda]]]
Out[4]=

Similarly, the partition crank of a partition and its pseudo-conjugate have opposite signs:

In[5]:=
ResourceFunction[
ResourceObject[<|"Name" -> "PartitionCrank", "ShortName" -> "PartitionCrank", "UUID" -> "cdc58240-f298-4640-a630-36f53c9ef52d", "ResourceType" -> "Function", "Version" -> "1.0.0", "Description" -> "Get Dyson's crank of an integer partition", "RepositoryLocation" -> URL[
     "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$6a0f7b5549894d4da8f279089d17abd6`PartitionCrank", "FunctionLocation" -> CloudObject[
     "https://www.wolframcloud.com/obj/bc1bc7a3-fda3-4749-89ac-af3193784765"]|>, ResourceSystemBase -> Automatic]][\[Lambda]]
Out[5]=
In[6]:=
ResourceFunction[
ResourceObject[<|"Name" -> "PartitionCrank", "ShortName" -> "PartitionCrank", "UUID" -> "cdc58240-f298-4640-a630-36f53c9ef52d", "ResourceType" -> "Function", "Version" -> "1.0.0", "Description" -> "Get Dyson's crank of an integer partition", "RepositoryLocation" -> URL[
     "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$6a0f7b5549894d4da8f279089d17abd6`PartitionCrank", "FunctionLocation" -> CloudObject[
     "https://www.wolframcloud.com/obj/bc1bc7a3-fda3-4749-89ac-af3193784765"]|>, ResourceSystemBase -> Automatic]][
 ResourceFunction["PseudoConjugatePartition"][\[Lambda]]]
Out[6]=

Remarkably, the self-conjugate partitions and the self-pseudo-conjugate partitions of n are equinumerous; here n=23:

In[7]:=
Length@Select[IntegerPartitions@23, # == ResourceFunction[
ResourceObject[<|"Name" -> "ConjugatePartition", "ShortName" -> "ConjugatePartition", "UUID" -> "b069081a-6f99-40ce-950a-77b521734bc1", "ResourceType" -> "Function", "Version" -> "1.1.0", "Description" -> "Switch the rows and columns of a partition",
         "RepositoryLocation" -> URL[
         "https://www.wolframcloud.com/obj/resourcesystem/api/1.0"], "SymbolName" -> "FunctionRepository`$8cd6ed891701488690f30ef7fc0c1bbc`ConjugatePartition", "FunctionLocation" -> CloudObject[
         "https://www.wolframcloud.com/obj/5f7fc5dc-9dd7-433c-8769-710d19306dce"]|>, ResourceSystemBase -> Automatic]][#] &]
Out[7]=
In[8]:=
Length@Select[
  IntegerPartitions@
   23, # == ResourceFunction["PseudoConjugatePartition"][#] &]
Out[8]=

Applications (2) 

Compute the total number of self-pseudo-conjugate partitions of n from the generating function:

In[9]:=
n = 19;
SeriesCoefficient[QPochhammer[-q, q^2], {q, 0, n}]
Out[10]=

Compare with a brute-force enumeration:

In[11]:=
Length@Select[
  IntegerPartitions[
   n], # === ResourceFunction["PseudoConjugatePartition"][#] &]
Out[11]=

Publisher

George Beck

Requirements

Wolfram Language 12.3 (May 2021) or above

Version History

  • 1.0.0 – 28 February 2024

Source Metadata

Related Resources

License Information