礼拜堂简陋的微妙之处
On the Subtleties of Sparseness in Chapel
给定一个密集域dom: domain(n);
,其中n < 3,声明sps1: sparse subdomain(dom);
产生一个dom
的稀疏子域sps1
].使用 sps1
通常的 array/matrix 切片是可能的。也就是说,给定一个矩阵 A: [sps1]
,可以取 A
的 n - 1 维切片。但是,通常的矩阵运算transpose()
不适用
在另一个稀疏子域 sps2 = CSRDomain(dom)
上定义第二个矩阵 B:[sps2]
使人能够使用 B
的 transpose()
,但能够切入 B
被没收。
这两种能力似乎都是人们应该始终拥有的能力。有没有更好的方法来声明保留两者的稀疏子域?
Is there a better way to declare sparse subdomains that preserves the two?
我认为您只是遇到了 Chapel 1.16.0 当前实施的一个缺点。
COO
稀疏数组和域,语言的默认稀疏分布,使用 sps1: sparse subdomain(dom)
创建,在 LinearAlgebra.Sparse
模块中尚不支持,因此没有 library-supported转置。
CSR
稀疏数组和域,LinearAlgebra
的默认(且仅支持)稀疏分布,使用 sps2 = CSRDomain(dom)
创建,尚不支持切片。
有一天,随着稀疏数组和线性代数功能的进一步发展,这两者都将成为可能。
给定一个密集域dom: domain(n);
,其中n < 3,声明sps1: sparse subdomain(dom);
产生一个dom
的稀疏子域sps1
].使用 sps1
通常的 array/matrix 切片是可能的。也就是说,给定一个矩阵 A: [sps1]
,可以取 A
的 n - 1 维切片。但是,通常的矩阵运算transpose()
不适用
在另一个稀疏子域 sps2 = CSRDomain(dom)
上定义第二个矩阵 B:[sps2]
使人能够使用 B
的 transpose()
,但能够切入 B
被没收。
这两种能力似乎都是人们应该始终拥有的能力。有没有更好的方法来声明保留两者的稀疏子域?
Is there a better way to declare sparse subdomains that preserves the two?
我认为您只是遇到了 Chapel 1.16.0 当前实施的一个缺点。
COO
稀疏数组和域,语言的默认稀疏分布,使用 sps1: sparse subdomain(dom)
创建,在 LinearAlgebra.Sparse
模块中尚不支持,因此没有 library-supported转置。
CSR
稀疏数组和域,LinearAlgebra
的默认(且仅支持)稀疏分布,使用 sps2 = CSRDomain(dom)
创建,尚不支持切片。
有一天,随着稀疏数组和线性代数功能的进一步发展,这两者都将成为可能。