12   auto const world = mpi::Communicator::World();
 
   14   CAPTURE(serial.size());
 
   15   CAPTURE(world.size());
 
   16   auto const leftover = serial.size() % world.size();
 
   18       world.rank() * (serial.size() / world.size()) + std::min(world.rank(), leftover);
 
   19   auto const end = start + (serial.size() / world.size()) +
 
   20                    ((1 <= leftover and leftover > world.rank()) ? 1 : 0);
 
   24   auto constexpr Nx = 32;
 
   25   auto constexpr Ny = 32;
 
   26   auto const psi_serial = linear_transform<t_real>(serial, Nx, Ny);
 
   27   auto const psi_parallel = linear_transform<t_real>(parallel, Nx, Ny, world);
 
   29   SECTION(
"Signal to Coefficients") {
 
   32         (psi_serial.adjoint() * signal).segment(start * Nx * Ny, (end - start) * Nx * Ny);
 
   33     Vector<t_real> const para_coeffs = psi_parallel.adjoint() * signal;
 
   36     CHECK(serial_coeffs.isApprox(para_coeffs));
 
   39   SECTION(
"Coefficients to Signal") {
 
   40     auto const coefficients =
 
   44         psi_parallel * coefficients.segment(start * Nx * Ny, (end - start) * Nx * Ny);
 
   45     CHECK(serial_signal.isApprox(para_signal));
 
Sparsity Averaging Reweighted Analysis.
 
Eigen::Matrix< T, Eigen::Dynamic, 1 > Vector
A vector of a given type.