Time's kind of scarce atm, but I'll check it out when I'm done with my master's thesis :)
On Monday, December 22, 2014 12:19:07 PM UTC+1, Tim Holy wrote: > > 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 > >
