[Python-talk] Generator Question

bruce.labitt at autoliv.com bruce.labitt at autoliv.com
Wed Aug 12 11:41:10 EDT 2009


python-talk-bounces at dlslug.org wrote on 08/12/2009 10:41:18 AM:

> I have a couple questions on generators.  I have a requirement to 
> synthesize a complicated (and complex) waveform.  I have been able to 
> construct it using concatenation of arrays.  A problem arises when the 
> arrays are very large - they fill my memory.  I have already maxed out 
my 
> RAM on this machine (8GB), so I am looking to break up the problem into 
> chunks.  This is similar to what I needed to do in my FFT engine that I 
> wrote using FFTW.
> 
> Anyways, here are the questions:
> 1. Can a generator output an array instead of a single value at every 
> call?
> 2. It is my understanding that once a generator has 'finished' the 
output 
> is null?  Is that true?
> 3. Can a generator be reset or restarted?  How?
> 

Happens every time...  OK, answers are:
1. Yes.
2. Nope, one gets a StopIteration exception.
3. Beazley gives an example.  For my case, I don't think I need to reset. 
I just need to call the generator again...


> To give a context to my questions...
> 
> I'm intending to run an optimizer/search algorithm that finds the 
> sequences that satisfy a power condition.  It appears there are a few 
> choices that might work in scipy.optimize.  (Actually, the scipy package 

> is VERY COOL.  Check it out if you ever have to do any number crunching. 

> Lots of optimized code, syntax is a lot like matlab, and unlike matlab, 
it 
> is quite free.)
> 
> The power condition is calculated by computing FFTs of the generator 
> output.  The generator will be required to make say 100 arrays.  Once 
all 
> 100 arrays have been FFT'd, and the power computed, the optimizer will 
> make a decision as to how to change the sequence to get the desired 
power 
> output.  The generator will be reset and asked to use a new sequence as 
> its input.   Wash, lather, repeat until done...  I can tell that this is 

> going to be fun to debug...
> 
> OK, I'm asking for it now...  Is this an OK approach?  Or am I out in 
the 
> weeds again?  I am bracing myself now...
> 

A sanity check would be good on the above. 

Nevermind on the request below.  :-#

> Oh yeah, if someone could answer the specific questions, that would be 
> good too ;)
> 
> I have read David Beazley's "Generator Tricks for Systems Programmers" 
> www.dabeaz.com/generators although I have yet to absorb it all.
> 
> Be gentle...
> 
> Thanks for all your suggestions (and corrections) todate, they have been 

> very helpful!
> 
> Bruce
> 


******************************
Neither the footer nor anything else in this E-mail is intended to or constitutes an <br>electronic signature and/or legally binding agreement in the absence of an <br>express statement or Autoliv policy and/or procedure to the contrary.<br>This E-mail and any attachments hereto are Autoliv property and may contain legally <br>privileged, confidential and/or proprietary information.<br>The recipient of this E-mail is prohibited from distributing, copying, forwarding or in any way <br>disseminating any material contained within this E-mail without prior written <br>permission from the author. If you receive this E-mail in error, please <br>immediately notify the author and delete this E-mail.  Autoliv disclaims all <br>responsibility and liability for the consequences of any person who fails to <br>abide by the terms herein. <br>
******************************


More information about the Python-talk mailing list