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

Function RG_Matrix_export

src/graph/rg_matrix/rg_export.c:11–81  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

9#include "../../util/rmalloc.h"
10
11GrB_Info RG_Matrix_export
12(
13 GrB_Matrix *A,
14 RG_Matrix C
15) {
16 ASSERT(C != NULL);
17 ASSERT(A != NULL);
18
19 GrB_Type t;
20 GrB_Index nrows;
21 GrB_Index ncols;
22 GrB_Index dp_nvals;
23 GrB_Index dm_nvals;
24 GrB_Matrix a = NULL;
25 GrB_Matrix m = RG_MATRIX_M(C);
26 GrB_Info info = GrB_SUCCESS;
27 GrB_Matrix dp = RG_MATRIX_DELTA_PLUS(C);
28 GrB_Matrix dm = RG_MATRIX_DELTA_MINUS(C);
29
30 info = GxB_Matrix_type(&t, m);
31 ASSERT(info == GrB_SUCCESS);
32
33 info = GrB_Matrix_nrows(&nrows, m);
34 ASSERT(info == GrB_SUCCESS);
35
36 info = GrB_Matrix_ncols(&ncols, m);
37 ASSERT(info == GrB_SUCCESS);
38
39 info = GrB_Matrix_new(&a, t, nrows, ncols);
40 ASSERT(info == GrB_SUCCESS);
41
42 info = GrB_wait(dp, GrB_MATERIALIZE);
43 ASSERT(info == GrB_SUCCESS);
44
45 info = GrB_wait(dm, GrB_MATERIALIZE);
46 ASSERT(info == GrB_SUCCESS);
47
48 info = GrB_Matrix_nvals(&dp_nvals, dp);
49 ASSERT(info == GrB_SUCCESS);
50 info = GrB_Matrix_nvals(&dm_nvals, dm);
51 ASSERT(info == GrB_SUCCESS);
52
53 bool additions = dp_nvals > 0;
54 bool deletions = dm_nvals > 0;
55
56 //--------------------------------------------------------------------------
57 // perform copy and deletions if needed
58 //--------------------------------------------------------------------------
59
60 // in case there are items to delete use mask otherwise just copy
61 GrB_Matrix mask = deletions ? dm : NULL;
62 GrB_Descriptor desc = deletions ? GrB_DESC_RSCT0 : GrB_DESC_RT0;
63 info = GrB_transpose(a, mask, NULL, m, desc);
64 ASSERT(info == GrB_SUCCESS);
65
66 //--------------------------------------------------------------------------
67 // perform additions
68 //--------------------------------------------------------------------------

Callers 8

AR_SHORTEST_PATHFunction · 0.85
RG_eWiseAddFunction · 0.85
Proc_BFS_InvokeFunction · 0.85
Proc_PagerankInvokeFunction · 0.85
_compare_matricesFunction · 0.85
test_Exp_OP_MULFunction · 0.85

Calls 7

GxB_Matrix_typeFunction · 0.85
GrB_Matrix_nrowsFunction · 0.85
GrB_Matrix_ncolsFunction · 0.85
GrB_Matrix_newFunction · 0.85
GrB_Matrix_nvalsFunction · 0.85
GrB_transposeFunction · 0.85

Tested by 4

_compare_matricesFunction · 0.68
test_Exp_OP_MULFunction · 0.68