6#ifndef popsparse_SparsityParams_hpp
7#define popsparse_SparsityParams_hpp
27std::ostream &operator<<(std::ostream &os,
const SparsityType &t);
34struct SparsityParams {
43 std::array<std::size_t, 2> blockDimensions;
47 std::array<std::size_t, 2> blockDimensions_ = {1, 1}) {
50 type = blockDimensions_[0] * blockDimensions_[1] == 1
53 structure = structure_;
54 blockDimensions = std::move(blockDimensions_);
57 SparsityParams(
const SparsityParams &) =
default;
59 friend bool operator<(
const SparsityParams &a,
const SparsityParams &b);
60 friend bool operator==(
const SparsityParams &a,
const SparsityParams &b);
61 friend bool operator!=(
const SparsityParams &a,
const SparsityParams &b);
63 friend std::ostream &
operator<<(std::ostream &os,
const SparsityParams &p);
std::ostream & operator<<(std::ostream &os, const CollectiveOperator &op)
Write op to output stream os.
SparsityStructure
Sparsity structure.
Definition: SparsityParams.hpp:30
SparsityType
Sparsity type.
Definition: SparsityParams.hpp:18
@ Element
Sparsity is defined at an element level.
@ Block
Sparsity is defined at a block level.
Support for sparse matrices.
Definition: codelets.hpp:8