On Monday, December 22, 2014 01:52:55 AM Robert Gates wrote: > Shouldn't such a fallback method be on the books for 0.4?
If someone volunteers their time to make it happen. Care to give it a whirl? > I thought > Suitesparse was handling sparse arrays? No idea, and I also have no idea whether suitesparse is flexible enough to handle subarrays efficiently. If it does have to be written in julia, at least for multiplication I suspect (1) it wouldn't be hard to implement, and (2) it could probably be competitive. For example, see https://github.com/madeleineudell/ParallelSparseMatMul.jl (obviously it's not required to implement a parallelized version). --Tim > > On Sunday, December 21, 2014 12:24:03 PM UTC+1, Tim Holy wrote: > > It looks like no one has written the required methods yet. A really > > efficient > > method that exploits the sparseness of b would require some custom code. > > But I > > am surprised that there isn't a generic AbstractArray fallback that works. > > That fallback would be much more efficient in 0.4 than 0.3 (in 0.3 that > > fallback > > would go through linear indexing, which is slow for a sparse matrix). But > > both > > would pale by comparison to an algorithm specifically tuned to exploit > > sparseness. > > > > --Tim > > > > On Saturday, December 20, 2014 08:25:24 PM Robert Gates wrote: > > > Hi Julians, > > > > > > When trying this, I get (Julia 0.3.3): > > > > > > *julia> **b = sub(a,1:2,1:2)* > > > > > > *2x2 > > > > SubArray{Float64,2,SparseMatrixCSC{Float64,Int64},(UnitRange{Int64},UnitRa > > ng> > > > e{Int64})}:* > > > > > > * 1.0 0.0* > > > > > > * 0.0 1.0* > > > > > > > > > *julia> **b*ones(2)* > > > > > > *ERROR: `A_mul_B!` has no method matching A_mul_B!(::Array{Float64,1}, > > > > > ::SubArray{Float64,2,SparseMatrixCSC{Float64,Int64},(UnitRange{Int64},Unit > > ::Ra > > :: > > > ::nge{Int64})}, Array{Float64,1})* > > > > > > * in * at linalg/matmul.jl:72* > > > > > > Am I doing something wrong? If it's unsupported, does multiplication of > > > sparse subarrays work in 0.4? > > > > > > Best regards, > > > > > > Robert
