On Wednesday, July 9, 2014 11:41:59 AM UTC-5, Eduardo Lenz wrote:
>
> Thank you.
> I just thought that, as Julia uses UMFPACK to solve it, one can just 
> inform UMFPACK that the matrix is symmetric (UMFPACK 4.1> can handle this 
> kind of matrix). Off course, it does not addresses other types of 
> operations, like for example matrix products.
>
> But again, thank you for this amazing software. 
>

Julia uses CHOLMOD for factoring positive semidefinite symmetric matrices. 
 The CHOLMOD representation of sparse matrices does allow for specification 
of symmetry according to an Int value (-1 for symmetric stored in lower 
triangle, 0 for non-symmetric, +1 for symmetric stored in the upper 
triangle).  Unlike the unpacked symmetric form for dense matrices, the 
sparse symmetric form really does save storage when only one triangle needs 
to be kept - although not as much as you may think because the full set of 
column pointers is still required.

Checking for symmetry on a sparse matrix usually involves creating its 
transpose to evaluate A' == A.  The transpose operation is relatively fast 
but still not negligible and does involve creating a matrix of the same 
size as the original.  Having a sparse symmetric subtype would help avoid 
this at the expense of requiring special methods to operate on it.  Of 
course there is the possibility of using existing methods applied to 
full(A) which is the expansion of the single-triangle representation to the 
full sparse matrix and forgetting that it is symmetric.

Definitely worth exploring.  If anyone wants to look at it I would suggest 
doing so in a package under the JuliaSparse organization.  

Reply via email to