Matrix functions
GraphBLASInterface.GrB_Matrix_new
— Function.GrB_Matrix_new(A, type, nrows, ncols)
Initialize a matrix with specified domain and dimensions.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
GraphBLASInterface.GrB_Matrix_build
— Function.GrB_Matrix_build(C, I, J, X, nvals, dup)
Store elements from tuples into a matrix.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> @GxB_Matrix_fprint(MAT, GxB_COMPLETE)
GraphBLAS matrix: MAT
nrows: 4 ncols: 4 max # entries: 5
format: standard CSR vlen: 4 nvec_nonempty: 3 nvec: 4 plen: 4 vdim: 4
hyper_ratio 0.0625
GraphBLAS type: int8_t size: 1
number of entries: 5
row: 1 : 1 entries [0:0]
column 1: int8 2
row: 2 : 3 entries [1:3]
column 1: int8 4
column 2: int8 3
column 3: int8 5
row: 3 : 1 entries [4:4]
column 3: int8 6
GraphBLASInterface.GrB_Matrix_nrows
— Function.GrB_Matrix_nrows(A)
Return the number of rows in a matrix if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_nrows(MAT)
0x0000000000000004
GraphBLASInterface.GrB_Matrix_ncols
— Function.GrB_Matrix_ncols(A)
Return the number of columns in a matrix if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_ncols(MAT)
0x0000000000000004
GraphBLASInterface.GrB_Matrix_nvals
— Function.GrB_Matrix_nvals(A)
Return the number of stored elements in a matrix if successful. Else return GrB_Info
error code..
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = [ZeroBasedIndex1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_nvals(MAT)
0x0000000000000005
GraphBLASInterface.GrB_Matrix_setElement
— Function.GrB_Matrix_setElement(C, X, I, J)
Set one element of a matrix to a given value, C[I][J] = X.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_extractElement(MAT, ZeroBasedIndex(1), ZeroBasedIndex(1))
2
julia> GrB_Matrix_setElement(MAT, Int8(7), ZeroBasedIndex(1), ZeroBasedIndex(1))
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_extractElement(MAT, ZeroBasedIndex(1), ZeroBasedIndex(1))
7
GraphBLASInterface.GrB_Matrix_extractElement
— Function.GrB_Matrix_extractElement(A, row_index, col_index)
Return element of a matrix at a given index (A[rowindex][colindex]) if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_extractElement(MAT, ZeroBasedIndex(1), ZeroBasedIndex(1))
2
GraphBLASInterface.GrB_Matrix_extractTuples
— Function.GrB_Matrix_extractTuples(A, index_type)
Return tuples stored in a matrix if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_extractTuples(MAT)
(ZeroBasedIndex[ZeroBasedIndex(0x0000000000000001), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000003)], ZeroBasedIndex[ZeroBasedIndex(0x0000000000000001), ZeroBasedIndex(0x0000000000000001), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000003), ZeroBasedIndex(0x0000000000000003)], Int8[2, 4, 3, 5, 6])
GraphBLASInterface.GrB_Matrix_dup
— Function.GrB_Matrix_dup(C, A)
Initialize a new matrix with the same domain, dimensions, and contents as another matrix.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> B = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_dup(B, MAT)
GrB_SUCCESS::GrB_Info = 0
julia> @GxB_Matrix_fprint(B, GxB_COMPLETE)
GraphBLAS matrix: B
nrows: 4 ncols: 4 max # entries: 5
format: standard CSR vlen: 4 nvec_nonempty: 3 nvec: 4 plen: 4 vdim: 4
hyper_ratio 0.0625
GraphBLAS type: int8_t size: 1
number of entries: 5
row: 1 : 1 entries [0:0]
column 1: int8 2
row: 2 : 3 entries [1:3]
column 1: int8 4
column 2: int8 3
column 3: int8 5
row: 3 : 1 entries [4:4]
column 3: int8 6
GraphBLASInterface.GrB_Matrix_clear
— Function.GrB_Matrix_clear(A)
Remove all elements from a matrix.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> MAT = GrB_Matrix{Int8}()
GrB_Matrix{Int8}
julia> GrB_Matrix_new(MAT, GrB_INT8, 4, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 2, 2, 3]; J = ZeroBasedIndex[1, 2, 1, 3, 3]; X = Int8[2, 3, 4, 5, 6]; n = 5;
julia> GrB_Matrix_build(MAT, I, J, X, n, GrB_FIRST_INT8)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_nvals(MAT)
0x0000000000000005
julia> GrB_Matrix_clear(MAT)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Matrix_nvals(MAT)
0x0000000000000000
Vector functions
GraphBLASInterface.GrB_Vector_new
— Function.GrB_Vector_new(v, type, n)
Initialize a vector with specified domain and size.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
GraphBLASInterface.GrB_Vector_build
— Function.GrB_Vector_build(w, I, X, nvals, dup)
Store elements from tuples into a vector.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
GrB_SUCCESS::GrB_Info = 0
julia> @GxB_Vector_fprint(V, GxB_COMPLETE)
GraphBLAS vector: V
nrows: 4 ncols: 1 max # entries: 3
format: standard CSC vlen: 4 nvec_nonempty: 1 nvec: 1 plen: 1 vdim: 1
hyper_ratio 0.0625
GraphBLAS type: double size: 8
number of entries: 3
column: 0 : 3 entries [0:2]
row 0: double 2.1
row 2: double 3.2
row 3: double 4.4
GraphBLASInterface.GrB_Vector_size
— Function.GrB_Vector_size(v)
Return the size of a vector if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_size(V)
0x0000000000000004
GraphBLASInterface.GrB_Vector_nvals
— Function.GrB_Vector_nvals(v)
Return the number of stored elements in a vector if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_nvals(V)
0x0000000000000003
GraphBLASInterface.GrB_Vector_setElement
— Function.GrB_Vector_setElement(w, x, i)
Set one element of a vector to a given value, w[i] = x.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Int64}()
GrB_Vector{Int64}
julia> GrB_Vector_new(V, GrB_INT64, 5)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 4]; X = [2, 32, 4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractElement(V, ZeroBasedIndex(2))
32
julia> GrB_Vector_setElement(V, 7, ZeroBasedIndex(2))
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractElement(V, ZeroBasedIndex(2))
7
GraphBLASInterface.GrB_Vector_extractElement
— Function.GrB_Vector_extractElement(v, i)
Return element of a vector at a given index (v[i]) if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractElement(V, ZeroBasedIndex(2))
3.2
GraphBLASInterface.GrB_Vector_extractTuples
— Function.GrB_Vector_extractTuples(v, index_type)
Return tuples stored in a vector if successful. Else return GrB_Info
error code.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Float64}()
GrB_Vector{Float64}
julia> GrB_Vector_new(V, GrB_FP64, 4)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractTuples(V)
(ZeroBasedIndex[ZeroBasedIndex(0x0000000000000000), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000003)], [2.1, 3.2, 4.4])
GraphBLASInterface.GrB_Vector_dup
— Function.GrB_Vector_dup(w, u)
Initialize a vector with the same domain, size, and contents as another vector.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Int64}()
GrB_Vector{Int64}
julia> GrB_Vector_new(V, GrB_INT64, 5)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 4]; X = [2, 32, 4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
GrB_SUCCESS::GrB_Info = 0
julia> B = GrB_Vector{Int64}()
GrB_Vector{Int64}
julia> GrB_Vector_dup(B, V)
GrB_SUCCESS::GrB_Info = 0
julia> @GxB_Vector_fprint(B, GxB_COMPLETE)
GraphBLAS vector: B
nrows: 5 ncols: 1 max # entries: 3
format: standard CSC vlen: 5 nvec_nonempty: 1 nvec: 1 plen: 1 vdim: 1
hyper_ratio 0.0625
GraphBLAS type: int64_t size: 8
number of entries: 3
column: 0 : 3 entries [0:2]
row 1: int64 2
row 2: int64 32
row 4: int64 4
GraphBLASInterface.GrB_Vector_clear
— Function.GrB_Vector_clear(v)
Remove all the elements (tuples) from a vector.
Examples
julia> using GraphBLASInterface, SuiteSparseGraphBLAS
julia> GrB_init(GrB_NONBLOCKING)
GrB_SUCCESS::GrB_Info = 0
julia> V = GrB_Vector{Int64}()
GrB_Vector{Int64}
julia> GrB_Vector_new(V, GrB_INT64, 5)
GrB_SUCCESS::GrB_Info = 0
julia> I = ZeroBasedIndex[1, 2, 4]; X = [2, 32, 4]; n = 3;
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractTuples(V)
(ZeroBasedIndex[ZeroBasedIndex(0x0000000000000001), ZeroBasedIndex(0x0000000000000002), ZeroBasedIndex(0x0000000000000004)], [2, 32, 4])
julia> GrB_Vector_clear(V)
GrB_SUCCESS::GrB_Info = 0
julia> GrB_Vector_extractTuples(V)
(ZeroBasedIndex[], Int64[])