Skip to content

Commit f4a0fce

Browse files
add generic method
1 parent b80d63a commit f4a0fce

File tree

2 files changed

+28
-3
lines changed

2 files changed

+28
-3
lines changed

src/Operations/Assign.jl

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,30 @@
1+
"""
2+
GrB_assign(arg1, Mask, accum, arg4, arg5, ...)
3+
4+
Generic method for submatrix/subvector assignment.
5+
"""
6+
function GrB_assign(arg1::T, Mask, accum, arg4::U, arg5::V, args...) where {T, U, V}
7+
if T <: GrB_Vector
8+
if U <: GrB_Vector
9+
return GrB_Vector_assign(arg1, Mask, accum, arg4, arg5, args...)
10+
elseif U <: valid_types
11+
return GrB_Vector_assign(arg1, Mask, accum, arg4, arg5, args...)
12+
end
13+
elseif T <: GrB_Matrix
14+
if U <: GrB_Vector
15+
if V <: Union{Vector{GrB_Index}, GrB_ALL_Type}
16+
return GrB_Col_assign(arg1, Mask, accum, arg4, arg5, args...)
17+
elseif V <: GrB_Index
18+
return GrB_Row_assign(arg1, Mask, accum, arg4, arg5, args...)
19+
end
20+
elseif U <: GrB_Matrix
21+
return GrB_Matrix_assign(arg1, Mask, accum, arg4, arg5, args...)
22+
elseif U <: valid_types
23+
return GrB_Matrix_assign(arg1, Mask, accum, arg4, arg5, args...)
24+
end
25+
end
26+
end
27+
128
"""
229
GrB_Vector_assign(w, mask, accum, u, I, ni, desc)
330

src/Operations/Extract.jl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,7 @@
33
44
Generic matrix/vector extraction.
55
"""
6-
function GrB_extract(arg1, Mask, accum, arg4, args...)
7-
T = typeof(arg1)
8-
U = typeof(arg4)
6+
function GrB_extract(arg1::T, Mask, accum, arg4::U, args...) where {T, U}
97
if T <: GrB_Vector
108
if U <: GrB_Vector
119
return GrB_Vector_extract(arg1, Mask, accum, arg4, args...)

0 commit comments

Comments
 (0)