packages feed

coincident-root-loci-0.3: mathematica/equivariant_CSM_via_motivic.nb

(* 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[     79871,       2186]
NotebookOptionsPosition[     78389,       2136]
NotebookOutlinePosition[     78746,       2152]
CellTagsIndexPosition[     78703,       2149]
WindowFrame->Normal*)

(* Beginning of Notebook Content *)
Notebook[{

Cell[CellGroupData[{
Cell[BoxData[
 RowBox[{"\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{"===", 
    RowBox[{"=", " ", 
     RowBox[{
      RowBox[{
       RowBox[{
        RowBox[{"COMPUTE", " ", "THR", " ", "EQUIVARIANT", " ", "CHERN"}], 
        "-", "SCHWARTZ", "-", 
        RowBox[{
        "MACPHERSON", " ", "\[IndentingNewLine]", "CLASS", " ", "OF", " ", 
         "COINCIDENT", " ", "ROOT", " ", "LOCI", " ", "VIA", " ", "THE", " ", 
         "MOTIVIC", " ", "ALGORITHM"}]}], " ", "==="}], "="}]}]}], " ", 
   "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"<<", "Combinatorica`"}], "\n", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{"convention", ":", " ", "u"}], " ", "=", " ", 
     RowBox[{
      RowBox[{"-", "c_"}], "1", 
      RowBox[{"(", "L", ")"}], " ", "where", " ", "L", " ", "is", " ", "the", 
      " ", "tautological", " ", "line", " ", "bundle", " ", "on", " ", 
      RowBox[{"P", "^", "n"}]}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"uu", "[", "i_", "]"}], ":=", 
    RowBox[{"Subscript", "[", 
     RowBox[{"u", ",", "i"}], "]"}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"vv", "[", "i_", "]"}], ":=", 
    RowBox[{"Subscript", "[", 
     RowBox[{"u", ",", "i"}], "]"}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"ww", "[", "i_", "]"}], ":=", 
    RowBox[{"Subscript", "[", 
     RowBox[{"u", ",", "i"}], "]"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", 
    RowBox[{
    "only", " ", "works", " ", "for", " ", "lists", " ", "of", " ", "equal", 
     " ", 
     RowBox[{"length", "!!"}]}], "*)"}], 
   RowBox[{
    RowBox[{"Zip", "[", 
     RowBox[{"as_", ",", "bs_"}], "]"}], ":=", 
    RowBox[{"MapThread", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"{", 
        RowBox[{"#1", ",", "#2"}], "}"}], "&"}], ",", 
      RowBox[{"{", 
       RowBox[{"as", ",", "bs"}], "}"}]}], "]"}]}], "\n", 
   RowBox[{
    RowBox[{"Zip3", "[", 
     RowBox[{"as_", ",", "bs_", ",", "cs_"}], "]"}], ":=", 
    RowBox[{"MapThread", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"{", 
        RowBox[{"#1", ",", "#2", ",", "#3"}], "}"}], "&"}], ",", 
      RowBox[{"{", 
       RowBox[{"as", ",", "bs", ",", "cs"}], "}"}]}], "]"}]}], "\n", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"Fst", "[", "pair_", "]"}], ":=", 
    RowBox[{"pair", "[", 
     RowBox[{"[", "1", "]"}], "]"}]}], "\n", 
   RowBox[{
    RowBox[{"Snd", "[", "pair_", "]"}], ":=", 
    RowBox[{"pair", "[", 
     RowBox[{"[", "2", "]"}], "]"}]}], "\n", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"extendListWithZeros", "[", 
     RowBox[{"L_", ",", "n_"}], "]"}], ":=", 
    RowBox[{"Join", "[", 
     RowBox[{"L", ",", 
      RowBox[{"Table", "[", 
       RowBox[{"0", ",", 
        RowBox[{"{", 
         RowBox[{"i", ",", "1", ",", 
          RowBox[{"n", "-", 
           RowBox[{"Length", "[", "L", "]"}]}]}], "}"}]}], "]"}]}], "]"}]}], 
   "\n", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"SumList", "[", "L_", "]"}], ":=", 
    RowBox[{"Sum", "[", 
     RowBox[{"x", ",", 
      RowBox[{"{", 
       RowBox[{"x", ",", "L"}], "}"}]}], "]"}]}]}]}]], "Input",
 CellChangeTimes->{{3.799905685678034*^9, 3.799905717212275*^9}, {
  3.799913522600854*^9, 3.799913527152174*^9}, {3.7999135913325577`*^9, 
  3.799913592101347*^9}, {3.8011372389408627`*^9, 3.8011373095459747`*^9}}],

Cell[BoxData[
 RowBox[{
  StyleBox[
   RowBox[{"General", "::", "compat"}], "MessageName"], 
  RowBox[{
  ":", " "}], "\<\"Combinatorica Graph and Permutations functionality has \
been superseded by preloaded functionality. The package now being loaded may \
conflict with this. Please see the Compatibility Guide for details.\"\>"}]], \
"Message", "MSG",
 CellChangeTimes->{3.801137314352317*^9, 3.801137453501457*^9, 
  3.8011377668896217`*^9, 3.8011379201269207`*^9}]
}, Open  ]],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 0.5}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 3}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{"EQUIVARIANT", " ", "COHOMOLOGY", " ", "RING", " ", "OF", " ", 
     RowBox[{"P", "^", "n"}]}], " ", "==="}], " ", "*)"}], "\n", 
  "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{"Weights", " ", "of", " ", 
    RowBox[{"Sym", "^", "n"}], " ", 
    RowBox[{"C", "^", "2"}]}], " ", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"wt", "[", 
     RowBox[{"n_", ",", "i_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{
      RowBox[{"(", 
       RowBox[{"n", "-", "i"}], ")"}], "*", "\[Alpha]"}], "+", 
     RowBox[{"i", "*", "\[Beta]"}]}]}], "\[IndentingNewLine]", "\n", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{"the", " ", "relation", " ", "in", " ", 
      RowBox[{"H", "^"}], "*", 
      RowBox[{
       RowBox[{"(", 
        RowBox[{"P", "^", "n"}], ")"}], ".", " ", 
       RowBox[{"Convention", ":", " ", "\[IndentingNewLine]", "u"}]}]}], " ", 
     "=", " ", 
     RowBox[{
      RowBox[{"-", "c1"}], 
      RowBox[{"(", "L", ")"}], " ", "where", " ", "L", " ", "is", " ", "the", 
      " ", "tautological", " ", "line", " ", "bundle"}]}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"rel", "[", "n_", "]"}], ":=", 
    RowBox[{"Product", "[", 
     RowBox[{
      RowBox[{"u", "+", 
       RowBox[{"wt", "[", 
        RowBox[{"n", ",", "i"}], "]"}]}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "0", ",", "n"}], "}"}]}], "]"}]}], 
   "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "upow$nplus1", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"upow$nplus1", "[", "n_", "]"}], " ", ":=", " ", 
    RowBox[{
     RowBox[{"upow$nplus1", "[", "n", "]"}], "=", " ", 
     RowBox[{"Expand", "[", 
      RowBox[{
       RowBox[{"u", "^", 
        RowBox[{"(", 
         RowBox[{"n", "+", "1"}], ")"}]}], "-", 
       RowBox[{"rel", "[", "n", "]"}]}], "]"}]}]}], "\n", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{"(", "unefficiently", ")"}], " ", "normalize", " ", 
     RowBox[{
      RowBox[{"a", " ", "/", "polynomial"}], "/", " ", "in"}], " ", "u"}], 
    " ", "*)"}], " ", "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "normalizeSlow", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"normalizeSlow", "[", 
     RowBox[{"n_", ",", " ", "X0_"}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{"X", "=", 
         RowBox[{"Expand", "[", "X0", "]"}]}], ",", "m"}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"m", "=", 
        RowBox[{"Exponent", "[", 
         RowBox[{"X", ",", "u"}], "]"}]}], ";", "\[IndentingNewLine]", 
       RowBox[{"If", "[", 
        RowBox[{
         RowBox[{"m", "\[LessEqual]", "n"}], ",", "X", ",", 
         RowBox[{"normalizeSlow", "[", 
          RowBox[{"n", ",", 
           RowBox[{"X", "/.", 
            RowBox[{"{", 
             RowBox[{
              RowBox[{"u", "^", "m"}], "\[Rule]", 
              RowBox[{
               RowBox[{"u", "^", 
                RowBox[{"(", 
                 RowBox[{"m", "-", "n", "-", "1"}], ")"}]}], "*", 
               RowBox[{"upow$nplus1", "[", "n", "]"}]}]}], "}"}]}]}], "]"}]}],
         "]"}]}]}], "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
    "table", " ", "of", " ", "normalized", " ", "powers", " ", "of", " ", 
     "u"}], " ", "*)"}], "\n", 
   RowBox[{"Clear", "[", "UPowAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"UPowAB", "[", 
     RowBox[{"n_", ",", "k_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"UPowAB", "[", 
      RowBox[{"n", ",", "k"}], "]"}], " ", "=", " ", 
     RowBox[{"Expand", "[", 
      RowBox[{"normalizeSlow", "[", 
       RowBox[{"n", ",", 
        RowBox[{"u", "^", "k"}]}], "]"}], "]"}]}]}], "\[IndentingNewLine]", 
   "\n", 
   RowBox[{"Clear", "[", "normalizeVarAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"normalizeVarAB", "[", 
     RowBox[{"n_", ",", "uuu_", ",", "X_"}], "]"}], ":=", 
    RowBox[{"Module", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"m", "=", 
        RowBox[{"Exponent", "[", 
         RowBox[{"X", ",", "uuu"}], "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Expand", "[", 
       RowBox[{"Sum", "[", 
        RowBox[{
         RowBox[{
          RowBox[{"Coefficient", "[", 
           RowBox[{"X", ",", "uuu", ",", "k"}], "]"}], "*", 
          RowBox[{"(", 
           RowBox[{
            RowBox[{"UPowAB", "[", 
             RowBox[{"n", ",", "k"}], "]"}], "/.", 
            RowBox[{"{", 
             RowBox[{"u", "\[Rule]", "uuu"}], "}"}]}], ")"}]}], ",", 
         RowBox[{"{", 
          RowBox[{"k", ",", "0", ",", "m"}], "}"}]}], "]"}], "]"}]}], 
     "\[IndentingNewLine]", "]"}]}]}]}]], "Input",
 CellChangeTimes->{{3.799905722746293*^9, 3.799905732364284*^9}, {
  3.799913537797875*^9, 3.799913551058023*^9}, {3.8011373223183937`*^9, 
  3.801137341966631*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 2}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 4}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{
    "pushforward", " ", "along", " ", "the", " ", "multiplication", " ", 
     RowBox[{"(", 
      RowBox[{"single", " ", "monom"}], ")"}]}], " ", "==="}], " ", "*)"}], 
  "\n", "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{"Psi_", "*", " ", 
     RowBox[{"(", 
      RowBox[{
       RowBox[{"u", "^", "k"}], " ", "*", " ", 
       RowBox[{"v", "^", "l"}]}], ")"}]}], " ", "=", " ", 
    RowBox[{"?", " ", 
     RowBox[{"cohomology", " ", "indexing"}]}]}], " ", "*)"}], 
  "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"Clear", "[", "psiStarAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"psiStarAB", "[", 
     RowBox[{"n_", ",", "m_", ",", "0", ",", "0"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"psiStarAB", "[", 
      RowBox[{"n", ",", "m", ",", "0", ",", "0"}], "]"}], "=", 
     RowBox[{"Binomial", "[", 
      RowBox[{
       RowBox[{"n", "+", "m"}], ",", "n"}], "]"}]}]}], "\[IndentingNewLine]", 
   
   RowBox[{
    RowBox[{"psiStarAB", "[", 
     RowBox[{"n_", ",", "m_", ",", "k_", ",", "l_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"psiStarAB", "[", 
      RowBox[{"n", ",", "m", ",", "k", ",", "l"}], "]"}], " ", "=", " ", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
        "A", ",", "B", ",", "AB", ",", "F", ",", "R", ",", "IJ", ",", "sel", 
         ",", "fun", ",", "cft"}], "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"A", "=", 
         RowBox[{"Product", "[", 
          RowBox[{
           RowBox[{"u", "+", 
            RowBox[{"wt", "[", 
             RowBox[{"n", ",", "i"}], "]"}]}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "0", ",", 
             RowBox[{"k", "-", "1"}]}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"B", "=", 
         RowBox[{"Product", "[", 
          RowBox[{
           RowBox[{"v", "+", 
            RowBox[{"wt", "[", 
             RowBox[{"m", ",", "j"}], "]"}]}], ",", 
           RowBox[{"{", 
            RowBox[{"j", ",", "0", ",", 
             RowBox[{"l", "-", "1"}]}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"AB", " ", "=", 
         RowBox[{"Expand", "[", 
          RowBox[{"A", "*", "B"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"sel", "[", 
          RowBox[{"{", 
           RowBox[{"i_", ",", "j_"}], "}"}], "]"}], ":=", 
         RowBox[{
          RowBox[{"(", 
           RowBox[{"i", "<", "k"}], ")"}], " ", "||", " ", 
          RowBox[{"(", 
           RowBox[{"j", "<", "l"}], ")"}]}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"cft", "[", 
          RowBox[{"{", 
           RowBox[{"i_", ",", "j_"}], "}"}], "]"}], ":=", 
         RowBox[{"Coefficient", "[", 
          RowBox[{
           RowBox[{"Coefficient", "[", 
            RowBox[{"AB", ",", "u", ",", "i"}], "]"}], ",", "v", ",", "j"}], 
          "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"fun", "[", 
          RowBox[{"{", 
           RowBox[{"i_", ",", "j_"}], "}"}], "]"}], ":=", 
         RowBox[{"psiStarAB", "[", 
          RowBox[{"n", ",", "m", ",", "i", ",", "j"}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"IJ", " ", "=", " ", 
         RowBox[{"Flatten", "[", 
          RowBox[{
           RowBox[{"Table", "[", 
            RowBox[{
             RowBox[{"{", 
              RowBox[{"i", ",", "j"}], "}"}], ",", 
             RowBox[{"{", 
              RowBox[{"i", ",", "0", ",", "k"}], "}"}], ",", 
             RowBox[{"{", 
              RowBox[{"j", ",", "0", ",", "l"}], "}"}]}], "]"}], ",", "1"}], 
          "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"IJ", " ", "=", 
         RowBox[{"Select", "[", " ", 
          RowBox[{"IJ", ",", "sel"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"(*", " ", 
         RowBox[{
          RowBox[{"Print", "[", "IJ", "]"}], ";", "\[IndentingNewLine]", 
          RowBox[{"Print", "[", "AB", "]"}], ";"}], " ", "*)"}], 
        "\[IndentingNewLine]", 
        RowBox[{"F", " ", "=", " ", 
         RowBox[{
          RowBox[{"Binomial", "[", 
           RowBox[{
            RowBox[{"n", "+", "m", "-", "k", "-", "l"}], ",", 
            RowBox[{"n", "-", "k"}]}], "]"}], "*", 
          RowBox[{"Product", "[", 
           RowBox[{
            RowBox[{"w", "+", 
             RowBox[{"wt", "[", 
              RowBox[{
               RowBox[{"n", "+", "m"}], ",", "i"}], "]"}]}], ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "0", ",", 
              RowBox[{"k", "+", "l", "-", "1"}]}], "}"}]}], "]"}]}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"R", " ", "=", 
         RowBox[{"Sum", "[", " ", 
          RowBox[{
           RowBox[{
            RowBox[{"cft", "[", "ij", "]"}], "*", 
            RowBox[{"fun", "[", "ij", "]"}]}], ",", 
           RowBox[{"{", 
            RowBox[{"ij", ",", "IJ"}], "}"}]}], "]"}]}], ";", "  ", 
        "\[IndentingNewLine]", 
        RowBox[{"Expand", "[", 
         RowBox[{"F", "-", "R"}], "]"}]}]}], "\[IndentingNewLine]", "]"}]}]}],
    "\n", "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "psiStarChern", "]"}], "\n", 
   RowBox[{
    RowBox[{"psiStarChern", "[", 
     RowBox[{"n_", ",", "m_", ",", "k_", ",", "l_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"psiStarChern", "[", 
      RowBox[{"n", ",", "m", ",", "k", ",", "l"}], "]"}], " ", "=", " ", 
     "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"SymmetricReduction", "[", 
       RowBox[{
        RowBox[{"psiStarAB", "[", 
         RowBox[{"n", ",", "m", ",", "k", ",", "l"}], "]"}], ",", 
        RowBox[{"{", 
         RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], ",", 
        RowBox[{"{", 
         RowBox[{"c", ",", "d"}], "}"}]}], "]"}], "[", 
      RowBox[{"[", "1", "]"}], "]"}]}]}], "\[IndentingNewLine]"}]}]], "Input",\

 CellChangeTimes->{{3.799905744141039*^9, 3.799905769496408*^9}, {
  3.7999135651971607`*^9, 3.79991357100387*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 2}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 4}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{"class", " ", "of", " ", "the", " ", "diagonal"}], " ", "==="}], 
   " ", "*)"}], "\n", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"notk", "[", 
     RowBox[{"n_", ",", "k_"}], "]"}], ":=", 
    RowBox[{"Select", "[", 
     RowBox[{
      RowBox[{"Table", "[", 
       RowBox[{"i", ",", 
        RowBox[{"{", 
         RowBox[{"i", ",", "0", ",", "n"}], "}"}]}], "]"}], ",", 
      RowBox[{
       RowBox[{"#", "\[NotEqual]", "k"}], "&"}]}], "]"}]}], 
   "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"class", " ", "of", " ", "the", " ", "diagonal", " ", "in", " ", 
     RowBox[{"P", "^", "n"}], " ", "x", " ", 
     RowBox[{"P", "^", "n"}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "deltaClassAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaClassAB", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"deltaClassAB", "[", "n", "]"}], " ", "=", "\[IndentingNewLine]", 
     RowBox[{"Expand", "[", 
      RowBox[{"Factor", "[", 
       RowBox[{"Sum", "[", " ", 
        RowBox[{
         RowBox[{"Product", "[", 
          RowBox[{
           RowBox[{
            RowBox[{"(", 
             RowBox[{"v", "+", 
              RowBox[{"wt", "[", 
               RowBox[{"n", ",", "i"}], "]"}]}], ")"}], 
            RowBox[{
             RowBox[{"(", 
              RowBox[{"w", "+", 
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "i"}], "]"}]}], ")"}], "/", 
             RowBox[{"(", 
              RowBox[{
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "i"}], "]"}], "-", 
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "k"}], "]"}]}], ")"}]}]}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", 
             RowBox[{"notk", "[", 
              RowBox[{"n", ",", "k"}], "]"}]}], "}"}]}], "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"k", ",", "0", ",", "n"}], "}"}]}], "]"}], "]"}], "]"}]}]}],
    "\[IndentingNewLine]", "\n", 
   RowBox[{"Clear", "[", "deltaClassCh", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaClassCh", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"deltaClassCh", "[", "n", "]"}], " ", "=", "\[IndentingNewLine]", 
     RowBox[{"Expand", "[", 
      RowBox[{
       RowBox[{"SymmetricReduction", "[", 
        RowBox[{
         RowBox[{"deltaClassAB", "[", "n", "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"c", ",", "d"}], "}"}]}], "]"}], "[", 
       RowBox[{"[", "1", "]"}], "]"}], "]"}]}]}], "\[IndentingNewLine]", "\n", 
   RowBox[{"(*", " ", 
    RowBox[{"small", " ", "diagonal", " ", "in", " ", 
     RowBox[{"P", "^", "n"}], " ", "x", " ", 
     RowBox[{"P", "^", "n"}], " ", "x", " ", 
     RowBox[{"P", "^", "n"}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaClassTri", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"deltaClassTri", "[", "n", "]"}], " ", "=", 
     "\[IndentingNewLine]", 
     RowBox[{"Expand", "[", 
      RowBox[{"Factor", "[", 
       RowBox[{"Sum", "[", " ", 
        RowBox[{
         RowBox[{"Product", "[", 
          RowBox[{
           RowBox[{
            RowBox[{"(", 
             RowBox[{
              RowBox[{"uu", "[", "1", "]"}], "+", 
              RowBox[{"wt", "[", 
               RowBox[{"n", ",", "i"}], "]"}]}], ")"}], 
            RowBox[{"(", 
             RowBox[{
              RowBox[{"uu", "[", "2", "]"}], "+", 
              RowBox[{"wt", "[", 
               RowBox[{"n", ",", "i"}], "]"}]}], ")"}], 
            RowBox[{
             RowBox[{"(", 
              RowBox[{
               RowBox[{"uu", "[", "3", "]"}], "+", 
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "i"}], "]"}]}], ")"}], "/", 
             RowBox[{"(", 
              RowBox[{
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "i"}], "]"}], "-", 
               RowBox[{"wt", "[", 
                RowBox[{"n", ",", "k"}], "]"}]}], ")"}]}]}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", 
             RowBox[{"notk", "[", 
              RowBox[{"n", ",", "k"}], "]"}]}], "}"}]}], "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"k", ",", "0", ",", "n"}], "}"}]}], "]"}], "]"}], 
      "]"}]}]}]}]}]], "Input",
 CellChangeTimes->{{3.799905776542532*^9, 3.799905781984827*^9}, {
   3.7999136010678368`*^9, 3.799913629960795*^9}, {3.7999137031951857`*^9, 
   3.799913712604754*^9}, 3.80113777875804*^9}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 0.5}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 3}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{
    "pushforward", " ", "along", " ", "the", " ", "diagonal", " ", "map", " ", 
     RowBox[{"(", 
      RowBox[{"single", " ", "monom"}], ")"}]}], " ", "==="}], " ", "*)"}], 
  "\n", "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{
    RowBox[{"pushforward", " ", "of", " ", 
     RowBox[{"u", "^", "k"}], " ", "along", " ", 
     RowBox[{"Delta", " ", ":", " ", 
      RowBox[{"P", "^", "n"}]}]}], " ", "\[Rule]", " ", 
    RowBox[{
     RowBox[{"P", "^", "n"}], " ", "x", " ", 
     RowBox[{"P", "^", "n"}]}]}], " ", "*)"}], "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"Clear", "[", "deltaStarAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaStarAB", "[", 
     RowBox[{"n_", ",", "0"}], "]"}], "  ", ":=", " ", 
    RowBox[{
     RowBox[{"deltaStarAB", "[", 
      RowBox[{"n", ",", "0"}], "]"}], " ", "=", " ", 
     RowBox[{"deltaClassAB", "[", "n", "]"}]}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaStarAB", "[", 
     RowBox[{"n_", ",", "k_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"deltaStarAB", "[", 
      RowBox[{"n", ",", "k"}], "]"}], "=", " ", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"prod", ",", "Y", ",", "preY", ",", "Delta", ",", "rest"}], 
        "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"Y", " ", "=", " ", 
         RowBox[{"Expand", "[", 
          RowBox[{"Product", "[", 
           RowBox[{
            RowBox[{"v", "+", 
             RowBox[{"wt", "[", 
              RowBox[{"n", ",", "i"}], "]"}]}], ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "0", ",", 
              RowBox[{"k", "-", "1"}]}], "}"}]}], "]"}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"preY", " ", "=", " ", 
         RowBox[{"Y", "/.", 
          RowBox[{"{", 
           RowBox[{"v", "\[Rule]", "u"}], "}"}]}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"Delta", " ", "=", " ", 
         RowBox[{"deltaClassAB", "[", "n", "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"prod", "=", 
         RowBox[{"normalizeVarAB", "[", 
          RowBox[{"n", ",", "v", ",", 
           RowBox[{"Y", "*", "Delta"}]}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"rest", "=", " ", 
         RowBox[{"Sum", "[", 
          RowBox[{
           RowBox[{
            RowBox[{"Coefficient", "[", 
             RowBox[{"preY", ",", "u", ",", "i"}], "]"}], "*", 
            RowBox[{"deltaStarAB", "[", 
             RowBox[{"n", ",", "i"}], "]"}]}], ",", "  ", 
           RowBox[{"{", 
            RowBox[{"i", ",", "0", ",", 
             RowBox[{"k", "-", "1"}]}], "}"}]}], " ", "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"Expand", "[", " ", 
         RowBox[{"prod", " ", "-", " ", "rest"}], "]"}]}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "\n", 
   RowBox[{"Clear", "[", "deltaStarCh", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaStarCh", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"deltaStarCh", "[", "n", "]"}], " ", "=", "\[IndentingNewLine]", 
     
     RowBox[{"Expand", "[", 
      RowBox[{
       RowBox[{"SymmetricReduction", "[", 
        RowBox[{
         RowBox[{"deltaStarAB", "[", "n", "]"}], ",", 
         RowBox[{"{", 
          RowBox[{"\[Alpha]", ",", "\[Beta]"}], "}"}], ",", 
         RowBox[{"{", 
          RowBox[{"c", ",", "d"}], "}"}]}], "]"}], "[", 
       RowBox[{"[", "1", "]"}], "]"}], "]"}]}]}], 
   "\[IndentingNewLine]"}]}]], "Input",
 CellChangeTimes->{{3.799905799813909*^9, 3.79990583862068*^9}, {
  3.79991365241033*^9, 3.7999136977381983`*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 2}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 4}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{"pushforwards", " ", "for", " ", "polynomials", " ", 
     RowBox[{"(", 
      RowBox[{"not", " ", "just", " ", "single", " ", "monoms"}], ")"}]}], 
    " ", "==="}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"delta2", "[", 
     RowBox[{"n_", ",", "uuu_", ",", 
      RowBox[{"{", 
       RowBox[{"vvv_", ",", "www_"}], "}"}], ",", "X0_"}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"X", "=", 
        RowBox[{"Expand", "[", "X0", "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Sum", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"Coefficient", "[", 
          RowBox[{"X", ",", "uuu", ",", "i"}], "]"}], "*", 
         RowBox[{"(", 
          RowBox[{
           RowBox[{"deltaStarAB", "[", 
            RowBox[{"n", ",", "i"}], "]"}], "/.", 
           RowBox[{"{", 
            RowBox[{
             RowBox[{"v", "\[Rule]", "vvv"}], ",", 
             RowBox[{"w", "\[Rule]", "www"}]}], "}"}]}], ")"}]}], " ", ",", 
        RowBox[{"{", 
         RowBox[{"i", ",", "0", ",", "n"}], "}"}]}], "]"}]}], 
     "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"deltaMany", "[", 
     RowBox[{"n_", ",", "uuu_", ",", "vvvs_", ",", "X_"}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", "ttt", "}"}], ",", "\[IndentingNewLine]", 
      RowBox[{"If", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"Length", "[", "vvvs", "]"}], "\[Equal]", "1"}], ",", 
        RowBox[{"X", "/.", 
         RowBox[{"{", 
          RowBox[{"uuu", "\[Rule]", 
           RowBox[{
           "vvvs", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], 
          "}"}]}], ",", "\[IndentingNewLine]", 
        RowBox[{"If", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"Length", "[", "vvvs", "]"}], "\[Equal]", "2"}], ",", 
          RowBox[{"delta2", "[", 
           RowBox[{"n", ",", "uuu", ",", "vvvs", ",", "X"}], "]"}], ",", 
          "\[IndentingNewLine]", 
          RowBox[{"deltaMany", "[", 
           RowBox[{"n", ",", "ttt", ",", 
            RowBox[{"Drop", "[", 
             RowBox[{"vvvs", ",", "1"}], "]"}], ",", " ", 
            RowBox[{"delta2", "[", 
             RowBox[{"n", ",", "uuu", ",", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{
                "vvvs", "\[LeftDoubleBracket]", "1", 
                 "\[RightDoubleBracket]"}], ",", "ttt"}], "}"}], ",", "X"}], 
             "]"}]}], "]"}]}], "]"}]}], "]"}]}], "]"}]}], 
   "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"psi2", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"n1_", ",", "n2_"}], "}"}], ",", 
      RowBox[{"{", 
       RowBox[{"uuu_", ",", "vvv_"}], "}"}], ",", "www_", ",", "X0_"}], "]"}],
     ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"X", "=", 
        RowBox[{"Expand", "[", "X0", "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Sum", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"Coefficient", "[", 
          RowBox[{
           RowBox[{"Coefficient", "[", 
            RowBox[{"X", ",", "uuu", ",", "i"}], "]"}], ",", "vvv", ",", 
           "j"}], "]"}], "*", 
         RowBox[{"(", 
          RowBox[{
           RowBox[{"psiStarAB", "[", 
            RowBox[{"n1", ",", "n2", ",", "i", ",", "j"}], "]"}], "/.", 
           RowBox[{"{", 
            RowBox[{"w", "\[Rule]", "www"}], "}"}]}], ")"}]}], " ", ",", 
        RowBox[{"{", 
         RowBox[{"i", ",", "0", ",", "n1"}], "}"}], ",", 
        RowBox[{"{", 
         RowBox[{"j", ",", "0", ",", "n2"}], "}"}]}], "]"}]}], 
     "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"psiMany", "[", 
     RowBox[{"ns_", ",", "uuus_", ",", "www_", ",", "X_"}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"ttt", ",", "vvvs", ",", "ms"}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"If", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"Length", "[", "uuus", "]"}], "\[Equal]", "1"}], ",", 
        RowBox[{"X", "/.", 
         RowBox[{"{", 
          RowBox[{
           RowBox[{
           "uuus", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], 
           "\[Rule]", "www"}], "}"}]}], ",", "\[IndentingNewLine]", 
        RowBox[{"If", "[", 
         RowBox[{
          RowBox[{
           RowBox[{"Length", "[", "uuus", "]"}], "\[Equal]", "2"}], ",", 
          RowBox[{"psi2", "[", 
           RowBox[{"ns", ",", "uuus", ",", "www", ",", "X"}], "]"}], ",", 
          "\[IndentingNewLine]", 
          RowBox[{
           RowBox[{"ms", "=", 
            RowBox[{"Join", "[", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{
                RowBox[{
                "ns", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}], 
                "+", 
                RowBox[{
                "ns", "\[LeftDoubleBracket]", "2", 
                 "\[RightDoubleBracket]"}]}], "}"}], ",", 
              RowBox[{"Drop", "[", 
               RowBox[{"ns", ",", "2"}], "]"}]}], "]"}]}], ";", 
           "\[IndentingNewLine]", 
           RowBox[{"vvvs", "=", 
            RowBox[{"Join", "[", 
             RowBox[{
              RowBox[{"{", "ttt", "}"}], ",", 
              RowBox[{"Drop", "[", 
               RowBox[{"uuus", ",", "2"}], "]"}]}], "]"}]}], ";", 
           "\[IndentingNewLine]", 
           RowBox[{"psiMany", "[", 
            RowBox[{"ms", ",", "vvvs", ",", "www", ",", " ", 
             RowBox[{"psi2", "[", 
              RowBox[{
               RowBox[{"Take", "[", 
                RowBox[{"ns", ",", "2"}], "]"}], ",", 
               RowBox[{"Take", "[", 
                RowBox[{"uuus", ",", "2"}], "]"}], ",", "ttt", ",", "X"}], 
              "]"}]}], "]"}]}]}], "]"}]}], "]"}]}], "]"}]}]}]}]], "Input",
 CellChangeTimes->{{3.799667476439917*^9, 3.7996677149825773`*^9}, {
  3.7996677601261387`*^9, 3.799667786948341*^9}, {3.79966786245846*^9, 
  3.799667910243636*^9}, {3.801137629197691*^9, 3.801137675043544*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 0.5}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 3}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{
    "pushforward", " ", "along", " ", "the", " ", "power", " ", "map"}], " ", 
    "==="}], " ", "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", 
  RowBox[{"(*", " ", 
   RowBox[{
   "compute", " ", "the", " ", "pushforward", " ", "by", " ", "composing", 
    " ", "the", " ", "diagonal", " ", "with", " ", "the", " ", "merging", " ",
     "map"}], " ", "*)"}], "\n", 
  RowBox[{
   RowBox[{"Clear", "[", "slowOmegaAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"slowOmegaAB", "[", 
     RowBox[{"n_", ",", "d_", ",", "k_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"slowOmegaAB", "[", 
      RowBox[{"n", ",", "d", ",", "k"}], "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"vars", "=", 
          RowBox[{"Table", "[", 
           RowBox[{
            RowBox[{"Subscript", "[", 
             RowBox[{"ttt", ",", "i"}], "]"}], ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "1", ",", "d"}], "}"}]}], "]"}]}], ",", 
         "\[IndentingNewLine]", 
         RowBox[{"dims", "=", 
          RowBox[{"Table", "[", 
           RowBox[{"n", ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "1", ",", "d"}], "}"}]}], "]"}]}]}], "}"}], 
       ",", "\[IndentingNewLine]", 
       RowBox[{"Factor", "[", 
        RowBox[{"psiMany", "[", 
         RowBox[{"dims", ",", "vars", ",", "u", ",", 
          RowBox[{"deltaMany", "[", 
           RowBox[{"n", ",", "u", ",", "vars", ",", 
            RowBox[{"u", "^", "k"}]}], "]"}]}], "]"}], "]"}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\n", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{"d", "-", 
      RowBox[{"th", " ", "power", " ", "of", " ", 
       RowBox[{"u", "^", 
        RowBox[{"k", " ", ":", " ", 
         RowBox[{"P", "^", "n"}]}]}]}]}], " ", "\[Rule]", " ", 
     RowBox[{"P", "^", 
      RowBox[{"(", 
       RowBox[{"n", "*", "d"}], ")"}]}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"NOTE", ":", " ", 
     RowBox[{
      RowBox[{
      "this", " ", "formula", " ", "is", " ", "valid", " ", "for", " ", "k"}],
       ">", 
      RowBox[{
       RowBox[{"n", " ", 
        RowBox[{"too", "!"}], " ", "\[IndentingNewLine]", "you", " ", "can", 
        " ", "experimentally", " ", "check", " ", "this", " ", 
        "\[IndentingNewLine]", "by", " ", "pre"}], "-", 
       RowBox[{"normalizing", " ", "and", " ", "post"}], "-", 
       "normalizing"}]}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "omegaAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"omegaAB", "[", 
     RowBox[{"n_", ",", "d_", ",", "k_"}], "]"}], ":=", "\[IndentingNewLine]", 
    RowBox[{"Module", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"idxs", "=", " ", 
        RowBox[{"Select", "[", 
         RowBox[{
          RowBox[{"Table", "[", 
           RowBox[{"i", ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "0", ",", 
              RowBox[{"n", "*", "d"}]}], "}"}]}], "]"}], ",", 
          RowBox[{
           RowBox[{"Not", "[", 
            RowBox[{"Divisible", "[", 
             RowBox[{"#", ",", "d"}], "]"}], "]"}], "&"}]}], "]"}]}], "}"}], 
      "\[IndentingNewLine]", ",", 
      RowBox[{
       RowBox[{"u", "^", "k"}], "*", 
       RowBox[{"d", "^", 
        RowBox[{"(", 
         RowBox[{"n", "-", "k"}], ")"}]}], "*", 
       RowBox[{"Product", "[", 
        RowBox[{
         RowBox[{"u", "+", 
          RowBox[{
           RowBox[{"(", 
            RowBox[{
             RowBox[{"n", "*", "d"}], "-", "i"}], ")"}], "*", "\[Alpha]"}], 
          "+", 
          RowBox[{"i", "*", "\[Beta]"}]}], ",", 
         RowBox[{"{", 
          RowBox[{"i", ",", "idxs"}], "}"}]}], "]"}]}]}], 
     "\[IndentingNewLine]", "]"}]}], "\n", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{
      RowBox[{"pushforward", " ", "along", " ", "d"}], "-", 
      RowBox[{"th", " ", 
       RowBox[{"power", " ", ":", " ", 
        RowBox[{"P", "^", "n"}]}]}]}], " ", "\[Rule]", " ", 
     RowBox[{"P", "^", 
      RowBox[{"(", 
       RowBox[{"n", "*", "d"}], ")"}]}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"omega1", "[", 
     RowBox[{"n_", ",", "d_", ",", "uuu_", ",", "www_", ",", "X0_"}], "]"}], ":=", 
    RowBox[{"Module", "[", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{"X", "=", 
        RowBox[{"Expand", "[", "X0", "]"}]}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{"Sum", "[", 
       RowBox[{
        RowBox[{
         RowBox[{"Coefficient", "[", 
          RowBox[{"X", ",", "uuu", ",", "i"}], "]"}], "*", 
         RowBox[{"(", 
          RowBox[{
           RowBox[{"omegaAB", "[", 
            RowBox[{"n", ",", "d", ",", "i"}], "]"}], "/.", 
           RowBox[{"{", 
            RowBox[{"u", "\[Rule]", "www"}], "}"}]}], ")"}]}], " ", ",", 
        RowBox[{"{", 
         RowBox[{"i", ",", "0", ",", "n"}], "}"}]}], "]"}]}], 
     "\[IndentingNewLine]", "]"}]}], "\[IndentingNewLine]", "\n", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{
      RowBox[{"P", "^", "n1"}], " ", "x", " ", 
      RowBox[{"P", "^", "n2"}], " ", "x", " ", 
      RowBox[{"P", "^", "n3"}]}], " ", "\[Rule]", " ", 
     RowBox[{
      RowBox[{
       RowBox[{"P", "^", 
        RowBox[{"(", 
         RowBox[{"d1", "*", "n1"}], ")"}]}], " ", "x", " ", 
       RowBox[{"P", "^", 
        RowBox[{"(", 
         RowBox[{"d2", "*", "n2"}], ")"}]}], " ", "x", " ", 
       RowBox[{"P", "^", 
        RowBox[{"(", 
         RowBox[{"d3", "*", "n3"}], ")"}]}]}], " ", "\[Rule]", " ", 
      RowBox[{"P", "^", 
       RowBox[{"(", 
        RowBox[{
         RowBox[{"d1", "*", "n1"}], " ", "+", " ", 
         RowBox[{"d2", "*", "n2"}], " ", "+", " ", 
         RowBox[{"d3", "*", "n3"}]}], " "}]}]}]}], "*)"}], " ", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"omegaLam", "[", 
     RowBox[{"ns_", ",", "ds_", ",", "uuus_", ",", "www_", ",", "X0_"}], 
     "]"}], ":=", 
    RowBox[{"Module", "[", "\[IndentingNewLine]", 
     RowBox[{
      RowBox[{"{", 
       RowBox[{
        RowBox[{"X", "=", 
         RowBox[{"Expand", "[", "X0", "]"}]}], ",", "\[IndentingNewLine]", 
        RowBox[{"m", " ", "=", " ", 
         RowBox[{"Length", "[", "ns", "]"}]}], ",", "\[IndentingNewLine]", 
        "vars", ",", "Y", ",", "nds", ",", "ttt", ",", "i"}], "}"}], ",", 
      "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"vars", "=", 
        RowBox[{"Table", "[", 
         RowBox[{
          RowBox[{"Subscript", "[", 
           RowBox[{"ttt", ",", "i"}], "]"}], ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
       "\[IndentingNewLine]", 
       RowBox[{"nds", "=", 
        RowBox[{"Table", "[", " ", 
         RowBox[{
          RowBox[{
           RowBox[{"ns", "[", 
            RowBox[{"[", "i", "]"}], "]"}], "*", 
           RowBox[{"ds", "[", 
            RowBox[{"[", "i", "]"}], "]"}]}], ",", " ", 
          RowBox[{"{", 
           RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
       "\[IndentingNewLine]", 
       RowBox[{"Y", "=", "X"}], ";", "\[IndentingNewLine]", 
       RowBox[{"For", "[", 
        RowBox[{
         RowBox[{"i", "=", "1"}], ",", 
         RowBox[{"i", "\[LessEqual]", "m"}], ",", 
         RowBox[{"i", "++"}], ",", 
         RowBox[{"Y", "=", 
          RowBox[{"omega1", "[", 
           RowBox[{
            RowBox[{"ns", "[", 
             RowBox[{"[", "i", "]"}], "]"}], ",", 
            RowBox[{"ds", "[", 
             RowBox[{"[", "i", "]"}], "]"}], ",", 
            RowBox[{"uuus", "[", 
             RowBox[{"[", "i", "]"}], "]"}], ",", 
            RowBox[{"vars", "[", 
             RowBox[{"[", "i", "]"}], "]"}], ",", "Y"}], "]"}]}]}], "]"}], 
       ";", "\[IndentingNewLine]", 
       RowBox[{"psiMany", "[", 
        RowBox[{"nds", ",", "vars", ",", "www", ",", "Y"}], "]"}]}]}], 
     "\[IndentingNewLine]", "]"}]}]}]}]], "Input",
 CellChangeTimes->{{3.7999058649845*^9, 3.7999058698453217`*^9}, {
  3.799913868197979*^9, 3.7999139371723003`*^9}, {3.8008792882621317`*^9, 
  3.8008792885238028`*^9}, {3.80113759876646*^9, 3.801137620241535*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 2}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 4}],

Cell[BoxData[
 RowBox[{
  RowBox[{"(*", " ", 
   RowBox[{"===", " ", 
    RowBox[{"EQUIVARIANT", " ", "CSM", " ", "CLASS"}], " ", "==="}], " ", 
   "*)"}], "\[IndentingNewLine]", "\[IndentingNewLine]", 
  RowBox[{
   RowBox[{
    RowBox[{"uus", "[", "n_", "]"}], ":=", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{"uu", "[", "i", "]"}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "1", ",", "n"}], "}"}]}], "]"}]}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"vvs", "[", "n_", "]"}], ":=", 
    RowBox[{"Table", "[", 
     RowBox[{
      RowBox[{"vv", "[", "i", "]"}], ",", 
      RowBox[{"{", 
       RowBox[{"i", ",", "1", ",", "n"}], "}"}]}], "]"}]}], 
   "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"total", " ", "chern", " ", "class", " ", "of", " ", 
     RowBox[{"P", "^", "n"}]}], " ", "*)"}], "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "chernPnAB", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"chernPnAB", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"chernPnAB", "[", "n", "]"}], "=", 
     RowBox[{"normalizeVarAB", "[", 
      RowBox[{"n", ",", "u", ",", "\[IndentingNewLine]", 
       RowBox[{"Expand", "[", 
        RowBox[{"Product", "[", 
         RowBox[{
          RowBox[{"1", "+", "u", "+", 
           RowBox[{"wt", "[", 
            RowBox[{"n", ",", "i"}], "]"}]}], ",", 
          RowBox[{"{", 
           RowBox[{"i", ",", "0", ",", "n"}], "}"}]}], "]"}], "]"}]}], 
      "]"}]}]}], "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"chernPnABVar", "[", 
     RowBox[{"n_", ",", "uuu_"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"chernPnAB", "[", "n", "]"}], "/.", 
     RowBox[{"{", 
      RowBox[{"u", "\[Rule]", "uuu"}], "}"}]}]}]}]}]], "Input",
 CellChangeTimes->{{3.7999058758298073`*^9, 3.799905884427569*^9}, {
  3.801137947291946*^9, 3.801137966294516*^9}}],

