[SciPy-Dev] Python bindings for KLU
Sun Mar 18 07:16:28 CDT 2012
On Sun, Mar 18, 2012 at 11:01 AM, Robert Cimrman <email@example.com> wrote:
> On 03/18/2012 11:12 AM, Nathaniel Smith wrote:
>> On Sun, Mar 18, 2012 at 1:08 AM, Richard Lincoln<firstname.lastname@example.org> wrote:
>>> On 17 March 2012 20:36, Nathaniel Smith<email@example.com> wrote:
>>>> On Mar 17, 2012 5:21 PM, "Richard Lincoln"<firstname.lastname@example.org> wrote:
>>>>> Hello SciPy-Dev,
>>>> Hi Richard,
>>>>> I am working on a distribution system simulator in Python. I would
>>>>> like to use KLU to solve sparse sets of complex linear equations.
>>>>> What would you recommend I use to create Python bindings for this C
>>>>> library? I don't have any experience with this and there seem to be
>>>>> several options available. If you could point me towards any good
>>>>> examples of similar bindings, that too would be very greatly
>>>> I'd suggest using Cython for bindings, and taking a look at scikits.sparse:
>>>> It has quite complete Cython bindings for CHOLMOD:
>>>> Not only does this give an example of using Cython to work with sparse
>>>> matrices and Tim Davis' code, there's a fair amount of infrastructure
>>>> that can probably be re-used -- I believe that KLU relies on CHOLMOD's
>>>> data structures for basic sparse matrix tasks. If you'd like to
>>>> contribute your work to scikits.sparse, then we can factor this out
>>>> into shared code.
>>> Thank you for the advice Nathaniel. Unfortunately, my project has a
>>> BSD license and scikits-sparse uses the GNU GPL. However, I found
>>> scikits-umfpack by Robert Cimrman.
>>> It uses SWIG and shouldn't take much effort to adapt.
>> I'm happy to release my wrapper code under the BSD; I just haven't
>> bothered since CHOLMOD itself is GPLed. I can't see where Robert put a
>> license on that UMFPACK wrapper, but it's in exactly the same
>> situation -- UMFPACK is also GPLed.
> Yes, it's the same situation. I have BSDed the wrappers as they were
> originally a part of scipy (this is now deprecated). It would be great
> if you relicensed your wrappers under the BSD, see below.
>> I do also see that I was confused, and KLU doesn't depend on CHOLMOD
>> (I was thinking of SuiteSparseQR). I do think you might still prefer
>> to look at the CHOLMOD wrapper, both because people seem to prefer
>> Cython to SWIG and because KLU and CHOLMOD seem to use very similar
>> APIs, but of course it's up to you.
>> I do think it would be nice if we could find a way to make your
>> wrapper more generally available, and the idea of scikits.sparse is to
>> try and gather up such code so people can find it. So if you have any
>> thoughts on how we could make that work, I can be flexible :-).
> I have written the umfpack wrappers a long time ago (no cython then) -
> now I would have used definitely cython - I use it now in my projects
> too. Ideally, I would prefer to have all Tim Davis code wrappers in one
> place (scikits.sparse), BSD licensed, and in cython. Then the wrappers
> could be easily bundled with other BSD-licensed codes.
> It should not be difficult to adapt the umfpack wrapper code, but I
> cannot do it in the next couple of weeks (several article deadlines).
> Later I would be happy to devote some care... Just my two 0.01CZK.
I made a start at writing a scikits.sparse-style Cython wrapper for
UMFPACK in a branch here:
Not finished, but it might be a useful starting point for whoever next
picks this up.
More information about the SciPy-Dev