Gael Varoquaux wrote:
On Thu, Oct 25, 2007 at 04:16:06PM -0700, Mathew Yeates wrote:
Anybody know of any tricks for handling something like
z[0]=1.0 for i in range(100): out[i]=func1(z[i]) z[i+1]=func2(out[i])
Something like:
z[0] = 1. out = func1(z) z[1:] = func2(out[:-1])
No, that doesn't work. The way you have it, for each i>0, z[i] = func2(func1(0)) What Matthew wants is this z[0] = 1.0 z[1] = func2(func1(1.0)) z[2] = func2(func1(func2(func1(1.0)))) ... I'm afraid that there is no fast, elegant way to do this. If you could turn func2(func1(x)) into a binary ufunc f(x, y) with an ignored y, then you could call f.accumulate(z). However, if that ufunc is not implemented in C, there's not much point. -- Robert Kern "I have come to believe that the whole world is an enigma, a harmless enigma that is made terrible by our own mad attempt to interpret it as though it had an underlying truth." -- Umberto Eco