MathGroup Archive 2008

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Getting rid of those deprecated Do[] loops?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg92778] Re: [mg92763] Getting rid of those deprecated Do[] loops?
  • From: Bob Hanlon <hanlonr at cox.net>
  • Date: Mon, 13 Oct 2008 06:17:51 -0400 (EDT)
  • Reply-to: hanlonr at cox.net

n = 100; m = 100;

data1 = {};
Timing[Do[
   Do[data1 = AppendTo[data1, {aa, bb, xx, yy}], {bb, 10, m, 
     10}], {aa, 1, n}];]

{0.03825,Null}

Timing[data2 = 
   Table[{aa = kk[[1]]; bb = kk[[2]]; aa, bb, xx, yy}, {kk, 
     Flatten[Outer[{#1, #2} &, Range[n], Range[10, m, 10]], 1]}];]

{0.003871,Null}

Timing[data3 = 
   Flatten[Outer[{#1, #2, xx, yy} &, Range[n], Range[10, m, 10]], 
    1];]

{0.00092,Null}

data1 == data2 == data3

True


Bob Hanlon

---- AES <siegman at stanford.edu> wrote: 

=============
Trying to think of a "two-variable iterator" approach that will let one 
produce the same results as

data = { };
Do[
   Do[
      data = AppendTo[data, {aa, bb, xx, yy}], 
      {bb, 10, 30, 10}], 
   {aa, 1, 2}];  
Print[data // TableForm];

without using those universally deprecated (and even worse, nested) 
Do[ ] loops, not to mention the equally deprecated AppendTo[].

Somewhat to my surprise, the construction

Table[{aa = kk[[1]];  bb = kk[[2]];  aa, bb, xx, yy}, 
          {kk,  {{1, 10},  {1, 20},  {1, 30},  {2, 10},  {2, 20}, 
{2,30}}}
          ] // TableForm

using a two-dimensional iterator iterator variable kk, actually does 
this, though the "iterator list" is obviously a bit messy.

Simpler way of defining an iterator to do this?  In more than two 
iterator dimensions (aa, bb, cc,...)?  (with no functional dependence 
between the values of aa, bb, cc).

Is the concept of a multi-dimensional iterator variable kk mentioned in 
the M6 documentation anywhere?  (A search on "Iterate" or "iteration" 
brings up 193 hits at 10 per screen.)


--

Bob Hanlon



  • Prev by Date: Re: Getting rid of those deprecated Do[] loops?
  • Next by Date: Re: Inconsistent syntax for Row and Column?
  • Previous by thread: Re: Getting rid of those deprecated Do[] loops?
  • Next by thread: Re: Getting rid of those deprecated Do[] loops?