6 #ifndef MYRAMATH_SPARSE_PATTERN_H 7 #define MYRAMATH_SPARSE_PATTERN_H 14 #include <myramath/utility/detail/LIBPUBLIC.h> 30 class PatternIterator;
32 template<
class Number>
class SparseMatrix;
33 template<
class T>
class Array1;
34 template<
class T>
class Array2;
40 class permute_wrapper;
41 class horzcat_wrapper;
42 class vertcat_wrapper;
43 class bothcat_wrapper;
44 class diagcat_wrapper;
45 class transpose_wrapper;
46 class multiply_wrapper;
48 Pattern stencil1(
int I);
49 Pattern stencil2(
int I,
int J);
50 Pattern stencil3(
int I,
int J,
int K);
60 typedef std::pair<PatternRange, PatternRange>
Pair;
73 #ifdef MYRAMATH_ENABLE_CPP11 91 const Pattern& add_const()
const;
99 std::pair<int,int> size()
const;
102 int n_nonzeros()
const;
105 int n_nonzeros(
int j)
const;
108 bool test(
int i,
int j)
const;
111 std::vector<int> pattern(
int j)
const;
132 PatternRange window(
int i0,
int i1,
int j0,
int j1)
const;
158 Pair split_top(
int i)
const;
167 Pair split_bottom(
int i)
const;
187 Pair split_left(
int j)
const;
196 Pair split_right(
int j)
const;
201 static Pattern identity(
int IJ);
210 static Pattern swap(
int I,
int J, std::vector<int>& Ao, std::vector<int>& Ai);
213 void debug(std::ostream& out)
const;
218 int offset(
int i,
int j)
const;
240 friend Pattern detail::stencil1(
int I);
241 friend Pattern detail::stencil2(
int I,
int J);
242 friend Pattern detail::stencil3(
int I,
int J,
int K);
Container of values, allows random (i,j) access.
Definition: Array2.h:30
Number random()
Generate random real/complex Numbers, uniformly distributed over [-1,1].
Definition: bothcat.cpp:20
Definition: multiply.cpp:22
An iterator over a Pattern.
Definition: PatternRange.h:178
Represents an immutable view of a Pattern.
Definition: PatternRange.h:31
Definition: random.cpp:45
Abstraction layer, serializable objects write themselves to these.
Definition: Streams.h:39
std::pair< PatternRange, PatternRange > Pair
Useful typedefs.
Definition: Pattern.h:60
Definition: diagcat.cpp:20
Range/Iterator types associated with Pattern.
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
Container of values, allows random (i) access.
Definition: Array1.h:32
Definition: horzcat.cpp:20
Stores an IxJ matrix A in compressed sparse column format.
Definition: bothcat.h:23
Definition: permute.cpp:29
Definition: vertcat.cpp:20
Represents a const intRange.
Definition: intRange.h:142
Definition: transpose.cpp:23