dispatch sparsify! on the type of matrix
This commit is contained in:
parent
0eae65169e
commit
d64ba34407
20
Orb_AutFN.jl
20
Orb_AutFN.jl
@ -34,11 +34,23 @@ immutable Settings
|
||||
tol::Float64
|
||||
end
|
||||
|
||||
function sparsify!{T}(U::AbstractArray{T}, eps=eps(T))
|
||||
# n = rank(U)
|
||||
function sparsify!{T}(U::Array{T}, eps=eps(T))
|
||||
n = rank(U)
|
||||
W = deepcopy(U)
|
||||
W[abs.(W) .< eps] = zero(T)
|
||||
if rank(W) != n
|
||||
warn("Sparsification would decrease the rank!")
|
||||
W = U
|
||||
end
|
||||
U = sparse(U)
|
||||
dropzeros!(U)
|
||||
return U
|
||||
end
|
||||
|
||||
function sparsify!{T}(U::SparseMatrixCSC{T}, eps=eps(T))
|
||||
U[abs.(U) .< eps] = zero(T)
|
||||
# @assert rank(U) == n
|
||||
return sparse(U)
|
||||
dropzeros!(U)
|
||||
return U
|
||||
end
|
||||
|
||||
sparsify{T}(U::AbstractArray{T}, eps=eps(T)) = sparsify!(deepcopy(U), eps)
|
||||
|
Loading…
Reference in New Issue
Block a user