Re: RE: Filling sparse matrix by A(i, i)=... .Fast for small matrices, slow for large.Is there a better way to fill the matrix?
Janusz opechowski <[email protected]> Tue, 26 Apr 2005 13:18:35 +0100 (BST)
| Newsgroups | gmane.comp.lib.mtl.devel |
|---|---|
| Message-ID | <[email protected]> |
Hi there, try using previously allocated memory. Everytime you add some value probably memory is allocate one more time ( .. how about std::vector<T>.reserve() mechanism dear sirs ) Beautifull exampe of it is in MTL's online example file. Go there : http://www.osl.iu.edu/research/mtl/show_src.php3?file=./examples/sparse_matrix.cc Cheers. JO --- Guilherme Parreira <[email protected]> wrote: > The MTL documentation says to use iterators in order > to speed up computation > in matrices, but I don't know how. > > Regards, > ============================== > Eng. Guilherme F. Parreira > Electrical Engineering Graduate Student > GOPAC - UFMG - Brazil > ============================== > -----Original Message----- > From: [email protected] > [mailto:[email protected]] On > Behalf Of Tony > Sent: domingo, 24 de abril de 2005 10:23 > To: [email protected] > Subject: MTL: Filling sparse matrix by A(i, i)=... > .Fast for small > matrices,slow for large.Is there a better way to > fill the matrix? > > Hi > > I have a sparse matrix > > #define N 10000 > > typedef matrix< Type, > rectangle<>, > compressed<>, > row_major >::type Matrix; > > Matrix A(N,N); > > and I am filling it up something like > > for(i=0; i < N ; i++){ > A(i,i) = .... > lots of other stuff in here setting up other > elements of A > > } > > In my case I have quite a complex set of if > statements in the loop > setting up the A matrix and I have a maximum of 12 > non zero entries on > each row. > > The code works fine for small matrix sizes, say N > less than 50,000. > But when I set N larger than this the code runs very > slowly. In my > case I would like to run the code with N=1500000. > But I need to leave > the computer on for several days for A to be > constructed. > > Question: > Can I fill the elements of A in a faster way? I am > wondering if if > would be faster adding a whole row at a time to A, > but I don't know > how to do this, if this is a possibility can someone > please show me > how to do this and/or any other ways I can speed up > filling up the > elements of A > > Thank you for your time > > Tony > > _______________________________________________ > This list is archived at > http://www.osl.iu.edu/MailArchives/mtl-devel/ > > > > _______________________________________________ > This list is archived at > http://www.osl.iu.edu/MailArchives/mtl-devel/ > ________________________________________________________________________ Yahoo! Messenger - Communicate instantly..."Ping" your friends today! Download Messenger Now http://uk.messenger.yahoo.com/download/index.html _______________________________________________ This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/