compressed2D insertion

Rechnan <[email protected]> Fri, 16 Oct 2009 04:52:59 -0700 (PDT)
Newsgroups gmane.comp.lib.mtl.devel
Message-ID <[email protected]>
Hi there,

I have an adjacency matrix of about 30000x30000 with ~200000 nonzero entries
and I would like to use it with MTL. The matrix is in a file in matrix
market format and I have slightly modified the first Matrix Insertion
example to read it. The insertion of the first 100 elements already takes
over 15 sec time, what am I doing wrong? I am using Visual Studio 2008
Express.

The source code is as follows:

// File: insert.cpp

#include <iostream>
#include <boost/numeric/mtl/mtl.hpp>

using namespace mtl;

template <typename Matrix>
void insval(Matrix& m, int index1, int index2, double val)
{
    // Matrices are not initialized by default
    m= 0.0;

    // Create inserter for matrix m
    matrix::inserter<Matrix> ins(m);
    
    // Insert value
    ins[index1][index2] << val;

}



int main(int argc, char* argv[])
{
    compressed2D<double>              A(30000, 30000);
	
	FILE* matrixfile;

	matrixfile=fopen("A_cpp.txt","r");

	int count=0, index1=0, index2=0;
	double value=0;

	clock_t start, finish;
	double duration;

	start = clock();

	while(fscanf(matrixfile, "%d %d %Lg", &index1, &index2, &value)!=EOF &&
count<100){// insert first 100 values only
		count++;
		insval(A, index1-40360, index2-40360, value); // smallest index is
40360...
	}

	finish = clock();

	duration = (double)(finish - start) / CLOCKS_PER_SEC;
	printf( "%2.1f seconds\n", duration );

    return 0;
}


Thanks for your time!

Rechnan
-- 
View this message in context: http://www.nabble.com/compressed2D-insertion-tp25923416p25923416.html
Sent from the MTL Dev mailing list archive at Nabble.com.

_______________________________________________
This list is archived at http://www.osl.iu.edu/MailArchives/mtl-devel/