6 #ifndef MYRAMATH_SPARSE_PATTERNBUILDER_H 7 #define MYRAMATH_SPARSE_PATTERNBUILDER_H 15 #include <myramath/MYRAMATH_EXPORT.h> 19 #include <unordered_set> 58 typedef std::vector<Couplet> Couplets;
76 #ifdef MYRAMATH_ENABLE_CPP11 99 void insert(
int i,
int j);
103 void insert_row(
int i,
const intCRange& j_pattern);
107 void insert_column(
const intCRange& i_pattern,
int j);
113 void insert_tensor(
const intCRange& ij_pattern);
116 void insert(
const PatternBuilder& that,
int i_offset = 0,
int j_offset = 0);
117 void insert(
const PatternRange& that,
int i_offset = 0,
int j_offset = 0);
120 void erase(
int i,
int j);
125 Iterator begin()
const;
126 Iterator end()
const;
129 std::pair<int,int> size()
const;
146 void constructor_detail(
int in_I,
int in_J);
161 MYRAMATH_EXPORT std::ostream& operator << (std::ostream& out,
const PatternBuilder& p);
Number random()
Generate random real/complex Numbers, uniformly distributed over [-1,1].
Value type of PatternBuilder, stores (i,j) indices.
Definition: PatternBuilder.h:32
Represents an immutable view of a Pattern.
Definition: PatternRange.h:31
Abstraction layer, serializable objects write themselves to these.
Definition: Streams.h:39
Holds the nonzero pattern of a sparse matrix.
Definition: Pattern.h:55
Like Pattern, but easier to populate via insert()/erase() methods.
Definition: PatternBuilder.h:51
Represents a const intRange.
Definition: intRange.h:142