loops - Chapel 中的稀疏迭代

标签 loops multidimensional-array sparse-matrix hpc chapel

给定一个 M:[sps] 数组 sps = sparse subdomain(dom) 其中 dom: domain(n),我我知道我可以使用 for j in M.domain.dim(k) {...} 在第 k 个维度上进行密集迭代。如果 M.domain.dim(k) = {1..N},我将如何定义一个仅访问 k 中填充位置的类似循环,但 k 中只有 m 个填充索引,循环只正式生成 m 次迭代而不是 N 次?

这样做的方法是用一个只引用一个索引的 iterand 遍历整个稀疏域吗? (即 for (i,j) in spsDom { var idx = i })

最佳答案

除了 my previous answer to a similar question 之外,我对这个问题没有太多答案。 .快速总结是有一个未记录的迭代器 dimIter() 可用于迭代以 2D CSR/CSC 格式存储的稀疏域的有效维度,但没有正式的当今所有稀疏域的接口(interface)(从 Chapel 1.16 版开始)。

我认为我们最终想要表达的方式是 support slicing of sparse domains然后迭代该切片。

关于loops - Chapel 中的稀疏迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49282902/

相关文章:

Python:非常大的稀疏矩阵中的 lil_matrix 与 csr_matrix

matlab - Matlab 中稀疏索引增量值的合适数据结构实现

python - 如果用户在先前给定的列表中,则限制用户只能输入值

c++ - 以随机顺序遍历数组

function - Postgresql循环函数

php - 如何动态访问可变多维数组中的值

c# - 如果返回多维数组,这个方法该如何设计呢?

python - 循环多个变量以应用 sound.Sound() Psychopy 函数

java - 在 Java 中推广 for 循环

python - 从文本文件到市场矩阵格式