6 #ifndef MYRAMATH_SPARSE_PATTERN_H     7 #define MYRAMATH_SPARSE_PATTERN_H    14 #include <myramath/MYRAMATH_EXPORT.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:21
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:51
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