6 #ifndef MYRAMATH_SPARSE_PATTERNBUILDER_H 7 #define MYRAMATH_SPARSE_PATTERNBUILDER_H 14 #include <myramath/utility/detail/LIBPUBLIC.h> 18 #include <unordered_set> 38 typedef std::vector<Column> Columns;
39 typedef Column::const_iterator Iterator;
56 #ifdef MYRAMATH_ENABLE_CPP11 79 void insert(
int i,
int j);
83 void insert_row(
int i,
const intCRange& j_pattern);
87 void insert_column(
const intCRange& i_pattern,
int j);
93 void insert_tensor(
const intCRange& ij_pattern);
96 void insert(
const PatternBuilder& that,
int i_offset = 0,
int j_offset = 0);
97 void insert(
const PatternRange& that,
int i_offset = 0,
int j_offset = 0);
100 void erase(
int i,
int j);
103 void erase(
const PatternBuilder& that,
int i_offset = 0,
int j_offset = 0);
104 void erase(
const PatternRange& that,
int i_offset = 0,
int j_offset = 0);
109 Iterator begin(
int j)
const;
110 Iterator end (
int j)
const;
115 bool test(
int i,
int j)
const;
118 std::vector<int> pattern(
int j)
const;
121 const Column& column(
int j)
const;
124 std::pair<int,int> size()
const;
127 int n_nonzeros(
int j)
const;
128 int n_nonzeros()
const;
145 void constructor_detail(
int in_I,
int in_J);
165 LIBPUBLIC std::ostream& operator << (std::ostream& out,
const PatternBuilder& p);
Number random()
Generate random real/complex Numbers, uniformly distributed over [-1,1].
std::set< int > Column
Useful typedefs.
Definition: PatternBuilder.h:37
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:31
Represents a const intRange.
Definition: intRange.h:142