我什么时候需要在Chapel稀疏矩阵中包含LayoutCS?

时间:2018-01-31 18:55:12

标签: sparse-matrix chapel

我无法隔离,但有时候因为不包括

而收到错误
use LayoutCS;

当我

use LinearAlgebra.Sparse;

在教堂里。我什么时候需要包含它以及我还有其他选择?

1 个答案:

答案 0 :(得分:2)

  

我什么时候需要加入它?

如果使用dmapped子句显式构造压缩的稀疏稀疏域,则必须

LayoutCS

var spsD: sparse subdomain(D) dmapped CS();
如果您使用更高级别的线性代数接口来完成同样的事情,

LinearAlgebra.Sparse是必要的:

var spsD = csrDomain(D);
  

我还有其他选择吗?

从Chapel 1.16开始,LinearAlgebra.Sparse仅支持CSR数组,因此使用LayoutCS可以让您在需要时使用CSC数组:

var spsD: sparse subdomain(D) dmapped CS(compressRows=false);

您也可以使用COO的默认稀疏格式,而无需使用任何模块:

var spsD: sparse subdomain(D);

有关更多示例,请参阅sparse primer