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::RefCountPtr<
const MatrixOp
C_ptr_t
 
typedef Teuchos::RefCountPtr<
const MatrixFactorized > 
C_nonsingular_ptr_t
 
typedef Teuchos::RefCountPtr<
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
 

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::RefCountPtr<const MatrixOp> AbstractLinAlgPack::MatrixBasisNonbasisStd::C_ptr_t
 

Definition at line 50 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

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

Definition at line 53 of file AbstractLinAlgPack_MatrixBasisNonbasisStd.hpp.

typedef Teuchos::RefCountPtr<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.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:33:55 2008 for AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects by doxygen 1.3.9.1