Skip to content

Commit baaa5f0

Browse files
add examples in doucmentation for basic vector methods
1 parent 6f8e0e7 commit baaa5f0

File tree

1 file changed

+231
-2
lines changed

1 file changed

+231
-2
lines changed

src/Object_Methods/Vector_Methods.jl

Lines changed: 231 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,20 @@
22
GrB_Vector_new(v, type, n)
33
44
Create a new vector with specified domain and size.
5+
6+
# Examples
7+
```jldoctest
8+
julia> using SuiteSparseGraphBLAS
9+
10+
julia> GrB_init(GrB_NONBLOCKING)
11+
GrB_SUCCESS::GrB_Info = 0
12+
13+
julia> V = GrB_Vector()
14+
GrB_Vector
15+
16+
julia> GrB_Vector_new(V, GrB_FP64, 4)
17+
GrB_SUCCESS::GrB_Info = 0
18+
```
519
"""
620
function GrB_Vector_new(v::GrB_Vector, type::GrB_Type, n::T) where T <: GrB_Index
721
v_ptr = pointer_from_objref(v)
@@ -20,6 +34,45 @@ end
2034
GrB_Vector_dup(w, u)
2135
2236
Create a new vector with the same domain, size, and contents as another vector.
37+
38+
# Examples
39+
```jldoctest
40+
julia> using SuiteSparseGraphBLAS
41+
42+
julia> GrB_init(GrB_NONBLOCKING)
43+
GrB_SUCCESS::GrB_Info = 0
44+
45+
julia> V = GrB_Vector()
46+
GrB_Vector
47+
48+
julia> GrB_Vector_new(V, GrB_INT64, 5)
49+
GrB_SUCCESS::GrB_Info = 0
50+
51+
julia> I = [1, 2, 4]; X = [2, 32, 4]; n = 3;
52+
53+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
54+
GrB_SUCCESS::GrB_Info = 0
55+
56+
julia> B = GrB_Vector()
57+
GrB_Vector
58+
59+
julia> GrB_Vector_dup(B, V)
60+
GrB_SUCCESS::GrB_Info = 0
61+
62+
julia> @GxB_Vector_fprint(B, GxB_SHORT)
63+
64+
GraphBLAS vector: B
65+
nrows: 5 ncols: 1 max # entries: 3
66+
format: standard CSC vlen: 5 nvec_nonempty: 1 nvec: 1 plen: 1 vdim: 1
67+
hyper_ratio 0.0625
68+
GraphBLAS type: int64_t size: 8
69+
number of entries: 3
70+
column: 0 : 3 entries [0:2]
71+
row 1: int64 2
72+
row 2: int64 32
73+
row 4: int64 4
74+
75+
```
2376
"""
2477
function GrB_Vector_dup(w::GrB_Vector, u::GrB_Vector)
2578
w_ptr = pointer_from_objref(w)
@@ -36,8 +89,36 @@ end
3689

3790
"""
3891
GrB_Vector_clear(v)
39-
92+
4093
Remove all the elements (tuples) from a vector.
94+
95+
# Examples
96+
```jldoctest
97+
julia> using SuiteSparseGraphBLAS
98+
99+
julia> GrB_init(GrB_NONBLOCKING)
100+
GrB_SUCCESS::GrB_Info = 0
101+
102+
julia> V = GrB_Vector()
103+
GrB_Vector
104+
105+
julia> GrB_Vector_new(V, GrB_INT64, 5)
106+
GrB_SUCCESS::GrB_Info = 0
107+
108+
julia> I = [1, 2, 4]; X = [2, 32, 4]; n = 3;
109+
110+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
111+
GrB_SUCCESS::GrB_Info = 0
112+
113+
julia> GrB_Vector_extractTuples(V)
114+
([1, 2, 4], [2, 32, 4])
115+
116+
julia> GrB_Vector_clear(V)
117+
GrB_SUCCESS::GrB_Info = 0
118+
119+
julia> GrB_Vector_extractTuples(V)
120+
(Int64[], Int64[])
121+
```
41122
"""
42123
function GrB_Vector_clear(v::GrB_Vector)
43124
return GrB_Info(
@@ -53,7 +134,30 @@ end
53134
"""
54135
GrB_Vector_size(v)
55136
56-
Return the size of a vector if successful else return value of type GrB Info.
137+
Return the size of a vector if successful.
138+
Else return value of type GrB Info.
139+
140+
# Examples
141+
```jldoctest
142+
julia> using SuiteSparseGraphBLAS
143+
144+
julia> GrB_init(GrB_NONBLOCKING)
145+
GrB_SUCCESS::GrB_Info = 0
146+
147+
julia> V = GrB_Vector()
148+
GrB_Vector
149+
150+
julia> GrB_Vector_new(V, GrB_FP64, 4)
151+
GrB_SUCCESS::GrB_Info = 0
152+
153+
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
154+
155+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
156+
GrB_SUCCESS::GrB_Info = 0
157+
158+
julia> GrB_Vector_size(V)
159+
4
160+
```
57161
"""
58162
function GrB_Vector_size(v::GrB_Vector)
59163
n = Ref(UInt64(0))
@@ -74,6 +178,28 @@ end
74178
75179
Return the number of stored elements in a vector if successful.
76180
Else return value of type GrB Info.
181+
182+
# Examples
183+
```jldoctest
184+
julia> using SuiteSparseGraphBLAS
185+
186+
julia> GrB_init(GrB_NONBLOCKING)
187+
GrB_SUCCESS::GrB_Info = 0
188+
189+
julia> V = GrB_Vector()
190+
GrB_Vector
191+
192+
julia> GrB_Vector_new(V, GrB_FP64, 4)
193+
GrB_SUCCESS::GrB_Info = 0
194+
195+
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
196+
197+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
198+
GrB_SUCCESS::GrB_Info = 0
199+
200+
julia> GrB_Vector_nvals(V)
201+
3
202+
```
77203
"""
78204
function GrB_Vector_nvals(v::GrB_Vector)
79205
nvals = Ref(UInt64(0))
@@ -93,6 +219,34 @@ end
93219
GrB_Vector_build(w, I, X, nvals, dup)
94220
95221
Store elements from tuples into a vector.
222+
223+
# Examples
224+
```jldoctest
225+
julia> V = GrB_Vector()
226+
GrB_Vector
227+
228+
julia> GrB_Vector_new(V, GrB_FP64, 4)
229+
GrB_SUCCESS::GrB_Info = 0
230+
231+
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
232+
233+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
234+
GrB_SUCCESS::GrB_Info = 0
235+
236+
julia> @GxB_Vector_fprint(V, GxB_SHORT)
237+
238+
GraphBLAS vector: V
239+
nrows: 4 ncols: 1 max # entries: 3
240+
format: standard CSC vlen: 4 nvec_nonempty: 1 nvec: 1 plen: 1 vdim: 1
241+
hyper_ratio 0.0625
242+
GraphBLAS type: double size: 8
243+
number of entries: 3
244+
column: 0 : 3 entries [0:2]
245+
row 0: double 2.1
246+
row 2: double 3.2
247+
row 3: double 4.4
248+
249+
```
96250
"""
97251
function GrB_Vector_build(w::GrB_Vector, I::Vector{U}, X::Vector{T}, nvals::U, dup::GrB_BinaryOp) where{U <: GrB_Index, T <: valid_types}
98252
I_ptr = pointer(I)
@@ -113,6 +267,34 @@ end
113267
GrB_Vector_setElement(w, x, i)
114268
115269
Set one element of a vector to a given value, w[i] = x.
270+
271+
# Examples
272+
```jldoctest
273+
julia> using SuiteSparseGraphBLAS
274+
275+
julia> GrB_init(GrB_NONBLOCKING)
276+
GrB_SUCCESS::GrB_Info = 0
277+
278+
julia> V = GrB_Vector()
279+
GrB_Vector
280+
281+
julia> GrB_Vector_new(V, GrB_INT64, 5)
282+
GrB_SUCCESS::GrB_Info = 0
283+
284+
julia> I = [1, 2, 4]; X = [2, 32, 4]; n = 3;
285+
286+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_INT64)
287+
GrB_SUCCESS::GrB_Info = 0
288+
289+
julia> GrB_Vector_extractElement(V, 2)
290+
32
291+
292+
julia> GrB_Vector_setElement(V, 7, 2)
293+
GrB_SUCCESS::GrB_Info = 0
294+
295+
julia> GrB_Vector_extractElement(V, 2)
296+
7
297+
```
116298
"""
117299
function GrB_Vector_setElement(w::GrB_Vector, x::T, i::U) where {U <: GrB_Index, T <: valid_int_types}
118300
fn_name = "GrB_Vector_setElement_" * get_suffix(T)
@@ -155,6 +337,31 @@ end
155337
156338
Return element of a vector at a given index (v[i]) if successful.
157339
Else return value of type GrB Info.
340+
341+
# Examples
342+
```jldoctest
343+
julia> using SuiteSparseGraphBLAS
344+
345+
julia> GrB_init(GrB_NONBLOCKING)
346+
GrB_SUCCESS::GrB_Info = 0
347+
348+
julia> V = GrB_Vector()
349+
GrB_Vector
350+
351+
julia> GrB_Vector_new(V, GrB_FP64, 4)
352+
GrB_SUCCESS::GrB_Info = 0
353+
354+
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
355+
356+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
357+
GrB_SUCCESS::GrB_Info = 0
358+
359+
julia> GrB_Vector_extractElement(V, 2)
360+
3.2
361+
362+
julia> GrB_Vector_extractElement(V, 1)
363+
GrB_NO_VALUE::GrB_Info = 1
364+
```
158365
"""
159366
function GrB_Vector_extractElement(v::GrB_Vector, i::U) where U <: GrB_Index
160367
res, v_type = GxB_Vector_type(v)
@@ -179,6 +386,28 @@ end
179386
GrB_Vector_extractTuples(v)
180387
181388
Return tuples stored in a vector.
389+
390+
# Examples
391+
```jldoctest
392+
julia> using SuiteSparseGraphBLAS
393+
394+
julia> GrB_init(GrB_NONBLOCKING)
395+
GrB_SUCCESS::GrB_Info = 0
396+
397+
julia> V = GrB_Vector()
398+
GrB_Vector
399+
400+
julia> GrB_Vector_new(V, GrB_FP64, 4)
401+
GrB_SUCCESS::GrB_Info = 0
402+
403+
julia> I = [0, 2, 3]; X = [2.1, 3.2, 4.4]; n = 3;
404+
405+
julia> GrB_Vector_build(V, I, X, n, GrB_FIRST_FP64)
406+
GrB_SUCCESS::GrB_Info = 0
407+
408+
julia> GrB_Vector_extractTuples(V)
409+
([0, 2, 3], [2.1, 3.2, 4.4])
410+
```
182411
"""
183412
function GrB_Vector_extractTuples(v::GrB_Vector)
184413
res, v_type = GxB_Vector_type(v)

0 commit comments

Comments
 (0)