|
AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects Version of the Day
|
Default subclass for MultiVectorMutable implemented using columns of separate abstract vectors.
More...
#include <AbstractLinAlgPack_MultiVectorMutableCols.hpp>

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 VectorSpace & | space_cols () const |
| | |
| const VectorSpace & | space_rows () const |
| | |
| void | zero_out () |
| | |
| void | Mt_S (value_type alpha) |
| | |
| MatrixOp & | operator= (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) |
| | |
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.
| 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.
| 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.
| 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:
space_cols.get() != NULL (throw std::invalid_argument) space_rows.get() != NULL (throw std::invalid_argument) space_cols->dim() > 0 (throw std::invalid_argument) space_rows->dim() > 0 (throw std::invalid_argument) col_vecs != NULL] col_vecs[j-1].get() != NULL && col_vecs[j-1]->space().is_compatible(*space_cols) == true, for j=1..space_rows->dim() 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 |
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.
1.7.4