MyraMath
Public Types | Public Member Functions | Static Public Member Functions | List of all members
myra::PatternBuilder Class Reference

Like Pattern, but easier to populate via insert()/erase() methods. More...

#include <PatternBuilder.h>

Public Types

typedef PatternCouplet Couplet
 
typedef std::vector< CoupletCouplets
 
typedef const CoupletIterator
 

Public Member Functions

 PatternBuilder (std::pair< int, int > IJ)
 Constructor, requires size (I,J). Initialized to empty (contains no nonzeros).
 
 PatternBuilder (int in_I, int in_J)
 
 PatternBuilder (const PatternBuilder &that)
 Copy constructor.
 
void swap (PatternBuilder &that)
 Member swap.
 
 PatternBuilder (PatternBuilder &&that)
 Move constructor, default-construct and swap idiom.
 
PatternBuilderoperator= (PatternBuilder that)
 Assignment operator, copy and swap idiom.
 
PatternBuilderoperator= (const PatternRange &that)
 Assignment operator from a PatternRange.
 
 PatternBuilder (const PatternRange &that)
 Constructs from a PatternRange.
 
 PatternBuilder (InputStream &in)
 InputStream constructor. Layout compatible with Pattern.
 
void write (OutputStream &out) const
 Writes to OutputStream. Layout compatible with Pattern.
 
void insert (int i, int j)
 Inserts a single structural nonzero.
 
void insert_row (int i, const intCRange &j_pattern)
 Inserts a row of nonzeros.
 
void insert_column (const intCRange &i_pattern, int j)
 Inserts a column of nonzeros.
 
void insert_tensor (const intCRange &i_pattern, const intCRange &j_pattern)
 Inserts a tensor product of nonzeros.
 
void insert_tensor (const intCRange &ij_pattern)
 Inserts a symmetric tensor product of nonzeros.
 
void insert (const PatternBuilder &that, int i_offset=0, int j_offset=0)
 Inserts all the nonzeros from a Pattern into *this.
 
void insert (const PatternRange &that, int i_offset=0, int j_offset=0)
 
void erase (int i, int j)
 Erases a single structural nonzero. Note this is exceedingly slow, linear complexity.
 
Iterator begin () const
 Presents a const range of (i,j) couplets. Note this range may contain duplicates.
 
Iterator end () const
 
std::pair< int, int > size () const
 Size inspector.
 
Pattern make_Pattern () const
 Returns an equivalent Pattern.
 

Static Public Member Functions

static PatternBuilder identity (int IJ)
 Generates an identity PatternBuilder of specified size.
 
static PatternBuilder random (std::pair< int, int > IJ, int N)
 Generates a random PatternBuilder with size IxJ and (approximately) N nonzeros.
 
static PatternBuilder random (int I, int J, int N)
 

Detailed Description

Like Pattern, but easier to populate via insert()/erase() methods.


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