On Sun, May 31, 2009 at 7:18 PM, David Cournapeau < da...@ar.media.kyoto-u.ac.jp> wrote:
> Charles R Harris wrote: > > > > > > On Sun, May 31, 2009 at 11:54 AM, rob steed <rjst...@talk21.com > > <mailto:rjst...@talk21.com>> wrote: > > > > > > Hi, > > After my previous email, I have opened a ticket #1117 (correlate > > not order dependent) > > > > I have found that the correlate function is defined in > > multiarraymodule.c and > > that inputs are being swapped using the following code > > > > n1 = ap1->dimensions[0]; > > n2 = ap2->dimensions[0]; > > if (n1 < n2) { > > ret = ap1; > > ap1 = ap2; > > ap2 = ret; > > ret = NULL; > > i = n1; > > n1 = n2; > > n2 = i; > > } > > > > I do not know the code well enough to see whether this could just > > be removed (I don't know c either). > > Maybe the algorithmn requires the inputs to be length ordered? I > > will try to work it out. > > > > > > If the correlation algorithm doesn't use an fft and is done > > explicitly, then the maximum overlap for any shift is the length of > > the shortest input. Swapping the arrays makes that logic easier to > > implement, but it isn't necessary. > > But this logic is also wrong if the swapping is not taken into account - > as the OP mentioned, correlate(a, b) is not equal to correlate(b, a) in > the general case. The output is reversed in the second case compared to > the first case. > I didn't say it was *correctly* implemented ;) Chuck
_______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion