Given that SuiteSparse.jl is a package and not part of base Julia, it 
doesn't have to meet the quality standards that code contributed to Base 
usually would. Publicly posted code (with a license or agreement to 
contribute under an existing license) is better than nothing, and the 
maintainers of that package can decide what quality bar it would have to 
meet - in terms of tests and documentation, which is what I assume you mean 
- before merging it. Even just an open pull request would serve as a 
starting point for discussion to see who else would be interested.


On Friday, August 5, 2016 at 4:12:17 PM UTC-7, [email protected] wrote:
>
> Tony,
>
> I would be happy to share my prototypes for these wrappers with you or 
> anyone else, but I would not be interested in implementing and testing 
> library versions of them.  This was the point of my first posting.  It's 
> not clear to me who would be interested in that thankless and 
> time-consuming task.  Just like you, I have a "day job"!
>
> -- Steve
>
>
> On Friday, August 5, 2016 at 6:11:45 PM UTC-4, Tony Kelman wrote:
>>
>> 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