0
$\begingroup$

I would like to write a code to evaluate the following (up to $N=20$)

$\sum_{s_1,...,s_N=\pm 1;s_1 \cdot \cdot \cdot s_N=1}\sum_{\sigma\in S_N}\prod_{i=1}^N x_{\sigma(i)}^{s_i \lambda_i}$

There are several discussions on here which tell me how to perform such a computation provided all the i's were permuted. However I do not know how to deal with this case.

$\endgroup$
2
  • 2
    $\begingroup$ Why? What will you learn? For N = 20, the number of different permutations is larger than 2*10^18. Multiply that by 2^19 to get all the sums over the s[i] and you got yourself a waiting game. $\endgroup$ Commented Feb 5, 2018 at 15:10
  • $\begingroup$ By itself this doesn't teach me anything. It is part of a slightly more complicated function involving another variable t. I am aware of the combinatoric nightmare here and maybe N=20 is too much to ask, but if I can even look at the expansion to first order in t for example it will be useful as the x's are expected to form characters of some representation of a Lie group, which tell me about the symmetry of the problem I am looking at. What about N=6? Is this possible? Thanks $\endgroup$ Commented Feb 6, 2018 at 4:31

1 Answer 1

1
$\begingroup$

Maybe this?

bigSum[lambdalist_List] :=
 Block[{n, slist, sn, sigmalist, xlist},
  n = Length[lambdalist];

  slist = Tuples[{-1, 1}, n - 1];
  sn = Times @@@ slist;
  slist = Transpose[Append[Transpose[slist], sn]];

  sigmalist = Permutations[Range[n]];

  Sum[
   xlist = x /@ sigma;
   Sum[
    (Times @@ (xlist^(s*lambdalist)))
    , {s, slist}
    ]
   , {sigma, sigmalist}
   ]
  ]

It takes 0.25 s to run bigSum[Range[6]], which is when $N=6$, $\lambda_i = i$.

$\endgroup$
1
  • $\begingroup$ This does it! Thank you :) $\endgroup$ Commented Feb 7, 2018 at 7:11

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.