Skip to content

Instantly share code, notes, and snippets.

@swilly22
Created March 1, 2020 05:59
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save swilly22/40e9464a58f04fc8f4efa6fd3b03ea8d to your computer and use it in GitHub Desktop.
Save swilly22/40e9464a58f04fc8f4efa6fd3b03ea8d to your computer and use it in GitHub Desktop.
matrix iterator
// Create a new matrix iterator
GrB_Info GxB_MatrixTupleIter_new
(
GxB_MatrixTupleIter **iter, // iterator to create
GrB_Matrix A // matrix being iterated
) ;
// Iterate over specific row
GrB_Info GxB_MatrixTupleIter_iterate_row
(
GxB_MatrixTupleIter *iter, // iterator to use
GrB_Index rowIdx // row index to iterate over
) ;
// Move iterator to a specific row
GrB_Info GxB_MatrixTupleIter_jump_to_row
(
GxB_MatrixTupleIter *iter, // iterator to use
GrB_Index rowIdx // row index to move iterator to
) ;
// Move iterator over specific rows range
GrB_Info GxB_MatrixTupleIter_iterate_range
(
GxB_MatrixTupleIter *iter, // iterator to use
GrB_Index startRowIdx, // row index to start with
GrB_Index endRowIdx // row index to end with
) ;
// Advance iterator to the next none zero value
GrB_Info GxB_MatrixTupleIter_next
(
GxB_MatrixTupleIter *iter, // iterator to consume
GrB_Index *row, // optional row index of current NNZ
GrB_Index *col, // optional column index of current NNZ
bool *depleted // indicate if iterator depleted
) ;
// Reset iterator
GrB_Info GxB_MatrixTupleIter_reset
(
GxB_MatrixTupleIter *iter // iterator to reset
) ;
// Reuse iterator to scan given matrix
GrB_Info GxB_MatrixTupleIter_reuse
(
GxB_MatrixTupleIter *iter, // iterator to update
GrB_Matrix A // matrix to scan
) ;
// Release every resource consumed by iterator
GrB_Info GxB_MatrixTupleIter_free
(
GxB_MatrixTupleIter *iter // iterator to free
) ;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment