Skip to content

Commit 952e7a0

Browse files
author
Wimmerer
committed
mask and vector transpose v1
1 parent e19133f commit 952e7a0

File tree

1 file changed

+33
-0
lines changed

1 file changed

+33
-0
lines changed

src/operations/transpose.jl

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,13 +64,46 @@ function Base.copy!(
6464
return gbtranspose!(C, A.parent; mask, accum, desc)
6565
end
6666

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+
6789
function Base.copy(
6890
A::LinearAlgebra.Transpose{<:Any, <:GBMatrix};
6991
mask = C_NULL, accum = C_NULL, desc::Descriptor = Descriptors.NULL
7092
)
7193
return gbtranspose(A.parent; mask, accum, desc)
7294
end
7395

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+
74107
function _handletranspose(
75108
A::GBArray,
76109
desc::Union{Descriptor, Nothing} = nothing,

0 commit comments

Comments
 (0)