[SciPy-Dev] Enhancements to scipy.spatial.cKDTree
Fri Jul 13 02:09:18 CDT 2012
On Fri, Jul 13, 2012 at 1:34 AM, Patrick Varilly <email@example.com>wrote:
> Alright, I've uploaded the last bit of cKDTree that was missing for it to
> be functionally equivalent to KDTree. As it stands, I think it's a useful
> addition in its own right, so it would be nice if someone else could look
> the code over and see if it can be merged in.
> Over the coming weeks, I will look into the issues that Sturla has brought
> up and see if I can make some progress on these.
Please note that memoryviews can't be used yet in scipy due them not
working with python 2.4 (see https://github.com/numpy/numpy/pull/307). All
the other things Sturla mentioned do sound like improvements that can be
> All the best,
> On Thu, Jul 12, 2012 at 5:42 PM, Sturla Molden <firstname.lastname@example.org> wrote:
>> On 12.07.2012 00:26, Patrick Varilly wrote:
>> > On Tue, Jul 10, 2012 at 12:01 PM, Sturla Molden <email@example.com
>> > <mailto:firstname.lastname@example.org>> wrote:
>> > At least cKDTree have to be fixed, it will break as soon as the
>> move to
>> > PyArray_DATA is mandatory.
>> > Preferably we should use Cython memoryviews and multidimensional
>> > in the code, instead of just C pointer artithmetics (which is
>> harder to
>> > understand). That will make the Cython code more readable to NumPy
>> > users.
>> > The GIL issue should also be fixed, as searching might take a while.
>> > I'm relatively new to Cython. Could you tell me where I could read up
>> > on these issues?
>> The main issue is the use of the .data attribute. See here:
>> Another is that Cython's ndarray interface is (more or less) deprecated
>> in favour of typed memoryviews:
>> So preferably the cKDTree code should use these, but I my experience
>> they can generate compile-time warnings.
>> There is also a 64-bit issue with cKDTree if I remember correctly. And
>> the only dtype it supports is float64. We should replace the current
>> pointer artimetics with multidimensional arrays. It had (or still has)
>> non-portable code like dependency on unions and binary layout (tree and
>> heap nodes). And there the issue of making it release the GIL whenever
>> it should. So several things needs be fixed.
>> SciPy-Dev mailing list
> SciPy-Dev mailing list
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the SciPy-Dev