Skip to content

Allows a Sparse Matrix to maintain its sparsity while still being centered

License

Notifications You must be signed in to change notification settings

jsams/CenteredSparseMatrix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CenteredSparseMatrix

This package provides the CenteredSparseCSC type. It assumes that you want to re-center a sparse matrix based on the mean of each column. However, you can supply a custom centered value for each column. There are no methods for other forms of centering (e.g. the rows of the matrix). Currently only sparse-dense multiply and conjugate-multiply are implemented, with just enough indexing to make the display of the matrix work in a reasonable manner. That said, using the type is easy:

#Pkg.clone("git@github.com:jsams/CenteredSparseMatrix.git")

using CenteredSparseMatrix

X = sprand(10, 3, 0.6)
X_cent_sparse = CenteredSparseCSC(X)
X_cent_dense = full(X) .- mean(X, 1)

y = rand(3)
Y = rand(3, 5)
z = rand(10)
Z = rand(10, 4)

isapprox(X_cent_sparse * y, X_cent_dense * y)
isapprox(X_cent_sparse * Y, X_cent_dense * Y)
isapprox(X_cent_sparse' * z, X_cent_dense' * z)
isapprox(X_cent_sparse' * Z, X_cent_dense' * Z)

The key point is that the sparsity structure of the matrix is left unchanged, the centering of the zero-elements is done on-demand, and where possible, algorithms take advantage of knowing the column-constant mean value.

For the matrix multiplications X_cent_sparse * Y and X_cent_sparse' * Z, there is minimal overhead compared to the plain sparse multiplications X * Y and X' * Z, requiring only an extra dense vector-matrix multiply and subtraction. How?

Let A be an nxm sparse matrix and Ac be the the matrix that results from subtracting the column means of A from A. To be precise, let M be a the column vector of A's column means, and O a column vector of n 1's.

