void generateRandomSparseMatrix(size_t N, size_t M, size_t nEntries, CSparseMatrix &MAT) { MAT.clear(); MAT.setRowCount(N); MAT.setColCount(M); for (size_t i=0;i<nEntries;i++) { MAT.insert_entry( mrpt::random::randomGenerator.drawUniform32bit() % N, mrpt::random::randomGenerator.drawUniform32bit() % M, mrpt::random::randomGenerator.drawGaussian1D(0,1) ); } // Return already compressed: MAT.compressFromTriplet(); }
TEST(SparseMatrix, InitFromTriplet) { CSparseMatrix SM; CMatrixDouble D(10,20); SM.insert_entry(2,2, 4.0); D(2,2) = 4.0; SM.insert_entry(6,8, -2.0); D(6,8) = -2.0; SM.setRowCount(10); SM.setColCount(20); CMatrixDouble dense_out1; SM.get_dense(dense_out1); SM.compressFromTriplet(); CMatrixDouble dense_out2; SM.get_dense(dense_out2); EXPECT_TRUE(dense_out1==dense_out2); }