Skip to content

Commit

Permalink
trying to fix signed and unsinged integer comparison
Browse files Browse the repository at this point in the history
  • Loading branch information
Ichitaro Yamazaki committed Jun 9, 2021
1 parent 6d56d48 commit 47676c2
Showing 1 changed file with 52 additions and 47 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -254,7 +254,10 @@ namespace {
typedef CrsMatrix<Scalar,LO,GO,Node> MAT;
typedef typename MAT::impl_scalar_type matrix_scalar_t;
typedef MatrixAdapter<MAT> ADAPT;
typedef std::pair<matrix_scalar_t, GO> my_pair_t;
using nzvals_t = typename MAT::nonconst_values_host_view_type;
using indices_t = typename MAT::nonconst_global_inds_host_view_type;
using index_t = typename indices_t::value_type;
using my_pair_t = std::pair<matrix_scalar_t, index_t>;
RCP<const Comm<int> > comm = Tpetra::getDefaultComm();
const size_t rank = comm->getRank();

Expand All @@ -274,14 +277,14 @@ namespace {

RCP<ADAPT> adapter = Amesos2::createMatrixAdapter<MAT>(mat);

Array<global_size_t> rowptr_test(tuple<global_size_t>(0,3,5,6,8,10,12));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,-3,-1,2,8,1,-3,5,-1,4,-2,6));
Array<GO> colind_test(tuple<GO>(0,2,4,0,1,2,0,3,1,4,3,5));
indices_t rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
indices_t colind ("colind", adapter->getGlobalNNZ());
nzvals_t nzvals ("nzvals", adapter->getGlobalNNZ());

typename MAT::nonconst_values_host_view_type nzvals ("nzvals", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type colind ("colind", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
size_t nnz = 0;
Array<index_t> rowptr_test(tuple<index_t>(0,3,5,6,8,10,12));
Array<index_t> colind_test(tuple<index_t>(0,2,4,0,1,2,0,3,1,4,3,5));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,-3,-1,2,8,1,-3,5,-1,4,-2,6));

