Those all sound useful and would be worth contributing to the 
SuiteSparse.jl package if you'd like to do that.


On Friday, August 5, 2016 at 3:07:14 PM UTC-7, [email protected] wrote:
>
> Tony,
>
> Here are a few Julia routines sparse matrix routines that I looked for and 
> didn't find.  Maybe I looked in the wrong place.
>
> - Getting the P'*L factor from SuiteSparse's sparse Cholesky back into 
> Julia.  In other words, if F is the cholmod representation of the Cholesky 
> factor, then sparse(F[:L]) works to retrieve the L factor, but 
> sparse(F[:PtL]) does not work to retrieve P'*L (so I wrote my own wrapper).
>
> - A general routine for computing a null vector.  So I wrote my own, based 
> on the squeezed SuiteSparse QR factorization.  (See the next item.)
>
> - A routine to extract the squeezed R factor from the SuiteSparse QR 
> factorization.  I wrote a wrapper for this.
>
> All of this functionality is built into Matlab.
>
> -- Steve
>
>
>
> On Friday, August 5, 2016 at 5:54:24 PM UTC-4, Tony Kelman wrote:
>>
>> > Furthermore, the exposed APIs give the Julia programmer significantly 
>> fewer capabilities than the sparse matrix suite of Matlab.
>>
>> Like what? There is a SuiteSparse.jl package under the JuliaSparse 
>> organization that currently has a handful of routines (Julia ports) but 
>> will be the home as more of the bindings gradually get migrated there, and 
>> out of base Julia. The long-term plan is to be less reliant on SuiteSparse 
>> as the only option, and instead to come up with a more general interface 
>> that multiple different solver packages could plug into. Outside of base 
>> Julia, a SuiteSparse.jl package would be more flexible to wrap as much of 
>> the SuiteSparse API as its contributors and maintainers choose.
>>
>>
>> On Friday, August 5, 2016 at 2:17:09 PM UTC-7, [email protected] wrote:
>>>
>>> Sparse matrix computation is a key aspect of scientific computing.  The 
>>> creators of Julia made the smart decision to rely on SuiteSparse, 
>>> high-quality free C++ software that carries out most of the common sparse 
>>> matrix factorizations and related operations very efficiently.
>>>
>>> The issue that concerns me is that the wrappers in Julia, namely, 
>>> cholmod.jl, spqr.jl and umfpack.jl, expose only a small fraction of 
>>> SuiteSparse's capabilities.  Furthermore, the exposed APIs give the Julia 
>>> programmer significantly fewer capabilities than the sparse matrix suite of 
>>> Matlab.
>>>
>>> And the reason for this limitation has become clear to me over the past 
>>> few days as I tried to develop a routine to find a right null vector of a 
>>> sparse matrix using SuiteSparse: it is difficult and tedious to write Julia 
>>> wrappers for the routines in SuiteSparse.  Even figuring out whether a 
>>> particular variable is an Int32 or Int64 requires poring over SuiteSparse's 
>>> nested header files full of conditional platform-dependent compilation 
>>> directives.  And my resulting wrapper works only on one platform for one 
>>> version of Julia and one version of SuiteSparse.  It is clear that whoever 
>>> wrote cholmod.jl, spqr.jl and umfpack.jl put a lot of time and painstaking 
>>> effort into getting these interfaces correct.
>>>
>>> And this raises a question: will Julia ever fully incorporate 
>>> SuiteSparse?  Will its sparse matrix capabilities ever approach Matlab's? 
>>>  Who will take the time to write, test and maintain cross-platform Julia 
>>> wrappers for SuiteSparse?  This is a tedious job that carries little glory 
>>> - I certainly would not want to do it!  And yet sparse matrix computation 
>>> is so important.
>>>
>>>

Reply via email to