AbstractLinAlgPack::MatrixBasisNonbasisStd Class Reference

This is the interface to a basis and an nonbasis matrix. More...

#include <AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp>

Inheritance diagram for AbstractLinAlgPack::MatrixBasisNonbasisStd:

[legend]
List of all members.

Public Types

typedef Teuchos::RCP< const
MatrixOp
C_ptr_t
 
typedef Teuchos::RCP< const
MatrixFactorized > 
C_nonsingular_ptr_t
 
typedef Teuchos::RCP< const
MatrixOp
N_ptr_t
 

Public Member Functions

 MatrixBasisNonbasisStd ()
 Initialize to null pointers for C, C_nonsingular and N.
void initialize (const C_ptr_t &C, const C_nonsingular_ptr_t &C_nonsingular, const N_ptr_t &N)
 Initialize smart reference counted points to C, C_nonsingular and N.
C_ptr_t C_ptr () const
 
C_nonsingular_ptr_t C_nonsingular_ptr () const
 
N_ptr_t N_ptr () const
 
size_type rows () const
 
size_type cols () const
 
const MatrixOpC () const
 
const MatrixFactorized & C_nonsingular () const
 
const MatrixOpN () const
 

Private Member Functions

void assert_initialized () const

Private Attributes

C_ptr_t C_
C_nonsingular_ptr_t C_nonsingular_
N_ptr_t N_

Detailed Description

This is the interface to a basis and an nonbasis matrix.

The form of this matrix is:

M = [ C' ; N' ]

Definition at line 43 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.


Member Typedef Documentation

typedef Teuchos::RCP<const MatrixOp> AbstractLinAlgPack::MatrixBasisNonbasisStd::C_ptr_t

Definition at line 50 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

typedef Teuchos::RCP<const MatrixFactorized> AbstractLinAlgPack::MatrixBasisNonbasisStd::C_nonsingular_ptr_t

Definition at line 53 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

typedef Teuchos::RCP<const MatrixOp> AbstractLinAlgPack::MatrixBasisNonbasisStd::N_ptr_t

Definition at line 56 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.


Constructor & Destructor Documentation

AbstractLinAlgPack::MatrixBasisNonbasisStd::MatrixBasisNonbasisStd (  ) 

Initialize to null pointers for C, C_nonsingular and N.

Postconditions:{itemize} this->rows() == 0 this->cols() == 0 {itemize}

The operations this->C() and this->N() should not be called until this->initialize(...) has been called with non -null arguments successfully.

Definition at line 36 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.


Member Function Documentation

void AbstractLinAlgPack::MatrixBasisNonbasisStd::initialize ( const C_ptr_t C,
const C_nonsingular_ptr_t C_nonsingular,
const N_ptr_t N 
)

Initialize smart reference counted points to C, C_nonsingular and N.

Preconditions:{itemize} [C.get() != NULL] C->rows() == C->cols() (throw std::length_error) [C_nonsingular.get() != NULL] C_nonsingular->rows() == C->rows() && C_nonsingular->cols() == C->cols() (throw std::length_error) [N.get() != NULL] C->rows() == N->rows() (throw std::length_error) [N.get() != NULL] C.get() != NULL (throw std::logic_error) [C_nonsingular.get() != NULL] C.get() != NULL (throw std::logic_error) {itemize}

Postconditions:{itemize} this->rows() == C->cols() + N->cols() this->cols() == C->rows() [C_nonsingular.get() == NULL] this->C_nonsingular() throws std::logic_error {itemize}

Note that it is legal for C.get()!=NULL and N.get()==NULL and therefore *this = [ C' ] only.

The behavior of the rest of this object could be spelled out but the properties should be obvious. The matrix *this acts like the concatenated matrix [ C' ; N' ]

To uninitialize, set C.get()==NULL, N.get()==NULL.

Of course since ref_count_prt<...> objects are being used for C and N, calling initialize(...) again or deleting *this object will cause the current C and N matrices to be deleted if their reference counts are zero.

Definition at line 40 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

C_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::C_ptr (  )  const [inline]

Definition at line 108 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

C_nonsingular_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::C_nonsingular_ptr (  )  const [inline]

Definition at line 112 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

N_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::N_ptr (  )  const [inline]

Definition at line 116 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

size_type AbstractLinAlgPack::MatrixBasisNonbasisStd::rows (  )  const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 79 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

size_type AbstractLinAlgPack::MatrixBasisNonbasisStd::cols (  )  const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 84 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

const MatrixOp & AbstractLinAlgPack::MatrixBasisNonbasisStd::C (  )  const [virtual]

Implements AbstractLinAlgPack::MatrixBasisNonbasis.

Definition at line 91 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

const MatrixFactorized & AbstractLinAlgPack::MatrixBasisNonbasisStd::C_nonsingular (  )  const [virtual]

Implements AbstractLinAlgPack::MatrixBasisNonbasis.

Definition at line 100 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

const MatrixOp & AbstractLinAlgPack::MatrixBasisNonbasisStd::N (  )  const [virtual]

Implements AbstractLinAlgPack::MatrixBasisNonbasis.

Definition at line 109 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.cpp.

void AbstractLinAlgPack::MatrixBasisNonbasisStd::assert_initialized (  )  const [private]


Member Data Documentation

C_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::C_ [private]

Definition at line 140 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

C_nonsingular_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::C_nonsingular_ [private]

Definition at line 141 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

N_ptr_t AbstractLinAlgPack::MatrixBasisNonbasisStd::N_ [private]

Definition at line 142 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.


The documentation for this class was generated from the following files:
Generated on Tue Oct 20 12:54:06 2009 for MOOCHO (Single Doxygen Collection) by doxygen 1.4.7