Ac := A - O * M'
Ac * X = (A - O * M') * X
       = A * X - O * M' * X

i.e. we can just perform the usual sparse matrix multiplication of A * X and then do a vector-matrix multiply of M' * X and broadcast that to the rows of the result. Thus, the only extra information besides the original sparse matrix that we need are the matrix column means.

Using Int64 value types is not advised.

Implementation Status

list generated by methodswith(SparseMatrixCSC). I guess the target should be to be equivalent to that? But note, I've implemented what I needed to get my work done, if you need more, pull requests are welcome. :)

Methods Implemented (more or less)

  1. A_mul_B!(y::Union{DenseArray{Ty,1}, Base.ReinterpretArray{Ty,1,S,A} where S, Base.ReshapedArray{Ty,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{Ty,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, A::SparseMatrixCSC, x::AbstractSparseArray{Tx,Ti,1} where Ti) where {Tx, Ty} in Base.SparseArrays at sparse/sparsevector.jl:1642
  2. A_mul_B!(C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:96
  3. Ac_mul_B!(y::Union{DenseArray{Ty,1}, Base.ReinterpretArray{Ty,1,S,A} where S, Base.ReshapedArray{Ty,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{Ty,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, A::SparseMatrixCSC, x::AbstractSparseArray{Tx,Ti,1} where Ti) where {Tx, Ty} in Base.SparseArrays at sparse/sparsevector.jl:1681
  4. Ac_mul_B!(C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:97
  5. At_mul_B!(y::Union{DenseArray{Ty,1}, Base.ReinterpretArray{Ty,1,S,A} where S, Base.ReshapedArray{Ty,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{Ty,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, A::SparseMatrixCSC, x::AbstractSparseArray{Tx,Ti,1} where Ti) where {Tx, Ty} in Base.SparseArrays at sparse/sparsevector.jl:1675
  6. At_mul_B!(C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:98
  7. copy(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:265
  8. full(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:365
  9. getindex(A::SparseMatrixCSC{T,Ti} where Ti<:Integer, i0::Integer, i1::Integer) where T in Base.SparseArrays at sparse/sparsematrix.jl:1916
  10. getindex(A::SparseMatrixCSC, ::Colon, ::Colon) in Base.SparseArrays at sparse/sparsematrix.jl:1925
  11. getindex(A::SparseMatrixCSC, i::Integer, ::Colon) in Base.SparseArrays at sparse/sparsevector.jl:504
  12. size(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:36

Methods not Implemented

  1. *(D::Diagonal, A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:114
  2. *(A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in Base.SparseArrays at sparse/sparsevector.jl:1718
  3. *(A::SparseMatrixCSC, D::Diagonal) in Base.SparseArrays at sparse/linalg.jl:118
  4. +(A::Array, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1571
  5. +(A::SparseMatrixCSC, J::UniformScaling) in Base.SparseArrays at sparse/sparsematrix.jl:3599
  6. +(A::SparseMatrixCSC, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1567
  7. +(A::SparseMatrixCSC, B::Array) in Base.SparseArrays at sparse/sparsematrix.jl:1570
  8. -(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1559
  9. -(A::SparseMatrixCSC, J::UniformScaling) in Base.SparseArrays at sparse/sparsematrix.jl:3600
  10. -(A::SparseMatrixCSC, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1568
  11. -(A::SparseMatrixCSC, B::Array) in Base.SparseArrays at sparse/sparsematrix.jl:1572
  12. -(A::Array, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1573
  13. -(J::UniformScaling, A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3601
  14. ==(A1::SparseMatrixCSC, A2::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1577
  15. A_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv, β::Number, y::Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray} where T) in Base.SparseArrays at sparse/sparsevector.jl:1646
  16. A_mul_B!(α::Number, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, β::Number, C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:51
  17. Ac_ldiv_B(::SparseMatrixCSC, ::RowVector) in Base.SparseArrays at sparse/linalg.jl:924
  18. Ac_ldiv_B(A::SparseMatrixCSC, B::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in Base.SparseArrays at sparse/linalg.jl:905
  19. Ac_mul_B(A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in Base.SparseArrays at sparse/sparsevector.jl:1726
  20. Ac_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv, β::Number, y::Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray} where T) in Base.SparseArrays at sparse/sparsevector.jl:1684
  21. Ac_mul_B!(α::Number, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, β::Number, C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:51
  22. At_ldiv_B(::SparseMatrixCSC, ::RowVector) in Base.SparseArrays at sparse/linalg.jl:924
  23. At_ldiv_B(A::SparseMatrixCSC, B::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in Base.SparseArrays at sparse/linalg.jl:905
  24. At_mul_B(A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv) in Base.SparseArrays at sparse/sparsevector.jl:1723
  25. At_mul_B!(α::Number, A::SparseMatrixCSC, x::AbstractSparseArray{Tv,Ti,1} where Ti where Tv, β::Number, y::Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray} where T) in Base.SparseArrays at sparse/sparsevector.jl:1678
  26. At_mul_B!(α::Number, A::SparseMatrixCSC, B::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T, β::Number, C::Union{Union{DenseArray{T,1}, Base.ReinterpretArray{T,1,S,A} where S, Base.ReshapedArray{T,1,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,1,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}, Union{DenseArray{T,2}, Base.ReinterpretArray{T,2,S,A} where S, Base.ReshapedArray{T,2,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray}, SubArray{T,2,A,I,L} where L} where I<:Tuple{Vararg{Union{Int64, AbstractRange{Int64}, Base.AbstractCartesianIndex},N} where N} where A<:Union{Base.ReshapedArray{T,N,A,MI} where MI<:Tuple{Vararg{Base.MultiplicativeInverses.SignedMultiplicativeInverse{Int64},N} where N} where A<:Union{SubArray{T,N,P,I,true} where I<:Tuple{Union{Base.Slice, UnitRange},Vararg{Any,N} where N} where P where N where T, DenseArray} where N where T, DenseArray}} where T) in Base.SparseArrays at sparse/linalg.jl:51
  27. \(::SparseMatrixCSC, ::RowVector) in Base.SparseArrays at sparse/linalg.jl:924
  28. \(L::LowerTriangular{T,#s332} where #s332<:(Union{SparseMatrixCSC{T,Ti}, SubArray{T,2,SparseMatrixCSC{T,Ti},Tuple{Base.Slice{Base.OneTo{Int64}},I},L} where L where I<:AbstractUnitRange} where Ti), B::SparseMatrixCSC) where T in Base.SparseArrays at sparse/linalg.jl:290
  29. \(U::UpperTriangular{T,#s332} where #s332<:(Union{SparseMatrixCSC{T,Ti}, SubArray{T,2,SparseMatrixCSC{T,Ti},Tuple{Base.Slice{Base.OneTo{Int64}},I},L} where L where I<:AbstractUnitRange} where Ti), B::SparseMatrixCSC) where T in Base.SparseArrays at sparse/linalg.jl:291
  30. \(A::SparseMatrixCSC, B::Union{AbstractArray{T,1}, AbstractArray{T,2}} where T) in Base.SparseArrays at sparse/linalg.jl:905
  31. abs(A::SparseMatrixCSC) in Base at deprecated.jl:55
  32. abs2(A::SparseMatrixCSC) in Base at deprecated.jl:55
  33. acos(A::SparseMatrixCSC) in Base at deprecated.jl:55
  34. acosd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  35. acot(A::SparseMatrixCSC) in Base at deprecated.jl:55
  36. acotd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  37. acsch(A::SparseMatrixCSC) in Base at deprecated.jl:55
  38. adjoint(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:837
  39. asech(A::SparseMatrixCSC) in Base at deprecated.jl:55
  40. asin(A::SparseMatrixCSC) in Base at deprecated.jl:55
  41. asind(A::SparseMatrixCSC) in Base at deprecated.jl:55
  42. asinh(A::SparseMatrixCSC) in Base at deprecated.jl:55
  43. atan(A::SparseMatrixCSC) in Base at deprecated.jl:55
  44. atand(A::SparseMatrixCSC) in Base at deprecated.jl:55
  45. atanh(A::SparseMatrixCSC) in Base at deprecated.jl:55
  46. broadcast(f::Tf, A::SparseMatrixCSC) where Tf in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:96
  47. broadcast(f::Tf, A::SparseMatrixCSC, Bs::Vararg{SparseMatrixCSC,N}) where {Tf, N} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:121
  48. broadcast(f::Tf, ::Type{T}, A::SparseMatrixCSC) where {Tf, T} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:962
  49. broadcast(f::Tf, A::SparseMatrixCSC, ::Type{T}) where {Tf, T} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:963
  50. ceil(A::SparseMatrixCSC) in Base at deprecated.jl:55
  51. chol(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:968
  52. complex(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:391
  53. cond(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:556
  54. cond(A::SparseMatrixCSC, p::Real) in Base.SparseArrays at sparse/linalg.jl:556
  55. conj!(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1558
  56. convert(::Type{Array{T,2} where T}, S::SparseMatrixCSC{Tv,Ti} where Ti<:Integer) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:354
  57. convert(::Type{AbstractArray{Tv,2}}, A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:329
  58. convert(::Type{AbstractArray{Tv,2}}, A::SparseMatrixCSC) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:330
  59. convert(::Type{Array}, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:364
  60. convert(::Type{SparseMatrixCSC{Tv,Ti} where Ti<:Integer}, S::SparseMatrixCSC{Tv,Ti} where Ti<:Integer) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:331
  61. convert(::Type{SparseMatrixCSC{Tv,Ti} where Ti<:Integer}, S::SparseMatrixCSC) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:332
  62. convert(::Type{SparseMatrixCSC{Tv,Ti}}, S::SparseMatrixCSC) where {Tv, Ti} in Base.SparseArrays at sparse/sparsematrix.jl:335
  63. convert(::Type{SparseVector{Tv,Ti}}, s::SparseMatrixCSC{Tv,Ti}) where {Tv, Ti<:Integer} in Base.SparseArrays at sparse/sparsevector.jl:318
  64. copy!(A::SparseMatrixCSC, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:271
  65. copy!(A::SparseVector, B::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsevector.jl:431
  66. copy!(A::SparseMatrixCSC, B::SparseVector{TvB,TiB}) where {TvB, TiB} in Base.SparseArrays at sparse/sparsevector.jl:447
  67. cos(A::SparseMatrixCSC) in Base at deprecated.jl:55
  68. cosc(A::SparseMatrixCSC) in Base at deprecated.jl:55
  69. cosd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  70. cosh(A::SparseMatrixCSC) in Base at deprecated.jl:55
  71. cospi(A::SparseMatrixCSC) in Base at deprecated.jl:55
  72. cot(A::SparseMatrixCSC) in Base at deprecated.jl:55
  73. cotd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  74. coth(A::SparseMatrixCSC) in Base at deprecated.jl:55
  75. count(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:73
  76. count(pred, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:74
  77. cov(X::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:973
  78. cov(X::SparseMatrixCSC, vardim::Int64) in Base.SparseArrays at sparse/linalg.jl:973
  79. csc(A::SparseMatrixCSC) in Base at deprecated.jl:55
  80. cscd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  81. csch(A::SparseMatrixCSC) in Base at deprecated.jl:55
  82. diagm(A::SparseMatrixCSC) in Base at deprecated.jl:55
  83. diff(a::SparseMatrixCSC, dim::Integer) in Base.SparseArrays at sparse/linalg.jl:514
  84. dropzeros(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1251
  85. dropzeros(A::SparseMatrixCSC, trim::Bool) in Base.SparseArrays at sparse/sparsematrix.jl:1251
  86. dropzeros!(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1228
  87. dropzeros!(A::SparseMatrixCSC, trim::Bool) in Base.SparseArrays at sparse/sparsematrix.jl:1228
  88. eig(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:970
  89. exp10(A::SparseMatrixCSC) in Base at deprecated.jl:55
  90. exp2(A::SparseMatrixCSC) in Base at deprecated.jl:55
  91. expm1(A::SparseMatrixCSC) in Base at deprecated.jl:55
  92. eye(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1520
  93. factorize(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:929
  94. find(p::Function, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1263
  95. find(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1256
  96. findmax(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1902
  97. findmin(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1901
  98. float(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:389
  99. floor(A::SparseMatrixCSC) in Base at deprecated.jl:55
  100. getindex(A::SparseMatrixCSC, I::Tuple{Integer,Integer}) in Base.SparseArrays at sparse/sparsematrix.jl:1913
  101. getindex(A::SparseMatrixCSC, ::Colon) in Base.SparseArrays at sparse/sparsevector.jl:577
  102. getindex(A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer, I::AbstractUnitRange) where Tv in Base.SparseArrays at sparse/sparsevector.jl:580
  103. getindex(A::SparseMatrixCSC{#s332,#s331} where #s331<:Integer where #s332, I::AbstractRange{Bool}, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2325
  104. getindex(A::SparseMatrixCSC{#s332,#s331} where #s331<:Integer where #s332, I::AbstractRange{Bool}, J::AbstractArray{#s330,1} where #s330<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2326
  105. getindex(A::SparseMatrixCSC, I::AbstractRange{#s332} where #s332<:Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2328
  106. getindex(x::SparseMatrixCSC, I::AbstractUnitRange, j::Integer) in Base.SparseArrays at sparse/sparsevector.jl:487
  107. getindex(A::SparseMatrixCSC, I::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsevector.jl:536
  108. getindex(A::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2330
  109. getindex(A::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2331
  110. getindex(A::SparseMatrixCSC, I::AbstractArray{#s332,1} where #s332<:Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2332
  111. getindex(A::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2333
  112. getindex(A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer, I::AbstractArray{T,1} where T) where Tv in Base.SparseArrays at sparse/sparsevector.jl:616
  113. getindex(A::SparseMatrixCSC, I::AbstractArray{T,1} where T, J::Integer) in Base.SparseArrays at sparse/sparsevector.jl:499
  114. getindex(A::SparseMatrixCSC, I::AbstractArray{Bool,N} where N) in Base.SparseArrays at sparse/sparsevector.jl:537
  115. getindex(A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer, I::AbstractArray) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:2283
  116. getindex(A::SparseMatrixCSC, i, ::Colon) in Base.SparseArrays at sparse/sparsematrix.jl:1926
  117. getindex(x::SparseMatrixCSC, ::Colon, j::Integer) in Base.SparseArrays at sparse/sparsevector.jl:480
  118. getindex(A::SparseMatrixCSC, ::Colon, i) in Base.SparseArrays at sparse/sparsematrix.jl:1927
  119. getindex(A::SparseMatrixCSC{Tv,Ti}, I::AbstractRange, J::AbstractArray{T,1} where T) where {Tv, Ti<:Integer} in Base.SparseArrays at sparse/sparsematrix.jl:1967
  120. getindex(A::SparseMatrixCSC, I::Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2329
  121. hash(A::SparseMatrixCSC{T,Ti} where Ti<:Integer, h::UInt64) where T in Base.SparseArrays at sparse/sparsematrix.jl:3505
  122. indmax(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1905
  123. indmin(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1904
  124. inv(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:837
  125. ishermitian(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3167
  126. issymmetric(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3165
  127. istril(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3265
  128. istriu(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3245
  129. kron(A::SparseMatrixCSC, B::Union{Array{T,1}, Array{T,2}} where T) in Base.SparseArrays at sparse/linalg.jl:807
  130. kron(A::Union{Array{T,1}, Array{T,2}} where T, B::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:808
  131. log10(A::SparseMatrixCSC) in Base at deprecated.jl:55
  132. log1p(A::SparseMatrixCSC) in Base at deprecated.jl:55
  133. log2(A::SparseMatrixCSC) in Base at deprecated.jl:55
  134. lu(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:969
  135. lufact(A::SparseMatrixCSC) in Base.SparseArrays.UMFPACK at sparse/umfpack.jl:158
  136. map(f::Tf, A::SparseMatrixCSC) where Tf in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:69
  137. map(f::Tf, A::SparseMatrixCSC, Bs::Vararg{SparseMatrixCSC,N}) where {Tf, N} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:70
  138. map!(f::Tf, C::SparseMatrixCSC, A::SparseMatrixCSC, Bs::Vararg{SparseMatrixCSC,N}) where {Tf, N} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:74
  139. map!(f::Tf, C::SparseMatrixCSC, A::Union{Bidiagonal, Diagonal, SymTridiagonal, Tridiagonal, SparseMatrixCSC}, Bs::Vararg{Union{Bidiagonal, Diagonal, SymTridiagonal, Tridiagonal, SparseMatrixCSC},N}) where {Tf, N} in Base.SparseArrays.HigherOrderFns at sparse/higherorderfns.jl:1069
  140. nnz(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:72
  141. nonzeros(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:100
  142. norm(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:520
  143. norm(A::SparseMatrixCSC, p::Real) in Base.SparseArrays at sparse/linalg.jl:520
  144. nzrange(S::SparseMatrixCSC, col::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:146
  145. one(S::SparseMatrixCSC{T,Ti} where Ti<:Integer) where T in Base.SparseArrays at sparse/sparsematrix.jl:1536
  146. qr(A::SparseMatrixCSC) in Base.SparseArrays.SPQR at sparse/spqr.jl:198
  147. qrfact(A::SparseMatrixCSC) in Base.SparseArrays.SPQR at sparse/spqr.jl:196
  148. reinterpret(::Type{T}, a::SparseMatrixCSC{S,Ti} where Ti<:Integer, dims::Tuple{Vararg{Int64,N}}) where {T, S, N} in Base at deprecated.jl:55
  149. rot180(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3462
  150. rotl90(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3482
  151. rotr90(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:3472
  152. round(A::SparseMatrixCSC) in Base at deprecated.jl:55
  153. rowvals(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:125
  154. scale!(A::SparseMatrixCSC, b::Number) in Base.SparseArrays at sparse/linalg.jl:899
  155. scale!(C::SparseMatrixCSC, b::Number, A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:892
  156. scale!(C::SparseMatrixCSC, A::SparseMatrixCSC, b::Array{T,1} where T) in Base.SparseArrays at sparse/linalg.jl:857
  157. scale!(C::SparseMatrixCSC, b::Array{T,1} where T, A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:870
  158. scale!(C::SparseMatrixCSC, A::SparseMatrixCSC, b::Number) in Base.SparseArrays at sparse/linalg.jl:884
  159. scale!(b::Number, A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:900
  160. sec(A::SparseMatrixCSC) in Base at deprecated.jl:55
  161. secd(A::SparseMatrixCSC) in Base at deprecated.jl:55
  162. sech(A::SparseMatrixCSC) in Base at deprecated.jl:55
  163. setindex!(A::SparseMatrixCSC{Tv,Ti}, v::Tv, i::Ti, j::Ti) where {Ti<:Integer, Tv} in Base.SparseArrays at sparse/sparsematrix.jl:2340
  164. setindex!(A::SparseMatrixCSC, x::Array{T,2} where T, I::Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2672
  165. setindex!(A::SparseMatrixCSC, v::AbstractArray{T,2} where T, i::Integer, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2363
  166. setindex!(A::SparseMatrixCSC, x::Array{T,2} where T, I::AbstractArray{Bool,1}, J::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2673
  167. setindex!(A::SparseMatrixCSC, v::AbstractArray{T,2} where T, I::AbstractArray{#s332,1} where #s332<:Integer, j::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2364
  168. setindex!(A::SparseMatrixCSC, x::Number, i::Integer, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2366
  169. setindex!(A::SparseMatrixCSC, x::Number, I::AbstractArray{#s332,1} where #s332<:Integer, j::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2367
  170. setindex!(A::SparseMatrixCSC, x, ::Colon) in Base.SparseArrays at sparse/sparsematrix.jl:2370
  171. setindex!(A::SparseMatrixCSC, x, ::Colon, ::Colon) in Base.SparseArrays at sparse/sparsematrix.jl:2371
  172. setindex!(A::SparseMatrixCSC, x, ::Colon, j::Union{Integer, AbstractArray{T,1} where T}) in Base.SparseArrays at sparse/sparsematrix.jl:2372
  173. setindex!(A::SparseMatrixCSC, x, I::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2684
  174. setindex!(A::SparseMatrixCSC, x, I::AbstractArray{Bool,2}) in Base.SparseArrays at sparse/sparsematrix.jl:2686
  175. setindex!(A::SparseMatrixCSC, x, I::AbstractArray{#s332,1} where #s332<:Real) in Base.SparseArrays at sparse/sparsematrix.jl:2786
  176. setindex!(A::SparseMatrixCSC, x, i::Union{Integer, AbstractArray{T,1} where T}, ::Colon) in Base.SparseArrays at sparse/sparsematrix.jl:2373
  177. setindex!(A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer, x::Number, I::AbstractArray{#s332,1} where #s332<:Integer, J::AbstractArray{#s331,1} where #s331<:Integer) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:2377
  178. setindex!(A::SparseMatrixCSC, x::Array{T,2} where T, I::AbstractArray{Bool,1}, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2674
  179. setindex!(A::SparseMatrixCSC, x::Array{T,2} where T, I::AbstractArray{#s332,1} where #s332<:Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2675
  180. setindex!(A::SparseMatrixCSC, x::Array{T,2} where T, I::AbstractArray{Bool,1}, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2676
  181. setindex!(A::SparseMatrixCSC, v::AbstractArray{T,1} where T, I::AbstractArray{#s332,1} where #s332<:Integer, j::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2539
  182. setindex!(A::SparseMatrixCSC, v::AbstractArray{T,1} where T, i::Integer, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2540
  183. setindex!(A::SparseMatrixCSC, v::AbstractArray{T,1} where T, I::AbstractArray{T,1}, J::AbstractArray{T,1}) where T<:Integer in Base.SparseArrays at sparse/sparsematrix.jl:2541
  184. setindex!(A::Array{T,2} where T, x::SparseMatrixCSC, I::Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2678
  185. setindex!(A::Array{T,2} where T, x::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2679
  186. setindex!(A::Array{T,2} where T, x::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2680
  187. setindex!(A::Array{T,2} where T, x::SparseMatrixCSC, I::AbstractArray{#s332,1} where #s332<:Integer, J::AbstractArray{Bool,1}) in Base.SparseArrays at sparse/sparsematrix.jl:2681
  188. setindex!(A::Array{T,2} where T, x::SparseMatrixCSC, I::AbstractArray{Bool,1}, J::AbstractArray{#s332,1} where #s332<:Integer) in Base.SparseArrays at sparse/sparsematrix.jl:2682
  189. show(io::IOContext, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:160
  190. show(io::IO, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:158
  191. show(io::IO, ::MIME{Symbol("text/plain")}, S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:149
  192. similar(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:317
  193. similar(S::SparseMatrixCSC, ::Type{Tv}) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:317
  194. similar(S::SparseMatrixCSC, ::Type{Tv}, ::Type{Ti}) where {Tv, Ti} in Base.SparseArrays at sparse/sparsematrix.jl:321
  195. similar(S::SparseMatrixCSC, ::Type{Tv}, d::Tuple{Vararg{Int64,N}} where N) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:326
  196. sin(A::SparseMatrixCSC) in Base at deprecated.jl:55
  197. sinc(A::SparseMatrixCSC) in Base at deprecated.jl:55
  198. sind(A::SparseMatrixCSC) in Base at deprecated.jl:55
  199. sinh(A::SparseMatrixCSC) in Base at deprecated.jl:55
  200. sinpi(A::SparseMatrixCSC) in Base at deprecated.jl:55
  201. sparse(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:420
  202. speye(S::SparseMatrixCSC{T,Ti} where Ti<:Integer) where T in Base.SparseArrays at sparse/sparsematrix.jl:1519
  203. spones(S::SparseMatrixCSC{T,Ti} where Ti<:Integer) where T in Base.SparseArrays at sparse/sparsematrix.jl:1460
  204. tan(A::SparseMatrixCSC) in Base at deprecated.jl:55
  205. tand(A::SparseMatrixCSC) in Base at deprecated.jl:55
  206. tanh(A::SparseMatrixCSC) in Base at deprecated.jl:55
  207. trace(A::SparseMatrixCSC{Tv,Ti} where Ti<:Integer) where Tv in Base.SparseArrays at sparse/sparsematrix.jl:3393
  208. transpose(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:836
  209. tril!(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1202
  210. tril!(A::SparseMatrixCSC, k::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:1202
  211. tril!(A::SparseMatrixCSC, k::Integer, trim::Bool) in Base.SparseArrays at sparse/sparsematrix.jl:1202
  212. triu!(A::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:1209
  213. triu!(A::SparseMatrixCSC, k::Integer) in Base.SparseArrays at sparse/sparsematrix.jl:1209
  214. triu!(A::SparseMatrixCSC, k::Integer, trim::Bool) in Base.SparseArrays at sparse/sparsematrix.jl:1209
  215. trunc(A::SparseMatrixCSC) in Base at deprecated.jl:55
  216. vec(S::SparseMatrixCSC) in Base.SparseArrays at sparse/sparsematrix.jl:396
  217. vecnorm(A::SparseMatrixCSC) in Base.SparseArrays at sparse/linalg.jl:517
  218. vecnorm(A::SparseMatrixCSC, p::Real) in Base.SparseArrays at sparse/linalg.jl:517

About

Allows a Sparse Matrix to maintain its sparsity while still being centered

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages