JuliaSparse / SuiteSparseGraphBLAS.jl

Sparse, General Linear Algebra for Graphs!
MIT License
102 stars 17 forks source link

Iterating over nonzero elements of a GBMatrix sparse matrix #70

Open fcdimitr opened 2 years ago

fcdimitr commented 2 years ago

Is there any convenient accessor through Julia to iterate over the nonzero elements of a GBMatrix, with the full triplet information (i,j,v) instead of v alone? Similar to the SparseArrayspackage, i.e.,

rows = rowvals(A)
vals = nonzeros(A)
m, n = size(A)
for j = 1:n
   for i in nzrange(A, j)
      row = rows[i]
      val = vals[i]
      # ...
   end
end

This shall be useful when the (i,j) information is needed with the mapor apply functionality.

Thank you for integrating the GraphBLAS into the Julia ecosystem!

rayegun commented 2 years ago

There will be in the next release, likely Monday next week. It won't be an exported part of the interface yet, though, since the interface may change between releases.

Next week you'll be able to iterate by nz values by row (if GBMatrix is by-row), and by column (if GBMatrix is by-col).

A fuller interface will likely come with the revival of ArrayIteration.jl in the next month or so.

rayegun commented 2 years ago

For map the missing functionality is user defined SelectOps. That will also be in the next release, I just overlooked them.

fcdimitr commented 2 years ago

@Wimmerer Thank you! Was the functionality you mentioned included in v0.7.2? I could not find it in the docs.

rayegun commented 2 years ago

Sorry this is not ready yet, I'll try to get it out this week. It slipped my mind.