On Wed, 28 May 2003, Michael McGonagle wrote:
Hello all,
I am looking for an object that will create any number of "embedded" iterators. The best analogy would be having a bunch of embedded "for" loops, like this:
for (i = i_init; i < i_limit; i += i_inc) for (j = j_init; j < j_limit; j += j_inc) doSomething();
I have created an abstraction that acts as a single loop, and I am using "until" to control the loops iterations. I would like to be able to not use "until" as this forces a restriction of making sure that all operations be performed within the same "time-interval" as all others. I would like to be able to send a single bang to the "top of the loop", and have it output the next set of iterators. For example
[iterator 0 10 1 100 1000 100]
banging on the iterator would produce the follow excerpt:
0 100 0 200 ...etc 0 1000 1 100 1 200 ...etc
Is there an external that does something like this?
Doing things like this is nice with my k_cext external: http://www.notam02.no/~kjetism/pd/bin/
The following patch does what you want:
#N canvas 56 333 589 504 10; #X obj 73 309 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -262144 -1 -1 10 256; #X obj 297 311 nbx 5 14 -1e+37 1e+37 0 0 empty empty empty 0 -6 0 10 -262144 -1 -1 1000 256; #X msg 59 36 bang; #X obj 60 115 k_cext 7 2 0 0 10 1 100 1000 100 ; int i , j ; for(i=I(1) SC i<=I(2) SC i+=I(3)) BEGIN ; . for(j=I(4) SC j<=I(5) SC j+=I(6)) BEGIN ; . . O0(i) ; . . O1(j) ; . END ; END ;; #X connect 2 0 3 0; #X connect 3 0 0 0; #X connect 3 1 1 0;