PURIFY
Next-generation radio interferometric imaging
sparse.cc
Go to the documentation of this file.
1 #include "purify/config.h"
2 #include "purify/types.h"
3 #include <iostream>
4 #include "catch2/catch_all.hpp"
5 #include "purify/directories.h"
6 #include "purify/logging.h"
7 using namespace purify;
8 
9 TEST_CASE("sparse [iterator]", "[iterator]") {
10  t_int NZnum = 40;
11  std::vector<t_tripletList> entries;
12  entries.reserve(NZnum);
13  Vector<t_int> rows = Vector<t_int>::LinSpaced(NZnum, 0, 2 * NZnum);
14  Vector<t_int> cols = Vector<t_int>::LinSpaced(NZnum, 0, 3 * NZnum);
15 
16  for (t_int i = 0; i < NZnum; ++i) {
17  entries.emplace_back(rows(i), cols(i), i);
18  }
19  const t_int total_rows = 5 * NZnum;
20  const t_int total_cols = 4 * NZnum;
21  Sparse<t_complex> G(total_rows, total_cols);
22  G.setFromTriplets(entries.begin(), entries.end());
23  for (t_int i = 0; i < total_cols; ++i) {
24  for (Sparse<t_complex>::InnerIterator pix(G, i); pix; ++pix) {
25  PURIFY_HIGH_LOG("{} {} {}", pix.row(), pix.col(), std::real(pix.value()));
26  }
27  }
28  // CHECK(expected.isApprox(output, 1e-13));
29 }
#define PURIFY_HIGH_LOG(...)
High priority message.
Definition: logging.h:203
Eigen::SparseMatrix< T, Eigen::RowMajor, I > Sparse
A matrix of a given type.
Definition: types.h:40
TEST_CASE("sparse [iterator]", "[iterator]")
Definition: sparse.cc:9