如何将稀疏矩阵作为函数参数?

如题,我现在已经在一个函数A中,初始化了一个稀疏矩阵的builder,假设为A_Builder中的所有triplets,我现在需要在另一个函数B中去修改该稀疏矩阵中原有的部分值。
我想了两个方案:

  1. 将A中的A_builder给Build出来,获得稀疏矩阵A,然后作为参数,传入到函数B中,可是我尝试了一下是用A: ti.template(),结果失败了,我并不能在该函数中通过下标A[i, j]正常访问其中的值
  2. 遍历当前builder中已存在的triplets,并直接修改,可是我不知道该如何遍历triplets(print_triplets不算,因为我无法修改它)
    不知道大家有没有什么好的方法,恳请大家指教!

也许可以试试看A: ti.ext_arr()

不行,会报错
TypeError: 'method' object is not iterable

struct for改成range for?

hi @lil-kotyo , 目前稀疏矩阵还不能作为Taichi kernel函数的参数。你可以在Taichi scope直接通过下标修改。

目前Taichi支持的稀疏矩阵只有CPU版本,我们接下来会先支持GPU版本的稀疏矩阵,然后再考虑支持在Taichi kernel中的稀疏矩阵操作。