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

Symbolic analysis data structure for multifrontal schur complement. More...

#include <SchurTree.h>

Classes

class  Node
 
class  WriteMap
 
class  WriteMap2
 
class  WriteMapItem
 

Public Types

typedef std::pair< const int *, const int * > Range
 Useful typedefs.
 
typedef multifrontal::Options Options
 

Public Member Functions

 SchurTree ()
 Default constructor, just 0x0 system.
 
 SchurTree (const AssemblyTree &A, const PatternRange &B, Options options=Options::create())
 Constructing from a PatternRange B.
 
 SchurTree (const AssemblyTree &A, const intCRange &B, int J, Options options=Options::create())
 Constructing from a row restriction B and number of columns J.
 
 SchurTree (const SchurTree &that)
 Copy constructor (deep).
 
 SchurTree (InputStream &in)
 InputStream constructor.
 
void write (OutputStream &out) const
 Writes to OutputStream.
 
void swap (SchurTree &that)
 Member swap, O(1)
 
 SchurTree (SchurTree &&that)
 Move constructor, default construct and swap idiom.
 
SchurTreeoperator= (SchurTree that)
 Assignment operator, copy construct and swap idiom.
 
std::pair< int, int > size () const
 Size inspector.
 
int n_nodes () const
 Returns number of nodes.
 
const Nodenode (int n) const
 Accesses node n.
 
std::vector< int > roots () const
 Returns the ids for all roots (i.e. Node's which lack a parent)
 
std::vector< int > leaves () const
 Returns the ids for all leafs (i.e. Node's which lack any children)
 
std::vector< int > postorder () const
 Returns an ordered traversal of the Node's.
 
std::vector< int > preorder () const
 
const std::vector< int > & s2a () const
 Returns schur2assembly map.
 
std::map< int, int > a2s () const
 Returns assembly2schur map.
 
WriteMap writemap () const
 Returns a WriteMap, an oracle struct that maps Column's (j) into the Node's (n) that write to it.
 
WriteMap2 writemap2 () const
 
std::pair< uint64_t, uint64_t > n_words () const
 Returns storage requirements (solve L*X=B in .first, addition workspace W in .second)
 
uint64_t n_work_solve () const
 Returns number of flops for L*X=B.
 
uint64_t n_work_rankk () const
 Returns number of flops for S=X'X.
 
Array2< int > rankk_j_intersects () const
 Tracks j-intersections for rankk accumulation.
 
Array2< int > rankk_j_intersects_old () const
 
void inspect (std::ostream &out) const
 Inspection routine, prints debugging information on out.
 
 ~SchurTree ()
 Frees internal resources.
 

Static Public Member Functions

static uint64_t n_work_gemm (const SchurTree &X, const SchurTree &Y)
 Returns number of flops for S=X'Y.
 
static std::vector< int > intersect (const SchurTree &X, const SchurTree &Y)
 Returns the intersection of nodes for S=X'Y.
 
static Array2< int > gemm_j_intersects (const SchurTree &X, const SchurTree &Y)
 Tracks j-intersections for gemm accumulation.
 
static Array2< int > gemm_j_intersects_old (const SchurTree &X, const SchurTree &Y)
 

Detailed Description

Symbolic analysis data structure for multifrontal schur complement.


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