I was looking to find a way to perform a symmetric sparse matrix - matrix multiplication: X = A B where the sparse matrix A was previously stored in CSR3 format (upper triangular), while the matrix B is a dense non-symmetric matrix. Is there a routine inside the MKL libraries to do it? or do they all need the full sparse matrix in CSR format (to get the handle from) instead of the triangular one (I built the triangular matrix because I need to use it in MKL Pardiso)? I know about the mkl_sparse_d_mv(...) routine, but I couldn't find a way to get the sparse matrix handle from a symmetric sparse matrix previously stored like an upper triangular matrix in CSR format. thank you in advance, Daniele
3 Answers
0
votes
0
votes
In most cases you can easily feed a CSR3-stored matrix into sparse_d_create_csr
by passing appropriately offset pointers to your row index for pointerB and pointerE.
You can then tell mkl_sparse_d_mm
the sparse matrix is triangular and you'd like it to be filled (I have never done this and can't promise that it works).