Burcin Erocal wrote: > Hi, > > On Thu, 26 Mar 2009 09:31:09 -0700 (PDT) > Patrick <[email protected]> wrote: > >> I'd like to count the iterations of a loop nest by evaluating a sum. >> Consider the following loop nest: >> >> for (k = 0; k < N; k++) >> for (i = k+1; i < N; i++) >> for (j = k+1; j <= i; j++) >> ... >> >> I'd like to count the total number of iterations of that loop nest. >> I've used mathematica a bit, and you could solve this problem with >> something like this: >> >> Sum[1, {k, 0, N}, {i, k+1, N}, {j, k+1, i-1}] >> >> The result should be in terms of N. For this loop nest the closed >> form is: >> >> 1 / 6 * (1 + N) * (N^2 - N) >> >> I've been trying to figure out how to do this sort of problem in Sage, >> but I have been unsuccessful. Any help would be greatly appreciated. > > Unfortunately Sage doesn't have native code to find closed forms for > sums at the moment. You will have to use maxima directly to solve this > problem. >
You can use maxima as illustrated in William's message here: http://groups.google.com/group/sage-support/browse_thread/thread/45849ec99438bbac/008b4a34dbf72cf6 sage: a=maxima('sum(sum(sum(1,j,k+1,i-1), i, k+1, N), k, 0, N), simpsum').sage() sage: a (2*N^3 + 3*N^2 + N)/12 - (N^3 + N^2)/2 + (N^2 + N)/4 + N^2*(N + 1)/2 - N*(N + 1)/2 sage: a.simplify_full() (N^3 - N)/6 Jason --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/sage-support URLs: http://www.sagemath.org -~----------~----~----~----~------~----~------~--~---
