稀疏矩阵的存储格式 之 CSRCSC

xiaoxiao2022-06-12  31

R是Row,C是Column 以csr为演示 [img]http://zsp.iteye.com/upload/picture/pic/25643/ade3dc1b-a7d9-3b4b-a5d9-1ac4f617ed01.jpg[/img] I中每一个元素代表一行,其数值代表该行从J中哪个元素开始.J是列号了 空间 2*nnz+n(因为I==行数,J==2*nnz),nnz是非0元素个数 http://www.cs.utk.edu/~dongarra/etemplates/node373.html 然后可以看看下面的代码有什么bug,我还没有高兴看:)但是一定是有bug的... template <typename T> static void gf_spmat_get_data(gmm::csc_matrix_ref<const T*, const unsigned int *, const unsigned int *> M, getfemint::mexargs_out& out, int which) { size_type nz = M.jc[M.nc]; if (which == 0) { iarray w = out.pop().create_iarray_h(unsigned(M.nc+1)); for (unsigned i=0; i < M.nc+1; ++i) { w[i] = M.jc[i] + config::base_index(); } if (out.remaining()) { w = out.pop().create_iarray_h(unsigned(nz)); for (unsigned i=0; i < nz; ++i) { w[i] = M.ir[i] + config::base_index(); } } } else { garray<T> w = out.pop().create_array_h(unsigned(nz), T()); for (unsigned i=0; i < M.nc+1; ++i) { w[i] = M.pr[i]; } } }
转载请注明原文地址: https://www.6miu.com/read-4933500.html

最新回复(0)