///////////////////////////////////////////
// Check getting a rooted representation //
Expand All @@ -296,18 +299,18 @@ namespace {
// know that they need to match up with what is expected.
GO maxRow = map->getMaxAllGlobalIndex();
for ( GO row = map->getMinAllGlobalIndex(); row <= maxRow; ++row ){
global_size_t rp = rowptr[row];
global_size_t nrp = rowptr[row+1];
global_size_t row_nnz = nrp - rp;
TEST_ASSERT( rp < as<global_size_t>(nzvals.size()) );
TEST_ASSERT( rp < as<global_size_t>(colind.size()) );
index_t rp = rowptr[row];
index_t nrp = rowptr[row+1];
index_t row_nnz = nrp - rp;
TEST_ASSERT( rp < as<index_t>(nzvals.size()) );
TEST_ASSERT( rp < as<index_t>(colind.size()) );
ArrayView<matrix_scalar_t> nzvals_array (&(nzvals(rp)), row_nnz);
ArrayView<GO> colind_array (&(colind(rp)), row_nnz);
const RCP<Array<my_pair_t> > expected_pairs
= zip(nzvals_test.view(rp,row_nnz), colind_test.view(rp,row_nnz));
const RCP<Array<my_pair_t> > got_pairs
= zip(nzvals_array, colind_array);
for ( global_size_t i = 0; i < row_nnz; ++i ){
for ( index_t i = 0; i < row_nnz; ++i ){
TEST_ASSERT( contains((*got_pairs)(), (*expected_pairs)[i]) );
}
}
Expand Down Expand Up @@ -340,7 +343,10 @@ namespace {
typedef CrsMatrix<Scalar,LO,GO,Node> MAT;
typedef typename MAT::impl_scalar_type matrix_scalar_t;
typedef MatrixAdapter<MAT> ADAPT;
typedef std::pair<matrix_scalar_t, GO> my_pair_t;
using nzvals_t = typename MAT::nonconst_values_host_view_type;
using indices_t = typename MAT::nonconst_global_inds_host_view_type;
using index_t = typename indices_t::value_type;
using my_pair_t = std::pair<matrix_scalar_t, index_t>;
RCP<const Comm<int> > comm = Tpetra::getDefaultComm();
// create a Map for our matrix
global_size_t nrows = 6;
Expand All @@ -361,13 +367,13 @@ namespace {

RCP<ADAPT> adapter = Amesos2::createMatrixAdapter<MAT>(mat);

Array<global_size_t> rowptr_test(tuple<global_size_t>(0,3,5,6,8,10,12));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,-3,-1,2,8,1,-3,5,-1,4,-2,6));
Array<GO> colind_test(tuple<GO>(0,2,4,0,1,2,0,3,1,4,3,5));
indices_t rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
indices_t colind ("colind", adapter->getGlobalNNZ());
nzvals_t nzvals ("nzvals", adapter->getGlobalNNZ());

typename MAT::nonconst_values_host_view_type nzvals ("nzvals", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type colind ("colind", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
Array<index_t> rowptr_test(tuple<index_t>(0,3,5,6,8,10,12));
Array<index_t> colind_test(tuple<index_t>(0,2,4,0,1,2,0,3,1,4,3,5));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,-3,-1,2,8,1,-3,5,-1,4,-2,6));
size_t nnz;

////////////////////////////////////////////////////
Expand All @@ -384,18 +390,18 @@ namespace {
// know that they need to match up with what is expected.
GO maxRow = map->getMaxAllGlobalIndex();
for ( GO row = map->getMinAllGlobalIndex(); row <= maxRow; ++row ){
global_size_t rp = rowptr[row];
global_size_t nrp = rowptr[row+1];
global_size_t row_nnz = nrp - rp;
TEST_ASSERT( rp < as<global_size_t>(nzvals.size()) );
TEST_ASSERT( rp < as<global_size_t>(colind.size()) );
index_t rp = rowptr[row];
index_t nrp = rowptr[row+1];
index_t row_nnz = nrp - rp;
TEST_ASSERT( rp < as<index_t>(nzvals.size()) );
TEST_ASSERT( rp < as<index_t>(colind.size()) );
ArrayView<matrix_scalar_t> nzvals_array (&(nzvals(rp)), row_nnz);
ArrayView<GO> colind_array (&(colind(rp)), row_nnz);
const RCP<Array<my_pair_t> > expected_pairs
= zip(nzvals_test.view(rp,row_nnz), colind_test.view(rp,row_nnz));
const RCP<Array<my_pair_t> > got_pairs
= zip(nzvals_array, colind_array);
for ( global_size_t i = 0; i < row_nnz; ++i ){
for ( index_t i = 0; i < row_nnz; ++i ){
TEST_ASSERT( contains((*got_pairs)(), (*expected_pairs)[i]) );
}
}
Expand Down Expand Up @@ -425,6 +431,9 @@ namespace {
typedef CrsMatrix<Scalar,LO,GO,Node> MAT;
typedef typename MAT::impl_scalar_type matrix_scalar_t;
typedef MatrixAdapter<MAT> ADAPT;
using nzvals_t = typename MAT::nonconst_values_host_view_type;
using indices_t = typename MAT::nonconst_global_inds_host_view_type;
using index_t = typename indices_t::value_type;
RCP<const Comm<int> > comm = Tpetra::getDefaultComm();
const size_t numprocs = comm->getSize();
const size_t rank = comm->getRank();
Expand All @@ -447,16 +456,13 @@ namespace {

RCP<ADAPT> adapter = Amesos2::createMatrixAdapter<MAT>(mat);

Array<GO> colind_test(tuple<GO>(0,2,4,0,1,2,0,3,1,4,3,5));
indices_t rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
indices_t colind ("colind", adapter->getGlobalNNZ());
nzvals_t nzvals ("nzvals", adapter->getGlobalNNZ());

Array<index_t> rowptr_test(tuple<index_t>(0,3,5,6,8,10,12));
Array<index_t> colind_test(tuple<index_t>(0,2,4,0,1,2,0,3,1,4,3,5));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,-3,-1,2,8,1,-3,5,-1,4,-2,6));
Array<global_size_t> rowptr_test(tuple<global_size_t>(0,3,5,6,8,10,12));

//Array<Scalar> nzvals(adapter->getGlobalNNZ());
//Array<GO> colind(adapter->getGlobalNNZ());
//Array<global_size_t> rowptr(adapter->getGlobalNumRows() + 1);
typename MAT::nonconst_values_host_view_type nzvals ("nzvals", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type colind ("colind", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type rowptr ("rowptr", adapter->getGlobalNumRows() + 1);
size_t nnz;

/**
Expand All @@ -474,7 +480,6 @@ namespace {
}
const Map<LO,GO,Node> half_map(6, my_num_rows, 0, comm);

//adapter->getCrs(nzvals,colind,rowptr,nnz, Teuchos::ptrInArg(half_map), Amesos2::SORTED_INDICES, Amesos2::DISTRIBUTED); // ROOTED = default distribution
adapter->getCrs_kokkos_view(nzvals,colind,rowptr,nnz, Teuchos::ptrInArg(half_map), SORTED_INDICES, DISTRIBUTED); // ROOTED = default distribution

/*
Expand Down Expand Up @@ -509,6 +514,9 @@ namespace {
typedef CrsMatrix<Scalar,LO,GO,Node> MAT;
typedef typename MAT::impl_scalar_type matrix_scalar_t;
typedef MatrixAdapter<MAT> ADAPT;
using nzvals_t = typename MAT::nonconst_values_host_view_type;
using indices_t = typename MAT::nonconst_global_inds_host_view_type;
using index_t = typename indices_t::value_type;

RCP<const Comm<int> > comm = Tpetra::getDefaultComm();
const size_t rank = comm->getRank();
Expand All @@ -528,16 +536,13 @@ namespace {

RCP<ADAPT> adapter = Amesos2::createMatrixAdapter<MAT>(mat);

Array<global_size_t> colptr_test(tuple<global_size_t>(0,3,5,7,9,11,12));
indices_t colptr ("colptr", adapter->getGlobalNumRows() + 1);
indices_t rowind ("rowind", adapter->getGlobalNNZ());
nzvals_t nzvals ("nzvals", adapter->getGlobalNNZ());

Array<index_t> rowind_test(tuple<index_t>(0,1,3,1,4,0,2,3,5,0,4,5));
Array<index_t> colptr_test(tuple<index_t>(0,3,5,7,9,11,12));
Array<matrix_scalar_t> nzvals_test(tuple<matrix_scalar_t>(7,2,-3,8,-1,-3,1,5,-2,-1,4,6));
Array<GO> rowind_test(tuple<GO>(0,1,3,1,4,0,2,3,5,0,4,5));

//Array<Scalar> nzvals(adapter->getGlobalNNZ());
//Array<GO> rowind(adapter->getGlobalNNZ());
//Array<global_size_t> colptr(adapter->getGlobalNumRows() + 1);
typename MAT::nonconst_values_host_view_type nzvals ("nzvals", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type rowind ("rowind", adapter->getGlobalNNZ());
typename MAT::nonconst_global_inds_host_view_type colptr ("colptr", adapter->getGlobalNumRows() + 1);
size_t nnz;

//adapter->getCcs(nzvals,rowind,colptr,nnz,ROOTED);
Expand All @@ -549,8 +554,8 @@ namespace {
// rowind, so we can just compare the expected and received
// straight-up
ArrayView<matrix_scalar_t> nzvals_array (&(nzvals(0)), adapter->getGlobalNNZ());
ArrayView<GO> rowind_array (&(rowind(0)), adapter->getGlobalNNZ());
ArrayView<GO> colptr_array (&(colptr(0)), adapter->getGlobalNumRows() + 1);
ArrayView<index_t> rowind_array (&(rowind(0)), adapter->getGlobalNNZ());
ArrayView<index_t> colptr_array (&(colptr(0)), adapter->getGlobalNumRows() + 1);
TEST_COMPARE_ARRAYS(nzvals_array,nzvals_test);
TEST_COMPARE_ARRAYS(rowind_array,rowind_test);
TEST_COMPARE_ARRAYS(colptr_array,colptr_test);
Expand Down

0 comments on commit 47676c2

Please sign in to comment.