Cell[BoxData[{
 RowBox[{
  RowBox[{
   RowBox[{"EmptyPartQ", "[", "part_", "]"}], ":=", 
   RowBox[{
    RowBox[{"Length", "[", "part", "]"}], "\[Equal]", "0"}]}], 
  "\n"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"DualPart", "[", 
   RowBox[{"{", "}"}], "]"}], ":=", 
  RowBox[{"{", "}"}]}], "\n", 
 RowBox[{
  RowBox[{
   RowBox[{"DualPart", "[", "lam_", "]"}], ":=", 
   RowBox[{"With", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"m", "=", 
       RowBox[{"lam", "[", 
        RowBox[{"[", "1", "]"}], "]"}]}], "}"}], ",", 
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"Length", "[", 
        RowBox[{"Select", "[", 
         RowBox[{"lam", ",", 
          RowBox[{
           RowBox[{"#", "\[GreaterEqual]", "i"}], "&"}]}], "]"}], "]"}], ",", 
       
       RowBox[{"{", 
        RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], "]"}]}], 
  "\[IndentingNewLine]", " "}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"toExpoForm", "[", 
    RowBox[{"{", "}"}], "]"}], ":=", 
   RowBox[{"{", "}"}]}], " "}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"toExpoForm", "[", "part_", "]"}], ":=", 
   RowBox[{"Module", "[", 
    RowBox[{
     RowBox[{"{", 
      RowBox[{"k", "=", 
       RowBox[{"Max", "[", "part", "]"}]}], "}"}], ",", 
     RowBox[{"Table", "[", 
      RowBox[{
       RowBox[{"Length", "[", 
        RowBox[{"Select", "[", 
         RowBox[{"part", ",", 
          RowBox[{
           RowBox[{"#", "\[Equal]", "j"}], "&"}]}], "]"}], "]"}], ",", 
       RowBox[{"{", 
        RowBox[{"j", ",", "1", ",", "k"}], "}"}]}], "]"}]}], "]"}]}], 
  "\[IndentingNewLine]"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{
   RowBox[{"posVectorQ", "[", "as_", "]"}], ":=", 
   RowBox[{
    RowBox[{"Map", "[", 
     RowBox[{
      RowBox[{
       RowBox[{"#", "\[GreaterEqual]", "0"}], "&"}], ",", "as"}], "]"}], "/.", 
    RowBox[{"{", 
     RowBox[{"List", "\[Rule]", "And"}], "}"}]}]}], 
  ";"}], "\[IndentingNewLine]", 
 RowBox[{
  RowBox[{"kdeTriples", "[", 
   RowBox[{"p_", ",", "ns_"}], "]"}], ":=", 
  RowBox[{"Module", "[", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"{", 
     RowBox[{
      RowBox[{"m", " ", "=", " ", 
       RowBox[{"Length", "[", "ns", "]"}]}], ",", "\[IndentingNewLine]", 
      "posQ", ",", "oneK", ",", "A"}], "}"}], ",", "\[IndentingNewLine]", 
    RowBox[{
     RowBox[{
      RowBox[{"oneK", "[", "k_", "]"}], ":=", 
      RowBox[{"Table", "[", 
       RowBox[{
        RowBox[{"{", 
         RowBox[{"k", ",", 
          RowBox[{"ns", "-", "es"}], ",", "es"}], "}"}], ",", 
        RowBox[{"{", 
         RowBox[{"es", ",", 
          RowBox[{"Combinatorica`Compositions", "[", 
           RowBox[{
            RowBox[{"p", "-", "k"}], ",", "m"}], "]"}]}], "}"}]}], "]"}]}], 
     ";", "\[IndentingNewLine]", 
     RowBox[{"A", "=", 
      RowBox[{"Table", " ", "[", 
       RowBox[{
        RowBox[{"oneK", "[", "k", "]"}], ",", 
        RowBox[{"{", 
         RowBox[{"k", ",", "0", ",", 
          RowBox[{"p", "-", "1"}]}], "}"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", 
     RowBox[{"A", "=", 
      RowBox[{"Select", "[", 
       RowBox[{
        RowBox[{"Flatten", "[", 
         RowBox[{"A", ",", "1"}], "]"}], ",", 
        RowBox[{
         RowBox[{"posVectorQ", "[", 
          RowBox[{"Snd", "[", "#", "]"}], "]"}], "&"}]}], "]"}]}], ";", 
     "\[IndentingNewLine]", "A"}]}], "]"}]}], "\[IndentingNewLine]"}], "Input",\

 CellChangeTimes->{{3.799903570801889*^9, 3.799903621715088*^9}, {
  3.801138022561639*^9, 3.80113802310922*^9}}],

Cell[BoxData[
 RowBox[{"\[IndentingNewLine]", 
  RowBox[{
   RowBox[{"Clear", "[", 
    RowBox[{
    "csmXLam", ",", "csmDisj1", ",", "csmDisj", ",", "csmDisjSorted"}], "]"}],
    "\[IndentingNewLine]", "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmXLam", "[", 
     RowBox[{"{", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmXLam", "[", 
      RowBox[{"{", "}"}], "]"}], "=", "1"}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmXLam", "[", 
     RowBox[{"{", "1", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmXLam", "[", 
      RowBox[{"{", "1", "}"}], "]"}], "=", 
     RowBox[{"chernPnAB", "[", "1", "]"}]}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisj1", "[", "0", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj1", "[", "0", "]"}], "=", "1"}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisj1", "[", "1", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj1", "[", "1", "]"}], "=", 
     RowBox[{"chernPnAB", "[", "1", "]"}]}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisj", "[", 
     RowBox[{"{", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj", "[", 
      RowBox[{"{", "}"}], "]"}], "=", "1"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisjSorted", "[", 
     RowBox[{"{", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisjSorted", "[", 
      RowBox[{"{", "}"}], "]"}], "=", "1"}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"equiv", " ", "CSM", " ", "of", " ", "D", 
     RowBox[{"(", "n", ")"}]}], " ", "*)"}], "\n", 
   RowBox[{
    RowBox[{"csmDisj1", "[", "n_", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj1", "[", "n", "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{"parts", "=", 
         RowBox[{"Select", "[", 
          RowBox[{
           RowBox[{"Combinatorica`Partitions", "[", "n", "]"}], ",", 
           RowBox[{
            RowBox[{
             RowBox[{"Length", "[", "#", "]"}], "<", "n"}], "&"}]}], "]"}]}], 
        "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{"Expand", "[", 
        RowBox[{
         RowBox[{"chernPnAB", "[", "n", "]"}], "-", 
         RowBox[{"Sum", "[", 
          RowBox[{
           RowBox[{"csmXLam", "[", "p", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"p", ",", "parts"}], "}"}]}], "]"}]}], "]"}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", "\n", 
   RowBox[{"(*", " ", 
    RowBox[{"equiv", " ", "CSM", " ", "of", " ", "X_lambda"}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmXLam", "[", "lambda_", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmXLam", "[", "lambda", "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"es", " ", "=", " ", 
          RowBox[{"toExpoForm", "[", "lambda", "]"}]}], ",", "m", ",", "m1", 
         ",", "ns", ",", "pairs", ",", "X"}], "}"}], ",", 
       "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"m", "=", 
         RowBox[{"Length", "[", "es", "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"ns", " ", "=", " ", 
         RowBox[{"Range", "[", "m", "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"pairs", " ", "=", " ", 
         RowBox[{"Zip", "[", 
          RowBox[{"ns", ",", "es"}], "]"}]}], ";", "   ", 
        RowBox[{"(*", " ", 
         RowBox[{"i", "^", "e_"}], " ", "*)"}], "\[IndentingNewLine]", 
        RowBox[{"pairs", " ", "=", " ", 
         RowBox[{"Select", "[", 
          RowBox[{"pairs", ",", 
           RowBox[{
            RowBox[{
             RowBox[{"Snd", "[", "#", "]"}], ">", "0"}], "&"}]}], "]"}]}], 
        ";", " ", 
        RowBox[{"(*", " ", 
         RowBox[{"!!", "!"}], " ", "*)"}], "\[IndentingNewLine]", 
        RowBox[{"m1", " ", "=", " ", 
         RowBox[{"Length", "[", "pairs", "]"}]}], ";", "\[IndentingNewLine]", 
        
        RowBox[{"ns", " ", "=", 
         RowBox[{"Map", "[", 
          RowBox[{"Fst", ",", "pairs"}], "]"}]}], ";", "\[IndentingNewLine]", 
        
        RowBox[{"es", " ", "=", 
         RowBox[{"Map", "[", 
          RowBox[{"Snd", ",", "pairs"}], "]"}]}], ";", "\[IndentingNewLine]", 
        
        RowBox[{"X", "=", 
         RowBox[{"csmDisj", "[", "es", "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"(*", " ", 
         RowBox[{
          RowBox[{"Print", "[", 
           RowBox[{"\"\<xlam1 - \>\"", ",", "pairs"}], "]"}], ";", 
          "\[IndentingNewLine]", 
          RowBox[{"Print", "[", 
           RowBox[{
           "\"\<xlam2 - \>\"", ",", "es", ",", "\"\< | \>\"", ",", "ns", ",", 
            "\"\< | \>\"", ",", 
            RowBox[{"uus", "[", "m1", "]"}], ",", "\"\< | \>\"", ",", "X"}], 
           "]"}], ";"}], " ", "*)"}], "\[IndentingNewLine]", 
        RowBox[{"Expand", "[", 
         RowBox[{"omegaLam", "[", 
          RowBox[{"es", ",", "ns", ",", 
           RowBox[{"uus", "[", "m1", "]"}], ",", "u", ",", "X"}], "]"}], 
         "]"}]}]}], "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{"equiv", " ", "CSM", " ", "of", " ", "D", 
     RowBox[{"(", 
      RowBox[{"d1", ",", "d2", ",", "..."}], ")"}]}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisj", "[", 
     RowBox[{"{", "n_", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj", "[", 
      RowBox[{"{", "n", "}"}], "]"}], " ", "=", " ", 
     RowBox[{
      RowBox[{"csmDisj1", "[", "n", "]"}], "/.", 
      RowBox[{"{", 
       RowBox[{"u", "\[Rule]", 
        RowBox[{"uu", "[", "1", "]"}]}], "}"}]}]}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisj", "[", "ns0_", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisj", "[", "ns0", "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"m", "=", 
          RowBox[{"Length", "[", "ns0", "]"}]}], ",", "\[IndentingNewLine]", 
         "nis0", ",", "nis1", ",", "ns1", ",", "idxs", ",", "X", ",", "ttt"}],
         "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"nis0", " ", "=", 
         RowBox[{"Zip", "[", 
          RowBox[{"ns0", ",", 
           RowBox[{"Range", "[", "m", "]"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"nis1", "=", 
         RowBox[{"SortBy", "[", 
          RowBox[{"nis0", ",", 
           RowBox[{
            RowBox[{"-", 
             RowBox[{"Fst", "[", "#", "]"}]}], "&"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"idxs", "=", 
         RowBox[{"Map", "[", 
          RowBox[{"Snd", ",", "nis1"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"ns1", " ", "=", 
         RowBox[{"Select", "[", 
          RowBox[{
           RowBox[{"Map", "[", 
            RowBox[{"Fst", ",", "nis1"}], "]"}], ",", 
           RowBox[{
            RowBox[{"#", ">", "0"}], "&"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"(*", " ", 
         RowBox[{
          RowBox[{"Print", "[", 
           RowBox[{
           "\"\<nis1 - \>\"", ",", "nis0", ",", "\"\< | \>\"", ",", "nis1"}], 
           "]"}], ";", "\[IndentingNewLine]", 
          RowBox[{"Print", "[", 
           RowBox[{"\"\<nis2 - \>\"", ",", "ns1"}], "]"}], ";"}], " ", "*)"}],
         "\[IndentingNewLine]", 
        RowBox[{"X", "=", 
         RowBox[{"csmDisjSorted", "[", "ns1", "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"X", "=", 
         RowBox[{"X", "/.", 
          RowBox[{"Table", "[", 
           RowBox[{
            RowBox[{
             RowBox[{"uu", "[", "i", "]"}], "\[Rule]", 
             RowBox[{"Subscript", "[", 
              RowBox[{"ttt", ",", "i"}], "]"}]}], ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"X", "/.", 
         RowBox[{"Table", "[", 
          RowBox[{
           RowBox[{
            RowBox[{"Subscript", "[", 
             RowBox[{"ttt", ",", "i"}], "]"}], "\[Rule]", 
            RowBox[{"uu", "[", 
             RowBox[{
             "idxs", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], 
             "]"}]}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}]}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
    "a", " ", "single", " ", "term", " ", "corresponding", " ", "to", " ", 
     "a", " ", "triple", " ", 
     RowBox[{"(", 
      RowBox[{"k", ",", "ds", ",", "es"}], ")"}]}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{"Clear", "[", "singleKDE", "]"}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"singleKDE", "[", 
     RowBox[{"{", 
      RowBox[{"k_", ",", "ds_", ",", "es_"}], "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"singleKDE", "[", 
      RowBox[{"{", 
       RowBox[{"k", ",", "ds", ",", "es"}], "}"}], "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
        "A", ",", "B", ",", "\[IndentingNewLine]", "m", ",", "vars", ",", 
         "dims", ",", "\[IndentingNewLine]", "pp", ",", "qq", ",", "rr", ",", 
         "ss", ",", "\[IndentingNewLine]", "pps", ",", "qqs", ",", "rrs", ",",
          "sss"}], "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"m", "=", 
         RowBox[{"Length", "[", "ds", "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"pp", "[", "i_", "]"}], ":=", 
         RowBox[{"Subscript", "[", 
          RowBox[{"pp$p", ",", "i"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"qq", "[", "i_", "]"}], ":=", 
         RowBox[{"Subscript", "[", 
          RowBox[{"qq$q", ",", "i"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"rr", "[", "i_", "]"}], ":=", 
         RowBox[{"Subscript", "[", 
          RowBox[{"rr$r", ",", "i"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{
         RowBox[{"ss", "[", "i_", "]"}], ":=", 
         RowBox[{"Subscript", "[", 
          RowBox[{"ss$s", ",", "i"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"pps", "=", 
         RowBox[{"Table", "[", 
          RowBox[{
           RowBox[{"pp", "[", "i", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"qqs", "=", 
         RowBox[{"Table", "[", 
          RowBox[{
           RowBox[{"qq", "[", "i", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"rrs", "=", 
         RowBox[{"Table", "[", 
          RowBox[{
           RowBox[{"rr", "[", "i", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"sss", "=", 
         RowBox[{"Table", "[", 
          RowBox[{
           RowBox[{"ss", "[", "i", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"i", ",", "1", ",", "m"}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"vars", "=", 
         RowBox[{"Join", "[", 
          RowBox[{
           RowBox[{"{", "zzz", "}"}], ",", "pps", ",", "qqs"}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"dims", "=", 
         RowBox[{"Join", "[", 
          RowBox[{
           RowBox[{"{", "k", "}"}], ",", "ds", ",", "es"}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"A", "=", 
         RowBox[{
          RowBox[{"csmDisj", "[", "dims", "]"}], "/.", 
          RowBox[{"Table", "[", 
           RowBox[{
            RowBox[{
             RowBox[{"uu", "[", "i", "]"}], "\[Rule]", 
             RowBox[{
             "vars", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}]}],
             ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "1", ",", 
              RowBox[{
               RowBox[{"2", "m"}], "+", "1"}]}], "}"}]}], "]"}]}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"B", "=", "A"}], ";", "\[IndentingNewLine]", 
        RowBox[{"For", "[", 
         RowBox[{
          RowBox[{"i", "=", "1"}], ",", 
          RowBox[{"i", "\[LessEqual]", "m"}], ",", 
          RowBox[{"i", "++"}], ",", 
          RowBox[{"B", "=", 
           RowBox[{"Expand", "[", 
            RowBox[{"delta2", "[", 
             RowBox[{
              RowBox[{
              "es", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], 
              ",", 
              RowBox[{"qq", "[", "i", "]"}], ",", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"rr", "[", "i", "]"}], ",", 
                RowBox[{"ss", "[", "i", "]"}]}], "}"}], ",", "B"}], "]"}], 
            "]"}]}]}], "]"}], ";", "\[IndentingNewLine]", 
        RowBox[{"For", "[", 
         RowBox[{
          RowBox[{"i", "=", "1"}], ",", 
          RowBox[{"i", "\[LessEqual]", "m"}], ",", 
          RowBox[{"i", "++"}], ",", 
          RowBox[{"B", "=", 
           RowBox[{"Expand", "[", 
            RowBox[{"psi2", "[", 
             RowBox[{
              RowBox[{"{", 
               RowBox[{
                RowBox[{
                "ds", "\[LeftDoubleBracket]", "i", "\[RightDoubleBracket]"}], 
                ",", 
                RowBox[{
                "es", "\[LeftDoubleBracket]", "i", 
                 "\[RightDoubleBracket]"}]}], "}"}], ",", 
              RowBox[{"{", 
               RowBox[{
                RowBox[{"pp", "[", "i", "]"}], ",", 
                RowBox[{"ss", "[", "i", "]"}]}], "}"}], ",", 
              RowBox[{"uu", "[", "i", "]"}], ",", "B"}], "]"}], "]"}]}]}], 
         "]"}], ";", "\[IndentingNewLine]", 
        RowBox[{"B", "=", 
         RowBox[{"psiMany", "[", 
          RowBox[{
           RowBox[{"Join", "[", 
            RowBox[{
             RowBox[{"{", "k", "}"}], ",", "es"}], "]"}], ",", 
           RowBox[{"Join", "[", 
            RowBox[{
             RowBox[{"{", "zzz", "}"}], ",", "rrs"}], "]"}], ",", "z", ",", 
           "B"}], "]"}]}], ";", "\[IndentingNewLine]", "B"}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]", 
   "\[IndentingNewLine]", 
   RowBox[{"(*", " ", 
    RowBox[{
     RowBox[{"equiv", " ", "CSM", " ", "of", " ", "D", 
      RowBox[{"(", 
       RowBox[{"d1", ",", "d2", ",", "..."}], ")"}]}], ",", " ", 
     RowBox[{
      RowBox[{
       RowBox[{
        RowBox[{"but", " ", "we", " ", "require", " ", "d1"}], 
        "\[GreaterEqual]", "d2", "\[GreaterEqual]", "d3", "\[GreaterEqual]"}],
        "..."}], "\[GreaterEqual]", "dn", ">", "0"}]}], " ", "*)"}], 
   "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisjSorted", "[", 
     RowBox[{"{", "n_", "}"}], "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisjSorted", "[", 
      RowBox[{"{", "n", "}"}], "]"}], "=", 
     RowBox[{
      RowBox[{"csmDisj1", "[", "n", "]"}], "/.", 
      RowBox[{"{", 
       RowBox[{"u", "\[Rule]", 
        RowBox[{"uu", "[", "1", "]"}]}], "}"}]}]}]}], "\[IndentingNewLine]", 
   RowBox[{
    RowBox[{"csmDisjSorted", "[", "pns_", "]"}], ":=", 
    RowBox[{
     RowBox[{"csmDisjSorted", "[", "pns", "]"}], "=", 
     RowBox[{"Module", "[", "\[IndentingNewLine]", 
      RowBox[{
       RowBox[{"{", 
        RowBox[{
         RowBox[{"p", "=", 
          RowBox[{
          "pns", "\[LeftDoubleBracket]", "1", "\[RightDoubleBracket]"}]}], 
         ",", "\[IndentingNewLine]", 
         RowBox[{"ns", "=", 
          RowBox[{"Drop", "[", 
           RowBox[{"pns", ",", "1"}], "]"}]}], ",", "\[IndentingNewLine]", 
         "A", ",", "B", ",", "rest", ",", "\[IndentingNewLine]", "KDE"}], 
        "\[IndentingNewLine]", "}"}], ",", "\[IndentingNewLine]", 
       RowBox[{
        RowBox[{"KDE", "=", 
         RowBox[{"kdeTriples", "[", 
          RowBox[{"p", ",", "ns"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"(*", " ", 
         RowBox[{
          RowBox[{"Print", "[", 
           RowBox[{
           "\"\<sorted1 - \>\"", ",", "p", ",", "\"\< | \>\"", ",", "ns"}], 
           "]"}], ";", "\[IndentingNewLine]", 
          RowBox[{"Print", "[", 
           RowBox[{"\"\<sorted2 - \>\"", ",", "KDE"}], "]"}], ";"}], " ", 
         "*)"}], "\[IndentingNewLine]", 
        RowBox[{"A", "=", 
         RowBox[{
          RowBox[{"(", 
           RowBox[{
            RowBox[{"csmDisj1", "[", "p", "]"}], "/.", 
            RowBox[{"{", 
             RowBox[{"u", "\[Rule]", "z"}], "}"}]}], ")"}], "*", 
          RowBox[{"csmDisj", "[", "ns", "]"}]}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"rest", "=", 
         RowBox[{"Sum", "[", 
          RowBox[{
           RowBox[{"singleKDE", "[", "kde", "]"}], ",", 
           RowBox[{"{", 
            RowBox[{"kde", ",", "KDE"}], "}"}]}], "]"}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"B", " ", "=", " ", 
         RowBox[{"Expand", "[", 
          RowBox[{"A", "-", "rest"}], "]"}]}], ";", "\[IndentingNewLine]", 
        RowBox[{"B", " ", "=", 
         RowBox[{"B", "/.", 
          RowBox[{"Table", "[", 
           RowBox[{
            RowBox[{
             RowBox[{"uu", "[", "i", "]"}], "\[Rule]", 
             RowBox[{"uu", "[", 
              RowBox[{"i", "+", "1"}], "]"}]}], ",", 
            RowBox[{"{", 
             RowBox[{"i", ",", "1", ",", 
              RowBox[{"Length", "[", "ns", "]"}]}], "}"}]}], "]"}]}]}], ";", 
        "\[IndentingNewLine]", 
        RowBox[{"B", "=", 
         RowBox[{"B", "/.", 
          RowBox[{"{", 
           RowBox[{"z", "\[Rule]", 
            RowBox[{"uu", "[", "1", "]"}]}], "}"}]}]}]}]}], 
      "\[IndentingNewLine]", "]"}]}]}], "\[IndentingNewLine]"}]}]], "Input",
 CellChangeTimes->{{3.799904396615363*^9, 3.799904406889674*^9}, 
   3.7999044864107447`*^9, {3.799904522981793*^9, 3.799904542217388*^9}, {
   3.799905368188403*^9, 3.799905440526905*^9}, {3.799910778489602*^9, 
   3.799910789411199*^9}, {3.7999114574287767`*^9, 3.7999114795107517`*^9}, {
   3.7999117495827513`*^9, 3.799911793714377*^9}, {3.7999118288998423`*^9, 
   3.799911896725374*^9}, {3.799912109841093*^9, 3.7999121125284853`*^9}, {
   3.7999125865497513`*^9, 3.7999126172056303`*^9}, 3.79991266733438*^9, {
   3.799912899384604*^9, 3.7999129587478647`*^9}, {3.7999130239335003`*^9, 
   3.79991307814552*^9}, {3.799914094737917*^9, 3.799914115471753*^9}, {
   3.801080167288307*^9, 3.801080168489579*^9}}],

Cell[" ", "Text",
 Editable->False,
 Selectable->False,
 CellFrame->{{0, 0}, {0, 2}},
 ShowCellBracket->False,
 CellMargins->{{0, 0}, {1, 1}},
 CellElementSpacings->{"CellMinHeight"->1},
 CellFrameMargins->0,
 CellFrameColor->RGBColor[0, 0, 1],
 CellSize->{Inherited, 4}],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"hs2mat", "=", 
  RowBox[{"{", 
   RowBox[{
    RowBox[{"g", "\[Rule]", "u"}], ",", 
    RowBox[{"a", "\[Rule]", "\[Alpha]"}], ",", 
    RowBox[{"b", "\[Rule]", "\[Beta]"}]}], "}"}]}]], "Input",
 CellChangeTimes->{{3.799912245620652*^9, 3.799912259016245*^9}}],

Cell[BoxData[
 RowBox[{"{", 
  RowBox[{
   RowBox[{"g", "\[Rule]", "u"}], ",", 
   RowBox[{"a", "\[Rule]", "\[Alpha]"}], ",", 
   RowBox[{"b", "\[Rule]", "\[Beta]"}]}], "}"}]], "Output",
 CellChangeTimes->{3.799912260023808*^9, 3.7999140879900007`*^9, 
  3.8010801719598103`*^9, 3.801138036574416*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"csmXLam", "[", 
  RowBox[{"{", 
   RowBox[{"2", ",", "2", ",", "1", ",", "1"}], "}"}], "]"}]], "Input",
 CellChangeTimes->{{3.801080172892398*^9, 3.801080178385489*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"]}], "-", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Alpha]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]"}], "+", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "+", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"], " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "-", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "+", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "-", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Alpha]", "4"]}], "+", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "4"]}], "+", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Alpha]", "5"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Beta]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Beta]"}], "+", 
  RowBox[{"504", " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"1056", " ", "u", " ", "\[Alpha]", " ", "\[Beta]"}], "+", 
  RowBox[{"48", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"36", " ", 
   SuperscriptBox["u", "3"], " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"1584", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "+", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "-", 
  RowBox[{"144", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", "\[Beta]"}], "+", 
  RowBox[{"168", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", "\[Beta]"}], "+", 
  RowBox[{"864", " ", 
   SuperscriptBox["\[Alpha]", "4"], " ", "\[Beta]"}], "+", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1584", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"648", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1224", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1224", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "+", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"144", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "+", 
  RowBox[{"168", " ", "u", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"1224", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"864", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Beta]", "5"]}]}]], "Output",
 CellChangeTimes->{3.801080178836585*^9, 3.801138037480577*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ref2211", "=", 
  RowBox[{
   RowBox[{"(", 
    RowBox[{
     RowBox[{"180", "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"360", "*", 
      RowBox[{"b", "^", "3"}]}], "-", 
     RowBox[{"180", "*", 
      RowBox[{"b", "^", "4"}]}], "+", 
     RowBox[{"360", "*", 
      RowBox[{"b", "^", "5"}]}], "+", 
     RowBox[{"504", "*", "a", "*", "b"}], "-", 
     RowBox[{"1584", "*", "a", "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"144", "*", "a", "*", 
      RowBox[{"b", "^", "3"}]}], "+", 
     RowBox[{"864", "*", "a", "*", 
      RowBox[{"b", "^", "4"}]}], "+", 
     RowBox[{"180", "*", 
      RowBox[{"a", "^", "2"}]}], "-", 
     RowBox[{"1584", "*", 
      RowBox[{"a", "^", "2"}], "*", "b"}], "+", 
     RowBox[{"648", "*", 
      RowBox[{"a", "^", "2"}], "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"1224", "*", 
      RowBox[{"a", "^", "2"}], "*", 
      RowBox[{"b", "^", "3"}]}], "-", 
     RowBox[{"360", "*", 
      RowBox[{"a", "^", "3"}]}], "-", 
     RowBox[{"144", "*", 
      RowBox[{"a", "^", "3"}], "*", "b"}], "-", 
     RowBox[{"1224", "*", 
      RowBox[{"a", "^", "3"}], "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"180", "*", 
      RowBox[{"a", "^", "4"}]}], "+", 
     RowBox[{"864", "*", 
      RowBox[{"a", "^", "4"}], "*", "b"}], "+", 
     RowBox[{"360", "*", 
      RowBox[{"a", "^", "5"}]}], "+", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", "b"}], "-", 
     RowBox[{"444", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"b", "^", "3"}]}], "+", 
     RowBox[{"444", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"b", "^", "4"}]}], "+", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", "a"}], "-", 
     RowBox[{"1056", "*", 
      RowBox[{"g", "^", "1"}], "*", "a", "*", "b"}], "+", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", "a", "*", 
      RowBox[{"b", "^", "2"}]}], "+", 
     RowBox[{"168", "*", 
      RowBox[{"g", "^", "1"}], "*", "a", "*", 
      RowBox[{"b", "^", "3"}]}], "-", 
     RowBox[{"444", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "2"}]}], "+", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "2"}], "*", "b"}], "-", 
     RowBox[{"1224", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "2"}], "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"144", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "3"}]}], "+", 
     RowBox[{"168", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "3"}], "*", "b"}], "+", 
     RowBox[{"444", "*", 
      RowBox[{"g", "^", "1"}], "*", 
      RowBox[{"a", "^", "4"}]}], "+", 
     RowBox[{"24", "*", 
      RowBox[{"g", "^", "2"}]}], "-", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", "b"}], "-", 
     RowBox[{"24", "*", 
      RowBox[{"g", "^", "2"}], "*", 
      RowBox[{"b", "^", "2"}]}], "+", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", 
      RowBox[{"b", "^", "3"}]}], "-", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", "a"}], "+", 
     RowBox[{"48", "*", 
      RowBox[{"g", "^", "2"}], "*", "a", "*", "b"}], "-", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", "a", "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"24", "*", 
      RowBox[{"g", "^", "2"}], "*", 
      RowBox[{"a", "^", "2"}]}], "-", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", 
      RowBox[{"a", "^", "2"}], "*", "b"}], "+", 
     RowBox[{"162", "*", 
      RowBox[{"g", "^", "2"}], "*", 
      RowBox[{"a", "^", "3"}]}], "-", 
     RowBox[{"18", "*", 
      RowBox[{"g", "^", "3"}]}], "+", 
     RowBox[{"18", "*", 
      RowBox[{"g", "^", "3"}], "*", 
      RowBox[{"b", "^", "2"}]}], "-", 
     RowBox[{"36", "*", 
      RowBox[{"g", "^", "3"}], "*", "a", "*", "b"}], "+", 
     RowBox[{"18", "*", 
      RowBox[{"g", "^", "3"}], "*", 
      RowBox[{"a", "^", "2"}]}]}], ")"}], "/.", "hs2mat"}]}]], "Input",
 CellChangeTimes->{{3.801080194677876*^9, 3.801080214599786*^9}}],

Cell[BoxData[
 RowBox[{
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"]}], "-", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Alpha]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]"}], "+", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "+", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"], " ", 
   SuperscriptBox["\[Alpha]", "2"]}], "-", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "-", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "+", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "3"]}], "-", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Alpha]", "4"]}], "+", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "4"]}], "+", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Alpha]", "5"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Beta]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Beta]"}], "+", 
  RowBox[{"504", " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"1056", " ", "u", " ", "\[Alpha]", " ", "\[Beta]"}], "+", 
  RowBox[{"48", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"36", " ", 
   SuperscriptBox["u", "3"], " ", "\[Alpha]", " ", "\[Beta]"}], "-", 
  RowBox[{"1584", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "+", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", "\[Beta]"}], "-", 
  RowBox[{"144", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", "\[Beta]"}], "+", 
  RowBox[{"168", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", "\[Beta]"}], "+", 
  RowBox[{"864", " ", 
   SuperscriptBox["\[Alpha]", "4"], " ", "\[Beta]"}], "+", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"24", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"18", " ", 
   SuperscriptBox["u", "3"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1584", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"144", " ", "u", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "2"]}], "+", 
  RowBox[{"648", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1224", " ", "u", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"1224", " ", 
   SuperscriptBox["\[Alpha]", "3"], " ", 
   SuperscriptBox["\[Beta]", "2"]}], "-", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"144", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "+", 
  RowBox[{"162", " ", 
   SuperscriptBox["u", "2"], " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"144", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "+", 
  RowBox[{"168", " ", "u", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"1224", " ", 
   SuperscriptBox["\[Alpha]", "2"], " ", 
   SuperscriptBox["\[Beta]", "3"]}], "-", 
  RowBox[{"180", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"444", " ", "u", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"864", " ", "\[Alpha]", " ", 
   SuperscriptBox["\[Beta]", "4"]}], "+", 
  RowBox[{"360", " ", 
   SuperscriptBox["\[Beta]", "5"]}]}]], "Output",
 CellChangeTimes->{3.8010802149214277`*^9, 3.8011380407777863`*^9}]
}, Open  ]],

Cell[CellGroupData[{

Cell[BoxData[
 RowBox[{"ref2211", "-", 
  RowBox[{"csmXLam", "[", 
   RowBox[{"{", 
    RowBox[{"2", ",", "2", ",", "1", ",", "1"}], "}"}], "]"}]}]], "Input",
 CellChangeTimes->{{3.801138043577608*^9, 3.80113805412545*^9}}],

Cell[BoxData["0"], "Output",
 CellChangeTimes->{3.801138054701275*^9}]
}, Open  ]]
},
WindowSize->{740, 655},
WindowMargins->{{12, Automatic}, {Automatic, 24}},
FrontEndVersion->"9.0 for Mac OS X x86 (32-bit, 64-bit Kernel) (November 20, \
2012)",
StyleDefinitions->"Default.nb"
]
(* End of Notebook Content *)

(* Internal cache information *)
(*CellTagsOutline
CellTagsIndex->{}
*)
(*CellTagsIndex
CellTagsIndex->{}
*)
(*NotebookFileOutline
Notebook[{
Cell[CellGroupData[{
Cell[579, 22, 3405, 92, 369, "Input"],
Cell[3987, 116, 470, 10, 58, "Message"]
}, Open  ]],
Cell[4472, 129, 273, 9, 5, "Text"],
Cell[4748, 140, 5089, 136, 488, "Input"],
Cell[9840, 278, 271, 9, 8, "Text"],
Cell[10114, 289, 6112, 160, 454, "Input"],
Cell[16229, 451, 271, 9, 8, "Text"],
Cell[16503, 462, 4631, 120, 369, "Input"],
Cell[21137, 584, 273, 9, 5, "Text"],
Cell[21413, 595, 3740, 95, 335, "Input"],
Cell[25156, 692, 271, 9, 8, "Text"],
Cell[25430, 703, 6312, 165, 386, "Input"],
Cell[31745, 870, 273, 9, 5, "Text"],
Cell[32021, 881, 8347, 219, 658, "Input"],
Cell[40371, 1102, 271, 9, 8, "Text"],
Cell[40645, 1113, 1899, 50, 199, "Input"],
Cell[42547, 1165, 3558, 108, 335, "Input"],
Cell[46108, 1275, 18692, 473, 1661, "Input"],
Cell[64803, 1750, 271, 9, 8, "Text"],
Cell[CellGroupData[{
Cell[65099, 1763, 283, 7, 28, "Input"],
Cell[65385, 1772, 301, 7, 28, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[65723, 1784, 193, 4, 28, "Input"],
Cell[65919, 1790, 3928, 102, 128, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[69884, 1897, 4221, 119, 199, "Input"],
Cell[74108, 2018, 3932, 102, 128, "Output"]
}, Open  ]],
Cell[CellGroupData[{
Cell[78077, 2125, 223, 5, 28, "Input"],
Cell[78303, 2132, 70, 1, 62, "Output"]
}, Open  ]]
}
]
*)

(* End of internal cache information *)