浙江省高等学校教师教育理论培训

微信搜索“毛凌志岗前心得”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

稀疏矩阵的存储格式 之 CSR/CSC - 张沈鹏,在路上... - ITeye技术网站

R是Row,C是Column



以csr为演示







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 <
posted on 2012-03-16 02:03  lexus  阅读(1642)  评论(0编辑  收藏  举报