I need to multiply a symmetric sparse matrix by a vector and I would like to use the subroutine mkl_dcsrsymv . The upper triangle of the sparse matrix is stored in a CSR format (row major, 3 arrays). However, the elements in the array columns (ja) are not placed in the order in which the associated values occur in the row.
I know that the order is required for MKL Pardiso, but is it also the case for the subroutine mkl_dcsrsymv? Are unordered columns within a row allowed? What are the consequences?
In advance thank you.
For sparse symmetric matrix calculation, The CSR format could only save up-triangular part to calculate. It is called DSS Symmetric Matrix Storage ,you could refer similar structure format for PARDISO. The csrsymv could also use with DSS symmetric format.
You are correct in the fact that pardiso use ordered csr format. By the way spblas routine have not such restriction so you can use not ordered arrays. Also i recommend you to use new spblas API for your operation - in general it perform better