@@ -64,13 +64,46 @@ function Base.copy!(
64
64
return gbtranspose! (C, A. parent; mask, accum, desc)
65
65
end
66
66
67
+ """
68
+ mask!(C::GBArray, A::GBArray, mask::GBArray)
69
+
70
+ Apply a mask to matrix `A`, storing the results in C.
71
+ """
72
+ function mask! (C:: GBArray , A:: GBArray , mask:: GBArray ; structural = false , complement = false )
73
+ desc = Descriptors. T0
74
+ structural && (desc = desc + Descriptors. S)
75
+ complement && (desc = desc + Descriptors. C)
76
+ gbtranspose! (C, A; mask, desc)
77
+ return C
78
+ end
79
+
80
+ """
81
+ mask(A::GBArray, mask::GBArray)
82
+
83
+ Apply a mask to matrix `A`.
84
+ """
85
+ function mask (A:: GBArray , mask:: GBArray ; structural = false , complement = false )
86
+ return mask! (similar (A), A, mask; structural, complement)
87
+ end
88
+
67
89
function Base. copy (
68
90
A:: LinearAlgebra.Transpose{<:Any, <:GBMatrix} ;
69
91
mask = C_NULL , accum = C_NULL , desc:: Descriptor = Descriptors. NULL
70
92
)
71
93
return gbtranspose (A. parent; mask, accum, desc)
72
94
end
73
95
96
+ function Base. copy (v:: LinearAlgebra.Transpose{<:Any, <:GBVector} )
97
+ A = GBMatrix {eltype(v)} (size (v, 1 ), size (v, 2 ))
98
+ nz = findnz (v. parent)
99
+ for i ∈ 1 : length (nz[1 ])
100
+ println (i)
101
+ println (nz[1 ][i], " : " , nz[2 ][i])
102
+ A[1 , nz[1 ][i]] = nz[2 ][i]
103
+ end
104
+ return A
105
+ end
106
+
74
107
function _handletranspose (
75
108
A:: GBArray ,
76
109
desc:: Union{Descriptor, Nothing} = nothing ,
0 commit comments