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. cheers, David _______________________________________________ Numpy-discussion mailing list Numpy-discussion@scipy.org http://mail.scipy.org/mailman/listinfo/numpy-discussion