MyraMath
Public Types | Public Member Functions | Friends | List of all members
myra::PatternRange Class Reference

Represents an immutable view of a Pattern. More...

#include <PatternRange.h>

Public Types

typedef std::pair< PatternRange, PatternRangePair
 
typedef PatternIterator Iterator
 

Public Member Functions

 PatternRange ()
 Default constructs a size 0x0 range.
 
 PatternRange (const int *in_Ao, const int *in_Ai, int I, int J)
 Constructs onto underlying data in compressed-sparse-column format.
 
void write (OutputStream &out) const
 Writes to OutputStream. Layout compatible with Pattern's InputStream constructor.
 
std::pair< int, int > size () const
 Size inspector.
 
int n_nonzeros () const
 Counts nonzeros in A(:,:)
 
int n_nonzeros (int j) const
 Counts nonzeros in A(:,j)
 
bool test (int i, int j) const
 Tests for a structural nonzero.
 
std::vector< int > pattern (int j) const
 Returns the (sorted) nonzero pattern of A(:,j)
 
PatternRange window (int i0, int i1, int j0, int j1) const
 Returns this(i0:i1,j0:j1)
 
Array2< PatternRangewindows (const intCRange &i, const intCRange &j) const
 Tile rows and columns using given sizes.
 
PatternRange row (int i) const
 Returns this(i,:)
 
PatternRange rows (int i0, int i1) const
 Returns this(i0:i1,:)
 
Array1< PatternRangerows (const intCRange &i) const
 Returns {this.rows(0:i0,:), this.rows(i0:i0+i1,:), ...}, tiling by rows.
 
PatternRange top (int i) const
 Returns the i topmost rows, this(0:i,:)
 
PatternRange cut_top (int i) const
 Cuts the i topmost rows, returns this(i:I,:)
 
Pair split_top (int i) const
 Splits by rows, returns [this->top(i), this->cut_top(i)].
 
PatternRange bottom (int i) const
 Returns the i bottommost rows, this(I-i:I,:)
 
PatternRange cut_bottom (int i) const
 Cuts the i bottommost rows, returns this(0:I-i,:)
 
Pair split_bottom (int i) const
 Splits by rows, returns [this->cut_bottom(i), this->bottom(i)].
 
PatternRange column (int j) const
 Returns this(:,j)
 
PatternRange columns (int j0, int j1) const
 Returns this(:,j0:j1)
 
Array1< PatternRangecolumns (const intCRange &j) const
 Returns {this.columns(:,0:j0), this.columns(:,j0:j0+j1), ...}, tiling by columns.
 
PatternRange left (int j) const
 Returns the j leftmost columns, this(:,0:j)
 
PatternRange cut_left (int j) const
 Cuts the j leftmost columns, returns this(:,j:J)
 
Pair split_left (int j) const
 Splits by columns, returns [this->left(j), this->cut_left(j)].
 
PatternRange right (int j) const
 Returns the j rightmost columns, this(:,J-j:J)
 
PatternRange cut_right (int j) const
 Cuts the j rightmost columns, returns this(:,0:J-j)
 
Pair split_right (int j) const
 Splits by columns, returns [this->cut_right(j), this->right(j)].
 
PatternIterator begin () const
 Returns an iterator pair over all of A(:,:)
 
PatternIterator end () const
 Returns an iterator pair over all of A(:,:)
 
PatternIterator begin (int j) const
 Returns an iterator pair over over column A(:,j)
 
PatternIterator end (int j) const
 Returns an iterator pair over over column A(:,j)
 

Public Attributes

const int * Ao
 ---------— Data members, all public ----------------—
 
const int * Ai
 ---------— Data members, all public ----------------—
 
int I0
 ---------— Data members, all public ----------------—
 
int I1
 ---------— Data members, all public ----------------—
 
int J0
 ---------— Data members, all public ----------------—
 
int J1
 ---------— Data members, all public ----------------—
 
bool sliced
 ---------— Data members, all public ----------------—
 

Friends

class PatternIterator
 
class Pattern
 

Detailed Description

Represents an immutable view of a Pattern.


The documentation for this class was generated from the following files: