MCPcopy Create free account
hub / github.com/RedisGraph/RedisGraph / _set_iter_range

Function _set_iter_range

src/graph/rg_matrix/rg_matrix_iter.c:14–48  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

12#define IS_DETACHED(iter) ((iter) == NULL || (iter)->A == NULL)
13
14static inline void _set_iter_range
15(
16 GxB_Iterator it,
17 GrB_Index min_row,
18 GrB_Index max_row,
19 bool *depleted
20) {
21 GrB_Info info = GxB_rowIterator_seekRow (it, min_row) ;
22
23 switch (info)
24 {
25 case GxB_EXHAUSTED:
26 // no values to iterate on
27 *depleted = true ;
28 break ;
29 case GrB_NO_VALUE:
30 // in sparse matrix no value in the current row
31 // seek to first none empty row
32 while (info == GrB_NO_VALUE && GxB_rowIterator_getRowIndex(it) < max_row) {
33 info = GxB_rowIterator_nextRow (it) ;
34 }
35
36 *depleted = (info != GrB_SUCCESS ||
37 GxB_rowIterator_getRowIndex(it) > max_row) ;
38 break ;
39 case GrB_SUCCESS:
40 // in hypersparse matrix iterator move to the next row with values
41 // make sure seekRow didn't over-reached
42 *depleted = GxB_rowIterator_getRowIndex (it) > max_row;
43 break ;
44 default:
45 ASSERT(false);
46 break;
47 }
48}
49
50static inline void _init_iter
51(

Callers 4

_init_iterFunction · 0.85
RG_MatrixTupleIter_resetFunction · 0.85

Calls 3

GxB_rowIterator_seekRowFunction · 0.85
GxB_rowIterator_nextRowFunction · 0.85

Tested by

no test coverage detected