AbstractLinAlgPack::MultiVectorMutableCols Class Reference

Default subclass for MultiVectorMutable implemented using columns of separate abstract vectors. More...

#include <AbstractLinAlgPack_MultiVectorMutableCols.hpp>

Inheritance diagram for AbstractLinAlgPack::MultiVectorMutableCols:

[legend]
List of all members.

Constructors/Initializers

 MultiVectorMutableCols ()
 Construct to initialized.
 MultiVectorMutableCols (const Teuchos::RCP< const VectorSpace > &space_cols, const Teuchos::RCP< const VectorSpace > &space_rows, Teuchos::RCP< VectorMutable > col_vecs[]=NULL)
 Calls initalize().
void initialize (const Teuchos::RCP< const VectorSpace > &space_cols, const Teuchos::RCP< const VectorSpace > &space_rows, Teuchos::RCP< VectorMutable > col_vecs[]=NULL)
 Initialize given the spaces for the columns and rows and possibly the column vectors.
void set_uninitialized ()
 Set uninitalized.

Overridden from MatrixBase

size_type rows () const
 
size_type cols () const
 

Overridden from MatrixOp

const VectorSpacespace_cols () const
 
const VectorSpacespace_rows () const
 
void zero_out ()
 
void Mt_S (value_type alpha)
 
MatrixOpoperator= (const MatrixOp &mwo_rhs)
 
mat_mut_ptr_t clone ()
 
mat_ptr_t clone () const
 
void Vp_StMtV (VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const Vector &v_rhs2, value_type beta) const
 
void Vp_StMtV (VectorMutable *v_lhs, value_type alpha, BLAS_Cpp::Transp trans_rhs1, const SpVectorSlice &sv_rhs2, value_type beta) const
 
bool syrk (BLAS_Cpp::Transp M_trans, value_type alpha, value_type beta, MatrixSymOp *sym_lhs) const
 

Overridden from MultiVector

access_by_t access_by () const
 Returns return & COL_ACCESS == true only.

Overridden from MultiVectorMutable

vec_mut_ptr_t col (index_type j)
 
vec_mut_ptr_t row (index_type i)
 Returns return.get() == NULL.
vec_mut_ptr_t diag (int k)
 Returns return.get() == NULL.
multi_vec_mut_ptr_t mv_sub_view (const Range1D &row_rng, const Range1D &col_rng)
 

Private Attributes

const VectorSpacespace_cols
const VectorSpacespace_rows
VectorMutablecolumn_vectors

Detailed Description

Default subclass for MultiVectorMutable implemented using columns of separate abstract vectors.

Only column access is permitted. This is a very bad implementation of a multi-vector but this will work in situations where you need a multi-vector but some underlying linear algebra library does not directly support them.

The only difficult issue is what to use for the vector space for the rows of the multi-vector space_row. This has to be carefully chosen so that all will work well.

ToDo: Finish documentation!

Definition at line 55 of file AbstractLinAlgPack_MultiVectorMutableCols.hpp.


Constructor & Destructor Documentation

AbstractLinAlgPack::MultiVectorMutableCols::MultiVectorMutableCols (  ) 

Construct to initialized.

Definition at line 40 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

AbstractLinAlgPack::MultiVectorMutableCols::MultiVectorMutableCols ( const Teuchos::RCP< const VectorSpace > &  space_cols,
const Teuchos::RCP< const VectorSpace > &  space_rows,
Teuchos::RCP< VectorMutable col_vecs[] = NULL 
)

Calls initalize().

Definition at line 43 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.


Member Function Documentation

void AbstractLinAlgPack::MultiVectorMutableCols::initialize ( const Teuchos::RCP< const VectorSpace > &  space_cols,
const Teuchos::RCP< const VectorSpace > &  space_rows,
Teuchos::RCP< VectorMutable col_vecs[] = NULL 
)

Initialize given the spaces for the columns and rows and possibly the column vectors.

Parameters:
space_cols [in] The space that the columns must lie in. The underlying vector space must not be changed while this is in use.
space_rows [in] The space that the rows must lie in. The underlying vector space must not be changed while this is in use. What this argument really specifies is what vector type will be compatible with the vectors that the client may try to use to interact with the rows of this multivector.
col_vecs [in] Array (size space_rows->dim()) of column vectors to use for the columns of this. It is allowed for col_vecs==NULL in which case space_cols->create_member() will be used to create the colmns of this.
Preconditions:

Postconditions:

&this->space_cols() == space_cols.get() &this->space_rows() == space_rows.get() [col_vecs != NULL] this->col(j).get() == col_vecs[j-1].get(), for j=1..space_rows->dim()

Definition at line 52 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

void AbstractLinAlgPack::MultiVectorMutableCols::set_uninitialized (  ) 

Set uninitalized.

Definition at line 72 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

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

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 81 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

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

Reimplemented from AbstractLinAlgPack::MatrixBase.

Definition at line 86 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

const VectorSpace& AbstractLinAlgPack::MultiVectorMutableCols::space_cols (  )  const [virtual]

Implements AbstractLinAlgPack::MatrixBase.

const VectorSpace& AbstractLinAlgPack::MultiVectorMutableCols::space_rows (  )  const [virtual]

Implements AbstractLinAlgPack::MatrixBase.

void AbstractLinAlgPack::MultiVectorMutableCols::zero_out (  )  [virtual]

Reimplemented from AbstractLinAlgPack::MultiVectorMutable.

Definition at line 103 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

void AbstractLinAlgPack::MultiVectorMutableCols::Mt_S ( value_type  alpha  )  [virtual]

Reimplemented from AbstractLinAlgPack::MultiVectorMutable.

Definition at line 109 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MatrixOp & AbstractLinAlgPack::MultiVectorMutableCols::operator= ( const MatrixOp mwo_rhs  )  [virtual]

Reimplemented from AbstractLinAlgPack::MultiVectorMutable.

Definition at line 116 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MatrixOp::mat_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::clone (  )  [virtual]

Reimplemented from AbstractLinAlgPack::MultiVectorMutable.

Definition at line 128 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MatrixOp::mat_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::clone (  )  const [virtual]

Reimplemented from AbstractLinAlgPack::MultiVector.

Definition at line 135 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

void AbstractLinAlgPack::MultiVectorMutableCols::Vp_StMtV ( VectorMutable v_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const Vector v_rhs2,
value_type  beta 
) const [virtual]

Implements AbstractLinAlgPack::MatrixOp.

Definition at line 141 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

void AbstractLinAlgPack::MultiVectorMutableCols::Vp_StMtV ( VectorMutable v_lhs,
value_type  alpha,
BLAS_Cpp::Transp  trans_rhs1,
const SpVectorSlice sv_rhs2,
value_type  beta 
) const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 180 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

bool AbstractLinAlgPack::MultiVectorMutableCols::syrk ( BLAS_Cpp::Transp  M_trans,
value_type  alpha,
value_type  beta,
MatrixSymOp sym_lhs 
) const [virtual]

Reimplemented from AbstractLinAlgPack::MatrixOp.

Definition at line 222 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MultiVector::access_by_t AbstractLinAlgPack::MultiVectorMutableCols::access_by (  )  const [virtual]

Returns return & COL_ACCESS == true only.

Implements AbstractLinAlgPack::MultiVector.

Definition at line 258 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MultiVectorMutable::vec_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::col ( index_type  j  )  [virtual]

Implements AbstractLinAlgPack::MultiVectorMutable.

Definition at line 266 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MultiVectorMutable::vec_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::row ( index_type  i  )  [virtual]

Returns return.get() == NULL.

Implements AbstractLinAlgPack::MultiVectorMutable.

Definition at line 273 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MultiVectorMutable::vec_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::diag ( int  k  )  [virtual]

Returns return.get() == NULL.

Implements AbstractLinAlgPack::MultiVectorMutable.

Definition at line 279 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.

MultiVectorMutable::multi_vec_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::mv_sub_view ( const Range1D row_rng,
const Range1D col_rng 
) [virtual]

Reimplemented from AbstractLinAlgPack::MultiVectorMutable.

Definition at line 285 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.


Member Data Documentation

const VectorSpace & AbstractLinAlgPack::MultiVectorMutableCols::space_cols [private]

Definition at line 177 of file AbstractLinAlgPack_MultiVectorMutableCols.hpp.

const VectorSpace & AbstractLinAlgPack::MultiVectorMutableCols::space_rows [private]

Definition at line 178 of file AbstractLinAlgPack_MultiVectorMutableCols.hpp.

VectorMutable* AbstractLinAlgPack::MultiVectorMutableCols::column_vectors [private]

Definition at line 179 of file AbstractLinAlgPack_MultiVectorMutableCols.hpp.


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