diff --git a/src/conversions.jl b/src/conversions.jl index c400e67..c372bbd 100644 --- a/src/conversions.jl +++ b/src/conversions.jl @@ -19,6 +19,11 @@ function SparseMatrixCSC(M::PermMatrix) SparseMatrixCSC(n, n, collect(1:n+1), order, M.vals[order]) end +function SparseMatrixCSC(D::Diagonal{T}) where T + m = length(D.diag) + return SparseMatrixCSC(m, m, Vector(1:(m+1)), Vector(1:m), Vector{T}(D.diag)) +end + SparseMatrixCSC{Tv, Ti}(M::PermMatrix{Tv, Ti}) where {Tv, Ti} = SparseMatrixCSC(M) SparseMatrixCSC(coo::SparseMatrixCOO) = sparse(coo.is, coo.js, coo.vs, coo.m, coo.n)