Thanks everyone,
That's a 3000 fold speedup. Now if only I can get the same improvement on
the stMincuts iGraph algorithm.




On Fri, Apr 25, 2014 at 4:20 AM, Martin Maechler <maechler@stat.math.ethz.ch
> wrote:

> >>>>> Stefan Evert <stefanML@collocations.de>
> >>>>>     on Fri, 25 Apr 2014 09:09:31 +0200 writes:
>
>     > On 24 Apr 2014, at 23:56, Greg Snow <538280@gmail.com> wrote:
>
>     >> library(Matrix)
>     >>
>     >> adjM <- Matrix(0,nrow=10,ncol=10)
>     >>
>     >> locs <- cbind( sample(1:10), sample(1:10) )
>     >> vals <- rnorm(10)
>     >>
>     >> adjM[ locs ] <- vals
>
>     > ... and once you've got your data in this format, why not construct
> the sparse matrix directly?
>
>     > adjM <- sparseMatrix(i = locs[,1], j = locs[,2], x = vals)
>
>     > I've found this to be very efficient and have used it with sparse
> matrices containing up to around 100 million nonzero entries.
>
> Yes, indeed,  thank you Stefan!
>
> Let me reiterate :
>
> __  Unless you can use special constructors such as
> __
> __   Diagonal()      # diagonal matrices
> __   bdiag()         # block diagonal matrices
> __   bandSparse()    # "banded diagonal" matrices
> __   kronecker(a, b) # where a or b are sparse
> __
> __   (and maybe another one I forgot)
> __
> __  *the* way to efficiently construct large sparse matrices is
> __    sparseMatrix()
> __    or sometimes its alternative / precursor  spMatrix().
> __
> __    Matrix(d, ...., sparse=TRUE)
> __
> __  is nice and fine only for relatively *small* matrices,
> __  as it really works from a dense original 'd' (directly or via
> replication)
>
>
>     > Hope this helps,
>
> I do hope, too.
> I'm very happy for suggestions on  how  we as Matrix authors
> could make this better known.
>
> Recently, someone proposed to make the 'rsparseMatrix()'
> utility function from  help(sparseMatrix)
> into an "official" Matrix package function.  If I did that,
> I could start using  rsparseMatrix() in typical examples rather
> than the current often use of  Matrix()  or
> as(<traditional matrix>, "sparseMatrix")
> both of which are perfect for the small examples that are
> typical for help files.
>
> Martin Maechler,
> ETH Zurich
>
>

	[[alternative HTML version deleted]]

