Re: dynamic nested loops
- To: mathgroup at smc.vnet.net
- Subject: [mg122851] Re: dynamic nested loops
- From: Bob Hanlon <hanlonr357 at gmail.com>
- Date: Sat, 12 Nov 2011 07:35:17 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- References: <201111110956.EAA08550@smc.vnet.net>
The form is Sum[f, Evaluate[Sequence@@iterators]]
n = 3;
iterators = Table[{i[m], 0, n - Sum[i[k], {k, m - 1}]}, {m, n}]
{{i[1], 0, 3}, {i[2], 0, 3 - i[1]}, {i[3], 0, 3 - i[1] - i[2]}}
Sum[f @@ Array[i, n], Evaluate[Sequence @@ iterators]]
f[0, 0, 0] + f[0, 0, 1] + f[0, 0, 2] + f[0, 0, 3] + f[0, 1, 0] +
f[0, 1, 1] + f[0, 1, 2] + f[0, 2, 0] + f[0, 2, 1] + f[0, 3, 0] +
f[1, 0, 0] + f[1, 0, 1] + f[1, 0, 2] + f[1, 1, 0] + f[1, 1, 1] +
f[1, 2, 0] + f[2, 0, 0] + f[2, 0, 1] + f[2, 1, 0] + f[3, 0, 0]
% == Total[f @@@ Select[Tuples[Range[0, n], n], Total[#] <= n &]]
True
Bob Hanlon
On Fri, Nov 11, 2011 at 4:56 AM, Ron <ragove at verizon.net> wrote:
> i need to perform nested sums such as Sum[f, {i,imin,imax},{j, jmin, jmax}, ...{}]. In each nest the new index is a function of the previous and the max values vary. Also at the beginning I do not know how long a nest I need. I can't come up with anything that works. I could construct a list {{i,imin,imax},{j, jmin, jmax}, ...{}} but "Sum" doen't know what to do with the outside braces{...}.
> ANy suggestions would be much appreciated.
>
- References:
- dynamic nested loops
- From: Ron <ragove@verizon.net>
- dynamic nested loops