Closed kumargp closed 6 years ago
I am not able to get values from dense matrix. All the values are 0's. Could you check the methods used. ?.
#include <iostream> #include <cassert> #include <utility> #include <vector> #include <algorithm> #include <string> #include <set> #include <ctime> #include <set> #include <utility> #include <map> #include "las.h" #include "lasSparse.h" #include "lasDense.h" #include "lasCSRBuilder.h" #include "lasSparseDense.h" int main() { int nr = 4; int nc = 3; double darr[] = {1., 2., 3., 1., 1., 1., 2., 2., 2., 3., 3., 3., 4., 4., 4.,}; las::LasCreateMat *dens_fct =las::getMatBuilder<las::dense>(0); las::Mat *mDens = dens_fct->create(0, 0, las::createDensity(nr, nc, darr), MPI_COMM_SELF); auto *dOps = las::getLASOps<las::dense>(); assert(mDens && dOps); std::vector <int> rows(nc, 0); std::vector <int> columns(nr, 0); for(int i=0; i< nr; ++i) rows[i] = i; for(int j=0; j<nc; ++j) columns[j] = j; double *val = nullptr; for(int i=0; i<nr; ++i) { for(int j=0; j<nc; ++j) { dOps->get(mDens, 1, &rows[i], 1, &columns[j], &val); std::cout << *val << " | " << darr[i*nc+j] << "\n"; } } delete[] val; return 0; }
//The output is
0 | 1 0 | 2 0 | 3 0 | 1 0 | 1 0 | 1 0 | 2 0 | 2 0 | 2 0 | 3 0 | 3 0 | 3
Fixed in commit 0ff50956e075375eaf15c292c3e9bf0b1cf1ac78 and merged into master, along with adding a test case for the dense backend.
I am not able to get values from dense matrix. All the values are 0's. Could you check the methods used. ?.
//The output is