[SciPy-Dev] Python bindings for KLU
Sun Mar 18 06:01:54 CDT 2012
On 03/18/2012 11:12 AM, Nathaniel Smith wrote:
> On Sun, Mar 18, 2012 at 1:08 AM, Richard Lincoln<email@example.com> wrote:
>> On 17 March 2012 20:36, Nathaniel Smith<firstname.lastname@example.org> wrote:
>>> On Mar 17, 2012 5:21 PM, "Richard Lincoln"<email@example.com> 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.
More information about the SciPy-Dev