6 #ifndef MYRAMATH_SPARSE_PATTERNRANGE_H 7 #define MYRAMATH_SPARSE_PATTERNRANGE_H 14 #include <myramath/utility/detail/LIBPUBLIC.h> 25 class PatternIterator;
26 template<
class T>
class Array1;
27 template<
class T>
class Array2;
48 typedef std::pair<PatternRange,PatternRange> Pair;
54 PatternRange(
const int* in_Ao,
const int* in_Ai,
int I,
int J);
62 std::pair<int,int> size()
const;
65 int n_nonzeros()
const;
68 int n_nonzeros(
int j)
const;
71 bool test(
int i,
int j)
const;
74 std::vector<int> pattern(
int j)
const;
94 PatternRange window(
int i0,
int i1,
int j0,
int j1)
const ;
117 Pair split_top(
int i)
const;
126 Pair split_bottom(
int i)
const;
146 Pair split_left(
int j)
const;
155 Pair split_right(
int j)
const;
201 void j_initialize(
int jj);
204 int i_initialize(
int ii);
226 LIBPUBLIC std::ostream& operator << (std::ostream& out,
const PatternRange& A);
Container of values, allows random (i,j) access.
Definition: Array2.h:30
const int * Ao
---------— Data members, all public ----------------—
Definition: PatternRange.h:38
bool sliced
---------— Data members, all public ----------------—
Definition: PatternRange.h:44
An iterator over a Pattern.
Definition: PatternRange.h:178
const int * Ai
---------— Data members, all public ----------------—
Definition: PatternRange.h:39
Represents an immutable view of a Pattern.
Definition: PatternRange.h:31
Abstraction layer, serializable objects write themselves to these.
Definition: Streams.h:39
int I1
---------— Data members, all public ----------------—
Definition: PatternRange.h:42
Holds the nonzero pattern of a sparse matrix.
Definition: Pattern.h:55
Container of values, allows random (i) access.
Definition: Array1.h:32
int J1
---------— Data members, all public ----------------—
Definition: PatternRange.h:43
Represents a const intRange.
Definition: intRange.h:142