[R] For Loop

Jeff Newmiller jdnewm|| @end|ng |rom dcn@d@v|@@c@@u@
Sun Sep 23 22:03:42 CEST 2018


On Sun, 23 Sep 2018, Duncan Murdoch wrote:

> On 23/09/2018 3:31 PM, Jeff Newmiller wrote:
>
> [lots of good stuff deleted]
>
>> Vectorize is
>> syntactic sugar with a performance penalty.
>
> [More deletions.]
>
> I would say Vectorize isn't just "syntactic sugar".  When I use that term, I 
> mean something that looks nice but is functionally equivalent.
>
> However, Vectorize() really does something useful:  some functions (e.g. 
> outer()) take other functions as arguments, but they assume the argument is a 
> vectorized function.  If it is not, they fail, or generate garbage results. 
> Vectorize() is designed to modify the interface to a function so it acts as 
> if it is vectorized.
>
> The "performance penalty" part of your statement is true.  It will generally 
> save some computing cycles to write a new function using a for loop instead 
> of using Vectorize().  But that may waste some programmer time.
>
> Duncan Murdoch
> (writing as one of the authors of Vectorize())
>
> P.S. I'd give an example of syntactic sugar, but I don't want to bruise some 
> other author's feelings :-).

Perhaps my writing needs some syntactic sugar: inefficient looping 
algorithms can make sense when the calculations performed in each 
iteration are long and/or involve large amounts of data. As I mentioned 
earlier in this thread I use for loops fairly often, and I use other 
inefficient syntactic sugar as well but only to organize large 
blocks of already-vectorized (lowercase) calculation units.

In addition to the potential for inefficient use of programmer time, 
vectorizing code increases the maximum amount of memory used during 
execution of your program. A for loop is one simple way to allow memory 
re-use so really large problems can be solved with limited resources, and 
some syntactic sugar such as Vectorize can make it easier to keep track of 
those for loops.

---------------------------------------------------------------------------
Jeff Newmiller                        The     .....       .....  Go Live...
DCN:<jdnewmil using dcn.davis.ca.us>        Basics: ##.#.       ##.#.  Live Go...
                                       Live:   OO#.. Dead: OO#..  Playing
Research Engineer (Solar/Batteries            O.O#.       #.O#.  with
/Software/Embedded Controllers)               .OO#.       .OO#.  rocks...1k




More information about the R-help mailing list