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 std::set< int > Column
 Useful typedefs.
 
typedef std::vector< ColumnColumns
 
typedef Column::const_iterator Iterator
 

Public Member Functions

 PatternBuilder ()
 Default constructor, makes 0x0 empty PatternBuilder.
 
 PatternBuilder (std::pair< int, int > IJ)
 Constructs empty PatternBuilder of specified size.
 
 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.
 
void write (OutputStream &out) const
 Writes to OutputStream.
 
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)
 Removes a structural nonzero. No-op if (i,j) doesn't exist in *this.
 
void erase (const PatternBuilder &that, int i_offset=0, int j_offset=0)
 Erases all the nonzeros within a Pattern from *this.
 
void erase (const PatternRange &that, int i_offset=0, int j_offset=0)
 
Iterator begin (int j) const
 Returns a const range over the j'th column.
 
Iterator end (int j) const
 
bool test (int i, int j) const
 Tests for a structural nonzero.
 
std::vector< int > pattern (int j) const
 Returns the (sorted vector) pattern of the j'th column.
 
const Columncolumn (int j) const
 Returns the (set) pattern of the j'th column.
 
std::pair< int, int > size () const
 Size inspector.
 
int n_nonzeros (int j) const
 Returns nonzero count.
 
int n_nonzeros () const
 
Pattern make_Pattern () const
 Returns an equivalent Pattern A.
 

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: