|
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 68 of file AbstractLinAlgPack_MultiVectorMutableCols.hpp.
Construct to initialized.
Definition at line 53 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 56 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 65 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
Set uninitalized.
Definition at line 85 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| size_type AbstractLinAlgPack::MultiVectorMutableCols::rows | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 94 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| size_type AbstractLinAlgPack::MultiVectorMutableCols::cols | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MatrixBase.
Definition at line 99 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 116 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| void AbstractLinAlgPack::MultiVectorMutableCols::Mt_S | ( | value_type | alpha | ) | [virtual] |
Reimplemented from AbstractLinAlgPack::MultiVectorMutable.
Definition at line 122 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| MatrixOp & AbstractLinAlgPack::MultiVectorMutableCols::operator= | ( | const MatrixOp & | mwo_rhs | ) | [virtual] |
Reimplemented from AbstractLinAlgPack::MultiVectorMutable.
Definition at line 129 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| MatrixOp::mat_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::clone | ( | ) | [virtual] |
Reimplemented from AbstractLinAlgPack::MultiVectorMutable.
Definition at line 141 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| MatrixOp::mat_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::clone | ( | ) | const [virtual] |
Reimplemented from AbstractLinAlgPack::MultiVector.
Definition at line 148 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 154 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 193 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 235 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 271 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
| MultiVectorMutable::vec_mut_ptr_t AbstractLinAlgPack::MultiVectorMutableCols::col | ( | index_type | j | ) | [virtual] |
Implements AbstractLinAlgPack::MultiVectorMutable.
Definition at line 279 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 286 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 292 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 298 of file AbstractLinAlgPack_MultiVectorMutableCols.cpp.
1.7.6.1