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. >>> >>>
