(* Content-type: application/vnd.wolfram.mathematica *)
(*** Wolfram Notebook File ***)
(* http://www.wolfram.com/nb *)
(* CreatedBy='Mathematica 9.0' *)
(*CacheID: 234*)
(* Internal cache information:
NotebookFileLineBreakTest
NotebookFileLineBreakTest
NotebookDataPosition[ 157, 7]
NotebookDataLength[ 53962, 1134]
NotebookOptionsPosition[ 49036, 1040]
NotebookOutlinePosition[ 49432, 1056]
CellTagsIndexPosition[ 49389, 1053]
WindowFrame->Normal*)
(* Beginning of Notebook Content *)
Notebook[{
Cell[CellGroupData[{
Cell["Conjugate Partition", "Title",ExpressionUUID->"9c460263-9224-463a-ac5a-14b699be14e7"],
Cell[CellGroupData[{
Cell["Author", "Subsection",ExpressionUUID->"0f0bf773-9d46-4ad3-a329-b4cc1cec26ce"],
Cell["\<\
Eric W. Weisstein
September 8, 2021\
\>", "Text",ExpressionUUID->"a79aef86-d069-477d-8524-3c209f841e2c"],
Cell[TextData[{
"This notebook downloaded from ",
ButtonBox["http://mathworld.wolfram.com/notebooks/Combinatorics/\
ConjugatePartition.nb",
BaseStyle->"Hyperlink",
ButtonData:>{
URL["http://mathworld.wolfram.com/notebooks/Combinatorics/\
ConjugatePartition.nb"], None}],
"."
}], "Text",ExpressionUUID->"970b5c81-0faf-4a15-b4db-70ceaa61505f"],
Cell[TextData[{
"For more information, see Eric's ",
StyleBox["MathWorld",
FontSlant->"Italic"],
" entry ",
ButtonBox["http://mathworld.wolfram.com/ConjugatePartition.html",
BaseStyle->"Hyperlink",
ButtonData:>{
URL["http://mathworld.wolfram.com/ConjugatePartition.html"], None}],
"."
}], "Text",ExpressionUUID->"1814dc94-f262-4781-9cf0-7d1a3c210b7b"],
Cell["\<\
\[Copyright]2021 Wolfram Research, Inc. except for portions noted otherwise\
\>", "Text",ExpressionUUID->"cded6721-a023-4e30-ad64-023f56136e38"]
}, Open ]],
Cell[CellGroupData[{
Cell["Figure", "Section",ExpressionUUID->"56a6a7a1-df8a-4627-b104-9a9db3941937"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"p2", "=",
RowBox[{
RowBox[{"ResourceFunction", "[", "\"\\"", "]"}], "[",
RowBox[{"p1", "=",
RowBox[{"{",
RowBox[{"6", ",", "3", ",", "3", ",", "2", ",", "1"}], "}"}]}],
"]"}]}]], "Input",
CellLabel->"In[5]:=",ExpressionUUID->"9223fae5-a85d-4284-b2e5-5a2fc7c174cb"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"5", ",", "4", ",", "3", ",", "1", ",", "1", ",", "1"}],
"}"}]], "Output",
CellLabel->"Out[5]=",ExpressionUUID->"545709ce-e75b-4c39-8044-7dae3c363dcd"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{"ResourceFunction", "[", "\"\\"", "]"}], "[",
"p2", "]"}], "==", "p1"}]], "Input",
CellLabel->"In[6]:=",ExpressionUUID->"0618a882-7b55-400a-b7e9-3625365eef9a"],
Cell[BoxData["True"], "Output",
CellLabel->"Out[6]=",ExpressionUUID->"d06f2bbc-36dd-40cd-b6d1-4a3b5b517642"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{
RowBox[{
RowBox[{
RowBox[{"ResourceFunction", "[", "\"\\"", "]"}], "[",
"#", "]"}], "&"}], "/@",
RowBox[{"{",
RowBox[{"p1", ",", "p2"}], "}"}]}]], "Input",
CellLabel->"In[7]:=",ExpressionUUID->"857063c4-1374-4d27-85f8-a478ddb239ff"],
Cell[BoxData[
RowBox[{"{",
RowBox[{
TagBox[GridBox[{
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\
\<\"\[FilledCircle]\"\>"},
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "", "", ""},
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "", "", ""},
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "", "", "", ""},
{"\<\"\[FilledCircle]\"\>", "", "", "", "", ""}
},
AutoDelete->False,
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Grid"], ",",
TagBox[GridBox[{
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>"},
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", ""},
{"\<\"\[FilledCircle]\"\>", "\<\"\[FilledCircle]\"\>", "\<\"\
\[FilledCircle]\"\>", "", ""},
{"\<\"\[FilledCircle]\"\>", "", "", "", ""},
{"\<\"\[FilledCircle]\"\>", "", "", "", ""},
{"\<\"\[FilledCircle]\"\>", "", "", "", ""}
},
AutoDelete->False,
GridBoxItemSize->{"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}}],
"Grid"]}], "}"}]], "Output",
CellLabel->"Out[7]=",ExpressionUUID->"53328dcb-52d7-4e7d-a690-2a1c491035b2"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Algorithms", "Section",ExpressionUUID->"8ee92d95-2aff-4a12-80fc-973be250fa56"],
Cell[CellGroupData[{
Cell["FunctionRepository", "Subsection",ExpressionUUID->"4c59d61e-d78a-47bc-a37d-dc9230db2776"],
Cell[BoxData[
RowBox[{
RowBox[{"ConjugatePartition0", "[", "l_", "]"}], ":=",
RowBox[{
RowBox[{"ResourceFunction", "[", "\"\\"", "]"}], "[",
"l", "]"}]}]], "Input",
CellLabel->"In[1]:=",ExpressionUUID->"798afdf4-00f4-4712-9494-19180da834bb"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"ConjugatePartition0", "[",
RowBox[{"{",
RowBox[{"6", ",", "3", ",", "3", ",", "2", ",", "1"}], "}"}],
"]"}]], "Input",
CellLabel->"In[3]:=",ExpressionUUID->"bffc068f-a951-4c88-9bf6-107eca9f06cc"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"5", ",", "4", ",", "3", ",", "1", ",", "1", ",", "1"}],
"}"}]], "Output",
CellLabel->"Out[3]=",ExpressionUUID->"8aae6f27-6c11-4fba-806c-4dbd6f312604"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Position", "Subsection",ExpressionUUID->"ef7f01e9-f1c7-47b3-9010-23a105c92293"],
Cell["Eric's version from either ca. 1999:", "Text",ExpressionUUID->"15e3077e-6a66-490d-be0d-2af9584ffa56"],
Cell[BoxData[
RowBox[{
RowBox[{"ConjugatePartition", "[", "l_", "]"}], ":=",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"r", "=",
RowBox[{"Reverse", "[", "l", "]"}]}], ",",
RowBox[{"n", "=",
RowBox[{"Length", "[", "l", "]"}]}]}], "}"}], ",",
RowBox[{"Table", "[",
RowBox[{
RowBox[{"n", "+", "1", "-",
RowBox[{
RowBox[{"Position", "[",
RowBox[{"r", ",",
RowBox[{"_", "?",
RowBox[{"(",
RowBox[{
RowBox[{"#", "\[GreaterEqual]", "i"}], "&"}], ")"}]}], ",",
"Infinity", ",", "1"}], "]"}], "[",
RowBox[{"[",
RowBox[{"1", ",", "1"}], "]"}], "]"}]}], ",",
RowBox[{"{",
RowBox[{"i", ",",
RowBox[{"l", "[",
RowBox[{"[", "1", "]"}], "]"}]}], "}"}]}], "]"}]}], "]"}]}]], "Input",\
CellChangeTimes->{{3.8400355847224007`*^9, 3.840035585399929*^9}},
CellLabel->"In[8]:=",ExpressionUUID->"c186880c-5711-4fc3-82f2-71795c0b0e26"],
Cell["\<\
Implementation from Function Repo:
https://resources.wolframcloud.com/FunctionRepository/resources/\
ConjugatePartition\
\>", "Text",ExpressionUUID->"14798705-6723-431d-a329-89b79ab30d51"]
}, Open ]],
Cell[CellGroupData[{
Cell["NestWhileList", "Subsection",ExpressionUUID->"13dc6264-1fa3-4522-834b-a9317f19d4b5"],
Cell["\<\
Version from Arnoud B. from Sep 7 2021, which is faster and simpler:\
\>", "Text",ExpressionUUID->"1cf60d97-50da-483d-b529-5fc6e11035e4"],
Cell[BoxData[
RowBox[{
RowBox[{"ConjugatePartition2", "[", "e_", "]"}], ":=",
RowBox[{"Length", "/@",
RowBox[{"Most", "[", "\[IndentingNewLine]",
RowBox[{"NestWhileList", "[", "\[IndentingNewLine]",
RowBox[{
RowBox[{"Function", "[",
RowBox[{
RowBox[{"{", "s", "}"}], ",", "\[IndentingNewLine]",
RowBox[{"Select", "[",
RowBox[{
RowBox[{"s", "-", "1"}], ",",
RowBox[{
RowBox[{"#", ">", "0"}], "&"}]}], "]"}]}], "\[IndentingNewLine]",
"]"}], ",", "\[IndentingNewLine]", "e", ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"#", "=!=",
RowBox[{"{", "}"}]}], "&"}]}], "]"}], "]"}]}]}]], "Input",
CellChangeTimes->{{3.840037632217463*^9, 3.840037684784601*^9}, {
3.8400378274339333`*^9, 3.840037836091997*^9}, {3.840037866731454*^9,
3.840037876613693*^9}, {3.8400379551110373`*^9, 3.840037956441194*^9}},
CellLabel->"In[51]:=",ExpressionUUID->"2fc70be7-dd23-4139-b0b1-6eff60adc171"]
}, Open ]],
Cell[CellGroupData[{
Cell["Compiled", "Subsection",ExpressionUUID->"f58528a1-cade-44f3-82db-c4098e601e58"],
Cell["\<\
A compiled version, slightly more complicated because Select can return an \
empty list which the compiler does not like:\
\>", "Text",
CellChangeTimes->{{3.84004101017111*^9,
3.84004104132106*^9}},ExpressionUUID->"fadcdff9-be65-4efd-9064-\
bc48569b7e90"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"ConjugatePartition3", "=",
RowBox[{"FunctionCompile", "[", "\[IndentingNewLine]",
RowBox[{"Function", "[",
RowBox[{
RowBox[{"{",
RowBox[{"Typed", "[",
RowBox[{"e", ",",
RowBox[{
RowBox[{"TypeSpecifier", "[", "\"\\"", "]"}], "[",
RowBox[{"\"\\"", ",", " ", "1"}], "]"}]}], "]"}],
"}"}], ",", "\[IndentingNewLine]",
RowBox[{"Module", "[",
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"ee", "=", "e"}], ",", "more", ",",
RowBox[{
RowBox[{"Typed", "[",
RowBox[{"res", ",", "\"\\""}], "]"}], "=",
RowBox[{
"CreateDataStructure", "[", "\"\\"", "]"}]}]}],
"}"}], ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"more", "=",
RowBox[{
RowBox[{"Length", "[", "ee", "]"}], ">", "0"}]}], ";",
"\[IndentingNewLine]",
RowBox[{"While", "[",
RowBox[{"more", ",", "\[IndentingNewLine]",
RowBox[{
RowBox[{"res", "[",
RowBox[{"\"\\"", ",",
RowBox[{"Length", "[", "ee", "]"}]}], "]"}], ";",
"\[IndentingNewLine]",
RowBox[{"If", "[", "\[IndentingNewLine]",
RowBox[{
RowBox[{
RowBox[{"First", "[",
RowBox[{"ee", "-", "1"}], "]"}], ">", "0"}], ",",
"\[IndentingNewLine]",
RowBox[{"ee", "=",
RowBox[{"Select", "[",
RowBox[{
RowBox[{"ee", "-", "1"}], ",",
RowBox[{
RowBox[{"#", ">", "0"}], "&"}]}], "]"}]}], ",",
"\[IndentingNewLine]",
RowBox[{"more", "=", "False"}]}], "\[IndentingNewLine]", "]"}],
";"}]}], "\[IndentingNewLine]", "]"}], ";", "\[IndentingNewLine]",
RowBox[{"Normal", "[", "res", "]"}]}]}], "\[IndentingNewLine]",
"]"}]}], "]"}], "]"}]}]], "Input",
CellChangeTimes->{{3.840037632217463*^9, 3.840037684784601*^9}, {
3.8400378274339333`*^9, 3.840037836091997*^9}, {3.840037866731454*^9,
3.840037876613693*^9}, {3.8400379551110373`*^9, 3.840038029816091*^9}, {
3.8400380620486727`*^9, 3.840038073905258*^9}, {3.840038212812716*^9,
3.8400382902255297`*^9}, {3.840038888344655*^9, 3.840038888433313*^9}, {
3.8400389768025017`*^9, 3.840038976952833*^9}, {3.840039540938513*^9,
3.8400396888647013`*^9}, 3.840039799170014*^9, {3.8400404184707727`*^9,
3.8400404537729893`*^9}, {3.840040535205996*^9, 3.8400405395248938`*^9}, {
3.840040618437523*^9, 3.8400406638667192`*^9}},
CellLabel->
"In[130]:=",ExpressionUUID->"10ec03c1-13b2-4b38-9ef9-9c74ae314dfc"],
Cell[BoxData[
InterpretationBox[
RowBox[{
TagBox["CompiledCodeFunction",
"SummaryHead"], "[",
DynamicModuleBox[{Typeset`open$$ = False, Typeset`embedState$$ = "Ready"},
TemplateBox[{
PaneSelectorBox[{False -> GridBox[{{
GraphicsBox[
InsetBox[
FormBox[
StyleBox["\"Code\"",
GrayLevel[0.7], Bold, 8.267999999999999, StripOnInput ->
False], TraditionalForm], {0, 0}], Background ->
GrayLevel[0.93], Axes -> False, AspectRatio -> 1, ImageSize ->
Dynamic[{
Automatic,
3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
Magnification])}, ImageSizeCache -> {27., {0., 10.}}], Frame ->
True, FrameTicks -> None, FrameStyle -> Directive[
Thickness[Tiny],
GrayLevel[0.55]]],
GridBox[{{
RowBox[{
TagBox["\"Signature: \"", "SummaryItemAnnotation"],
"\[InvisibleSpace]",
TagBox[
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"TypeSpecifier", "[", "\"PackedArray\"", "]"}],
"[",
RowBox[{"\"Integer64\"", ",", "1"}], "]"}], "}"}],
"\[Rule]", "\"Expression\""}], "SummaryItem"]}]}},
GridBoxAlignment -> {
"Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete ->
False, GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
BaseStyle -> {
ShowStringCharacters -> False, NumberMarks -> False,
PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
AutoDelete -> False,
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
BaselinePosition -> {1, 1}], True -> GridBox[{{
GraphicsBox[
InsetBox[
FormBox[
StyleBox["\"Code\"",
GrayLevel[0.7], Bold, 8.267999999999999, StripOnInput ->
False], TraditionalForm], {0, 0}], Background ->
GrayLevel[0.93], Axes -> False, AspectRatio -> 1, ImageSize ->
Dynamic[{
Automatic,
3.5 (CurrentValue["FontCapHeight"]/AbsoluteCurrentValue[
Magnification])}, ImageSizeCache -> {27., {0., 10.}}], Frame ->
True, FrameTicks -> None, FrameStyle -> Directive[
Thickness[Tiny],
GrayLevel[0.55]]],
GridBox[{{
RowBox[{
TagBox["\"Signature: \"", "SummaryItemAnnotation"],
"\[InvisibleSpace]",
TagBox[
RowBox[{
RowBox[{"{",
RowBox[{
RowBox[{"TypeSpecifier", "[", "\"PackedArray\"", "]"}],
"[",
RowBox[{"\"Integer64\"", ",", "1"}], "]"}], "}"}],
"\[Rule]", "\"Expression\""}], "SummaryItem"]}]}},
GridBoxAlignment -> {
"Columns" -> {{Left}}, "Rows" -> {{Automatic}}}, AutoDelete ->
False, GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
GridBoxSpacings -> {"Columns" -> {{2}}, "Rows" -> {{Automatic}}},
BaseStyle -> {
ShowStringCharacters -> False, NumberMarks -> False,
PrintPrecision -> 3, ShowSyntaxStyles -> False}]}},
GridBoxAlignment -> {"Columns" -> {{Left}}, "Rows" -> {{Top}}},
AutoDelete -> False,
GridBoxItemSize -> {
"Columns" -> {{Automatic}}, "Rows" -> {{Automatic}}},
BaselinePosition -> {1, 1}]},
Dynamic[Typeset`open$$], ImageSize -> Automatic]},
"SummaryPanel"],
DynamicModuleValues:>{}], "]"}],
CompiledCodeFunction[
Association["Signature" -> TypeSpecifier[{
"PackedArray"["Integer64",
TypeFramework`TypeLiteral[1, "Integer64"]]} -> "Expression"],
"Input" -> Compile`Program[{},
Function[{
Typed[$CellContext`e,
TypeSpecifier["PackedArray"]["MachineInteger", 1]]},
Module[{$CellContext`ee = $CellContext`e, $CellContext`more,
Typed[$CellContext`res, "DynamicArray"] =
CreateDataStructure["DynamicArray"]}, $CellContext`more =
Length[$CellContext`ee] > 0;
While[$CellContext`more, $CellContext`res["Append",
Length[$CellContext`ee]];
If[First[$CellContext`ee - 1] > 0, $CellContext`ee =
Select[$CellContext`ee - 1, # > 0& ], $CellContext`more = False];
Null]; Normal[$CellContext`res]]]], "ErrorFunction" -> Automatic,
"InitializationName" ->
"Initialization_767fac04_6ca5_4e84_9460_609789276932", "ExpressionName" ->
"Main_ExprInvocation", "CName" -> "Main_CInvocation", "FunctionName" ->
"Main", "SystemID" -> "MacOSX-ARM64", "VersionData" -> {13., 0, 0},
"CompiledIR" -> Association["MacOSX-ARM64" -> ByteArray[CompressedData["
1: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
/paJiZyfwmnbNPjib9OweMFyNq3A3LDWgem/4oCBAfVB3mHgrrEMBr/Bv8eQ
Y+HMwcCgnidLuPMTLNv7mFqnpfySmGB4rcqBWbnyJGhGzT8q0bTrkawz5LDz
9nAk/utOBtPSl/uTAOjknWFjn++E3FY53Yfc+q8nuD1sQHBbsKRv6llmYimt
lUv3f4/Pfq/C94n/1bbWTvOTrcX+Z3LZFrdyM8LPUjdy/fZB1dUGR0PVJU4g
XP2cztWHGaEbymKMewjVcU03lrGNH1szGLQUEukKLcgbjJ/ELd7hxyJVB5Of
MgLDpx7zJ5HOV80HYliQyRZC1m9k5mImE6O2sk3uO4hK1he6i/L5VXlVX7g0
7AxnTzTEQ7rPFYR0rsk9Yqgq001lEoDbEHzyLq0zhuCTQ9KCD2saAT41tiRh
u0uLvzUVnwjC6a9JHeYNpIMkUqvElQ344OYDwYyLLzoaQJj+hezB4LdxfwVO
/LZv4S/kmcty3aI3uBVa5fVg+esLvUrz+W0S6OK/VS1KMHwM/RsQ/+5bVLY+
z5N9MaTKJoYRccUdIO3UkzQwOQRysSvG5E8lrcW5JAnboi13J1Xh/FM4PQ06
CbSJ4+gPSZzeYLLdTdQ27ooHbHtN11aga/sZddD5JxE9g8X0EAvgVJZZSifs
9pnvWWoa91tktweLtyKIMibs1quz2zTDBxvKck1f65S5L6EMMwU66BEVSz52
yE0rsHtZ8gLgxcfPrID9mCQS04PRT6I50GhYHp9F9zHv+8Ep33bUv8uwIDOc
AnRfQ2qdRiLttrCG4el469r040XZXZ+GdE1xpoLME5hwwn0KRAkLiBILCZSQ
hOaxDsZjO8IZH7VVmT7dDGoymcMUBOsW2GVjCE/shSP5EJ6yCXgapRP+XLu0
yv4s80uOUaso0Oca3aLdpTTAkrC04PcO82HSmSXQ8yS2MwKA52GLCM8bphCe
93hG8b71has5O7Tm5K+4uD5v0WNGoNXwkl1Ak5xnpgyNKo0ZLyUUMKdSrCXX
dmnn1NZigD9X5lQFaPBnS83sXid/R2DDp8/NSKfIO7ktxa3QhgfIle1BwHLU
T7Q1u2bfdmp1ZG1HkOoY4AAhNZyqhVT/YJ2yIvI4B+NDDD5gLGYaQbYnvX4Q
nKFhWBJxaj15Ddt8U1VlDCP6wWLoQ00MrQ8F7CZ8qPUbaqLLTzVG3xL+V7qs
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
p6p4pIikmKRVSeuSUibVTfo6+bf1eQG6FLNE
"]]], "orcInstance" ->
11108436832, "orcModuleId" -> 11108252560, "targetMachineId" ->
5205405184], 12149740096, 12149739888, 12149740008, 12149735424,
"{\"PackedArray\"[\"Integer64\", TypeFramework`TypeLiteral[1, \
\"Integer64\"]]} -> \"Expression\""],
Editable->False,
SelectWithContents->True,
Selectable->False]], "Output",
CellChangeTimes->{
3.840040458559767*^9, 3.84004054502054*^9, {3.8400406242060633`*^9,
3.840040669154252*^9}, 3.84004106117507*^9},
CellLabel->
"Out[130]=",ExpressionUUID->"8cfb354d-2ddd-473c-acf1-c52763bf3951"]
}, Open ]],
Cell["Sanity check:", "Text",
CellChangeTimes->{{3.840041081858561*^9,
3.840041084214922*^9}},ExpressionUUID->"aea5a9c1-6ff3-4a01-afbe-\
b06eae2c56d8"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"ConjugatePartition3", "[",
RowBox[{"{",
RowBox[{"4", ",", "3", ",", "2", ",", "1", ",", "1"}], "}"}],
"]"}]], "Input",
CellChangeTimes->{{3.840039721328874*^9, 3.8400397249866*^9}},
CellLabel->
"In[117]:=",ExpressionUUID->"f738f65c-736e-45b7-b913-efe687aadc07"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"5", ",", "3", ",", "2", ",", "1"}], "}"}]], "Output",
CellChangeTimes->{
3.840039725299982*^9, 3.840040159093039*^9, 3.840040460508477*^9, {
3.840040625315689*^9, 3.8400406519662952`*^9}},
CellLabel->
"Out[117]=",ExpressionUUID->"3db43043-a878-4c5f-85e9-b5b9c1731399"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell["Timing comparisons", "Subsection",ExpressionUUID->"6c5b3058-14ba-46ee-a43c-9ba5065a0bd8"],
Cell["Performance comparisons:", "Text",
CellChangeTimes->{{3.8400410892571487`*^9,
3.8400410932133837`*^9}},ExpressionUUID->"02002d11-5188-49e6-8ca0-\
b66b00ce7a67"],
Cell[BoxData[
RowBox[{
RowBox[{"ip", "=",
RowBox[{"IntegerPartitions", "[", "40", "]"}]}], ";"}]], "Input",
CellChangeTimes->{{3.840038549932095*^9, 3.840038550743619*^9}, {
3.8400406804970083`*^9, 3.840040680558008*^9}, {3.8400408201461067`*^9,
3.840040820221438*^9}, {3.8400408689003143`*^9, 3.840040868975378*^9}},
CellLabel->
"In[125]:=",ExpressionUUID->"161b1b5d-11eb-46be-8caa-a242fa519ed4"],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"AbsoluteTiming", "[",
RowBox[{
RowBox[{"one", "=",
RowBox[{"ConjugatePartition", "/@", "ip"}]}], ";"}], "]"}]], "Input",
CellChangeTimes->{{3.840037854187818*^9, 3.840037920476281*^9}, {
3.840038547679982*^9, 3.840038548563263*^9}},
CellLabel->
"In[126]:=",ExpressionUUID->"7800fa0c-f946-413f-a9ae-36a66a1d8af2"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"9.395728`", ",", "Null"}], "}"}]], "Output",
CellChangeTimes->{
3.840037925103278*^9, 3.8400379632924757`*^9, 3.840038556221377*^9,
3.840039002142251*^9, 3.840039711978332*^9, 3.8400408166702547`*^9, {
3.8400408662704077`*^9, 3.840040879685111*^9}},
CellLabel->
"Out[126]=",ExpressionUUID->"efedaed2-4c83-4229-972b-0c87b8e2b54e"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"AbsoluteTiming", "[",
RowBox[{
RowBox[{"two", "=",
RowBox[{"ConjugatePartition2", "/@", "ip"}]}], ";"}], "]"}]], "Input",
CellChangeTimes->{{3.840037880250181*^9, 3.840037928689139*^9}, {
3.840037961256122*^9, 3.840037962595262*^9}, {3.840038555997738*^9,
3.840038556065283*^9}},
CellLabel->
"In[127]:=",ExpressionUUID->"4bbaf2e7-c4b3-49b6-a696-27483db799d9"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"0.991676`", ",", "Null"}], "}"}]], "Output",
CellChangeTimes->{
3.840037929504217*^9, 3.8400379644702806`*^9, 3.840038557254548*^9,
3.84003900259604*^9, {3.840039712437457*^9, 3.840039735337496*^9},
3.840040909151018*^9},
CellLabel->
"Out[127]=",ExpressionUUID->"529c8392-18b1-4a88-a74c-fb8840f56a8f"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"AbsoluteTiming", "[",
RowBox[{
RowBox[{"three", "=",
RowBox[{"ConjugatePartition3", "/@", "ip"}]}], ";"}], "]"}]], "Input",
CellChangeTimes->{{3.840039006648644*^9, 3.84003900678201*^9}, {
3.840040385891644*^9, 3.8400403864253883`*^9}},
CellLabel->
"In[131]:=",ExpressionUUID->"ff3a7b29-cb70-49f3-9647-c98162aa8ba4"],
Cell[BoxData[
RowBox[{"{",
RowBox[{"0.551792`", ",", "Null"}], "}"}]], "Output",
CellChangeTimes->{
3.840039008788924*^9, {3.8400397283110857`*^9, 3.8400397331504517`*^9},
3.840040387451991*^9, 3.840040463694347*^9, 3.840040549992437*^9, {
3.840040628265251*^9, 3.840040674070821*^9}, 3.8400409106712503`*^9,
3.840041063134633*^9},
CellLabel->
"Out[131]=",ExpressionUUID->"a9e97b63-70ce-42e7-955e-fc27a199fc51"]
}, Open ]],
Cell[CellGroupData[{
Cell[BoxData[
RowBox[{"one", "===", "two", "===", "three"}]], "Input",
CellChangeTimes->{{3.840037891950424*^9, 3.840037894899757*^9}, {
3.8400403889000883`*^9, 3.840040390197442*^9}},
CellLabel->
"In[129]:=",ExpressionUUID->"0cc3aeb4-ae78-4aca-bea4-81940f24a0fb"],
Cell[BoxData["True"], "Output",
CellChangeTimes->{{3.840037895294519*^9, 3.8400379305702343`*^9},
3.840037965408169*^9, 3.840039002635233*^9, 3.840040390445828*^9,
3.840040465667097*^9, 3.84004091483696*^9},
CellLabel->
"Out[129]=",ExpressionUUID->"ea92f673-cc5a-48a8-9236-90da8d72fb55"]
}, Open ]]
}, Open ]]
}, Open ]]
}, Open ]]
},
WindowSize->{884, 864},
WindowMargins->{{-1114, Automatic}, {Automatic, 138}},
FrontEndVersion->"12.3 for Mac OS X x86 (64-bit) (July 9, 2021)",
StyleDefinitions->"Default.nb",
ExpressionUUID->"42d7ee9d-9a50-41b3-aed0-b6246f1c10e9"
]
(* End of Notebook Content *)
(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[579, 22, 91, 0, 98, "Title",ExpressionUUID->"9c460263-9224-463a-ac5a-14b699be14e7"],
Cell[CellGroupData[{
Cell[695, 26, 83, 0, 54, "Subsection",ExpressionUUID->"0f0bf773-9d46-4ad3-a329-b4cc1cec26ce"],
Cell[781, 28, 114, 3, 58, "Text",ExpressionUUID->"a79aef86-d069-477d-8524-3c209f841e2c"],
Cell[898, 33, 352, 9, 35, "Text",ExpressionUUID->"970b5c81-0faf-4a15-b4db-70ceaa61505f"],
Cell[1253, 44, 366, 10, 35, "Text",ExpressionUUID->"1814dc94-f262-4781-9cf0-7d1a3c210b7b"],
Cell[1622, 56, 154, 2, 35, "Text",ExpressionUUID->"cded6721-a023-4e30-ad64-023f56136e38"]
}, Open ]],
Cell[CellGroupData[{
Cell[1813, 63, 80, 0, 67, "Section",ExpressionUUID->"56a6a7a1-df8a-4627-b104-9a9db3941937"],
Cell[CellGroupData[{
Cell[1918, 67, 339, 9, 30, "Input",ExpressionUUID->"9223fae5-a85d-4284-b2e5-5a2fc7c174cb"],
Cell[2260, 78, 194, 4, 34, "Output",ExpressionUUID->"545709ce-e75b-4c39-8044-7dae3c363dcd"]
}, Open ]],
Cell[CellGroupData[{
Cell[2491, 87, 231, 5, 30, "Input",ExpressionUUID->"0618a882-7b55-400a-b7e9-3625365eef9a"],
Cell[2725, 94, 109, 1, 34, "Output",ExpressionUUID->"d06f2bbc-36dd-40cd-b6d1-4a3b5b517642"]
}, Open ]],
Cell[CellGroupData[{
Cell[2871, 100, 295, 8, 30, "Input",ExpressionUUID->"857063c4-1374-4d27-85f8-a478ddb239ff"],
Cell[3169, 110, 1459, 31, 117, "Output",ExpressionUUID->"53328dcb-52d7-4e7d-a690-2a1c491035b2"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[4677, 147, 84, 0, 67, "Section",ExpressionUUID->"8ee92d95-2aff-4a12-80fc-973be250fa56"],
Cell[CellGroupData[{
Cell[4786, 151, 95, 0, 54, "Subsection",ExpressionUUID->"4c59d61e-d78a-47bc-a37d-dc9230db2776"],
Cell[4884, 153, 276, 6, 30, "Input",ExpressionUUID->"798afdf4-00f4-4712-9494-19180da834bb"],
Cell[CellGroupData[{
Cell[5185, 163, 230, 5, 30, "Input",ExpressionUUID->"bffc068f-a951-4c88-9bf6-107eca9f06cc"],
Cell[5418, 170, 194, 4, 34, "Output",ExpressionUUID->"8aae6f27-6c11-4fba-806c-4dbd6f312604"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[5661, 180, 85, 0, 54, "Subsection",ExpressionUUID->"ef7f01e9-f1c7-47b3-9010-23a105c92293"],
Cell[5749, 182, 107, 0, 35, "Text",ExpressionUUID->"15e3077e-6a66-490d-be0d-2af9584ffa56"],
Cell[5859, 184, 1049, 30, 52, "Input",ExpressionUUID->"c186880c-5711-4fc3-82f2-71795c0b0e26"],
Cell[6911, 216, 198, 4, 58, "Text",ExpressionUUID->"14798705-6723-431d-a329-89b79ab30d51"]
}, Open ]],
Cell[CellGroupData[{
Cell[7146, 225, 90, 0, 54, "Subsection",ExpressionUUID->"13dc6264-1fa3-4522-834b-a9317f19d4b5"],
Cell[7239, 227, 147, 2, 35, "Text",ExpressionUUID->"1cf60d97-50da-483d-b529-5fc6e11035e4"],
Cell[7389, 231, 1005, 22, 157, "Input",ExpressionUUID->"2fc70be7-dd23-4139-b0b1-6eff60adc171"]
}, Open ]],
Cell[CellGroupData[{
Cell[8431, 258, 85, 0, 54, "Subsection",ExpressionUUID->"f58528a1-cade-44f3-82db-c4098e601e58"],
Cell[8519, 260, 269, 6, 35, "Text",ExpressionUUID->"fadcdff9-be65-4efd-9064-bc48569b7e90"],
Cell[CellGroupData[{
Cell[8813, 270, 2788, 63, 304, "Input",ExpressionUUID->"10ec03c1-13b2-4b38-9ef9-9c74ae314dfc"],
Cell[11604, 335, 32833, 565, 64, "Output",ExpressionUUID->"8cfb354d-2ddd-473c-acf1-c52763bf3951"]
}, Open ]],
Cell[44452, 903, 155, 3, 35, "Text",ExpressionUUID->"aea5a9c1-6ff3-4a01-afbe-b06eae2c56d8"],
Cell[CellGroupData[{
Cell[44632, 910, 299, 7, 30, "Input",ExpressionUUID->"f738f65c-736e-45b7-b913-efe687aadc07"],
Cell[44934, 919, 317, 7, 34, "Output",ExpressionUUID->"3db43043-a878-4c5f-85e9-b5b9c1731399"]
}, Open ]]
}, Open ]],
Cell[CellGroupData[{
Cell[45300, 932, 95, 0, 54, "Subsection",ExpressionUUID->"6c5b3058-14ba-46ee-a43c-9ba5065a0bd8"],
Cell[45398, 934, 170, 3, 35, "Text",ExpressionUUID->"02002d11-5188-49e6-8ca0-b66b00ce7a67"],
Cell[45571, 939, 413, 8, 30, "Input",ExpressionUUID->"161b1b5d-11eb-46be-8caa-a242fa519ed4"],
Cell[CellGroupData[{
Cell[46009, 951, 353, 8, 30, "Input",ExpressionUUID->"7800fa0c-f946-413f-a9ae-36a66a1d8af2"],
Cell[46365, 961, 382, 8, 34, "Output",ExpressionUUID->"efedaed2-4c83-4229-972b-0c87b8e2b54e"]
}, Open ]],
Cell[CellGroupData[{
Cell[46784, 974, 403, 9, 30, "Input",ExpressionUUID->"4bbaf2e7-c4b3-49b6-a696-27483db799d9"],
Cell[47190, 985, 355, 8, 34, "Output",ExpressionUUID->"529c8392-18b1-4a88-a74c-fb8840f56a8f"]
}, Open ]],
Cell[CellGroupData[{
Cell[47582, 998, 357, 8, 30, "Input",ExpressionUUID->"ff3a7b29-cb70-49f3-9647-c98162aa8ba4"],
Cell[47942, 1008, 432, 9, 34, "Output",ExpressionUUID->"a9e97b63-70ce-42e7-955e-fc27a199fc51"]
}, Open ]],
Cell[CellGroupData[{
Cell[48411, 1022, 271, 5, 30, "Input",ExpressionUUID->"0cc3aeb4-ae78-4aca-bea4-81940f24a0fb"],
Cell[48685, 1029, 299, 5, 34, "Output",ExpressionUUID->"ea92f673-cc5a-48a8-9236-90da8d72fb55"]
}, Open ]]
}, Open ]]
}, Open ]]
}, Open ]]
}
]
*)