ROL
|
Default implementation of the ROL::MultiVector container class. More...
#include <ROL_MultiVectorDefault.hpp>
Public Member Functions | |
MultiVectorDefault (APV mvec) | |
MultiVectorDefault (PV vec) | |
~MultiVectorDefault () | |
PMV | clone () const |
Make a new MultiVector of the same dimensions. More... | |
PMV | clone (const int numvecs) const |
Make a new MultiVector of specified "width". More... | |
PMV | deepCopy () const |
Make a deep copy of this MultiVector. More... | |
PMV | deepCopy (const std::vector< int > &index) const |
Make a deep copy of this MultiVector. More... | |
PMV | shallowCopy (const std::vector< int > &index) |
Make a shallow copy of this MultiVector. More... | |
const PMV | shallowCopyConst (const std::vector< int > &index) const |
Make a shallow copy of this MultiVector. More... | |
ptrdiff_t | getLength () const |
Get the number of elements of a vector in the MultiVector. More... | |
int | getNumberOfVectors () const |
Get the number of vectors in the MultiVector. More... | |
void | axpy (const Real alpha, const MV &x) |
Perform the axpy operation columnwise on the MultiVector \( y_i\leftarrow y_i+\alpha x_i\) where \(y\) is this MultiVector. More... | |
void | gemm (const Real alpha, const MV &A, const Teuchos::SerialDenseMatrix< int, Real > &B, const Real beta) |
Generic BLAS level 3 matrix multiplication \(\text{this}\leftarrow \alpha A B+\beta\text{*this}\). More... | |
void | scale (const Real alpha) |
Scale the MultiVector by a single scalar alpha \(\text{this}\leftarrow\alpha\text{this}\). More... | |
void | scale (const std::vector< Real > &alpha) |
Scale each vector in the MultiVector by a different alpha \(\text{this}[i]\leftarrow\alpha[i]\text{*this}[i]\). More... | |
void | set (const MV &A) |
Set the MultiVector equal to another MultiVector. More... | |
void | set (const MV &A, const std::vector< int > &index) |
Set some of the vectors in this MultiVector equal to corresponding vectors in another MultiVector. More... | |
void | innerProducts (const Real alpha, const MV &A, Teuchos::SerialDenseMatrix< int, Real > &B) const |
Compute \(\alpha A^\top \text{*this}\). More... | |
void | dots (const MV &A, std::vector< Real > &b) const |
Compute dot products of pairs of vectors. More... | |
void | norms (std::vector< Real > &normvec) const |
Compute the norm of each vector in the MultiVector. More... | |
void | zero () |
Zero each of the vectors in the MultiVector. More... | |
PV | getVector (int i) const |
Return a pointer to the ith vector. More... | |
![]() | |
virtual | ~MultiVector () |
Private Types | |
typedef Vector< Real > | V |
typedef Teuchos::RCP< V > | PV |
typedef Teuchos::ArrayRCP< PV > | APV |
typedef MultiVector< Real > | MV |
typedef Teuchos::RCP< MV > | PMV |
Private Member Functions | |
virtual bool | dimensionMismatch (const MV &A) const |
Private Attributes | |
APV | mvec_ |
int | numVectors_ |
int | length_ |
Default implementation of the ROL::MultiVector container class.
Definition at line 58 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 60 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 61 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 62 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 63 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 64 of file ROL_MultiVectorDefault.hpp.
|
inline |
Definition at line 81 of file ROL_MultiVectorDefault.hpp.
|
inline |
Definition at line 86 of file ROL_MultiVectorDefault.hpp.
|
inline |
Definition at line 92 of file ROL_MultiVectorDefault.hpp.
|
inlineprivatevirtual |
Definition at line 71 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVector< Real >::getLength(), ROL::MultiVector< Real >::getNumberOfVectors(), ROL::MultiVectorDefault< Real >::length_, and ROL::MultiVectorDefault< Real >::numVectors_.
Referenced by ROL::MultiVectorDefault< Real >::dots().
|
inlinevirtual |
Make a new MultiVector of the same dimensions.
Implements ROL::MultiVector< Real >.
Definition at line 95 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Make a new MultiVector of specified "width".
Implements ROL::MultiVector< Real >.
Definition at line 104 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Make a deep copy of this MultiVector.
Implements ROL::MultiVector< Real >.
Definition at line 117 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Make a deep copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implements ROL::MultiVector< Real >.
Definition at line 127 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Make a shallow copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implements ROL::MultiVector< Real >.
Definition at line 139 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Make a shallow copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implements ROL::MultiVector< Real >.
Definition at line 150 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Get the number of elements of a vector in the MultiVector.
Implements ROL::MultiVector< Real >.
Definition at line 161 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::length_.
|
inlinevirtual |
Get the number of vectors in the MultiVector.
Implements ROL::MultiVector< Real >.
Definition at line 166 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Perform the axpy operation columnwise on the MultiVector \( y_i\leftarrow y_i+\alpha x_i\) where \(y\) is this MultiVector.
[in] | alpha | is the scaling factor |
[in] | mv | is the |
Implements ROL::MultiVector< Real >.
Definition at line 170 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVector< Real >::getVector(), and ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Generic BLAS level 3 matrix multiplication \(\text{this}\leftarrow \alpha A B+\beta\text{*this}\).
[in] | alpha | is a multiplicative factor of A |
[in] |
Implements ROL::MultiVector< Real >.
Definition at line 178 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVector< Real >::getVector(), and ROL::MultiVectorDefault< Real >::scale().
|
inlinevirtual |
Scale the MultiVector by a single scalar alpha \(\text{this}\leftarrow\alpha\text{this}\).
[in] | alpha | is a scalar multiplicative factor |
Implements ROL::MultiVector< Real >.
Definition at line 195 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
Referenced by ROL::MultiVectorDefault< Real >::gemm().
|
inlinevirtual |
Scale each vector in the MultiVector by a different alpha \(\text{this}[i]\leftarrow\alpha[i]\text{*this}[i]\).
[in] | alpha | is a vector of multiplicative factors |
Implements ROL::MultiVector< Real >.
Definition at line 203 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Set the MultiVector equal to another MultiVector.
[in] |
Implements ROL::MultiVector< Real >.
Definition at line 215 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Set some of the vectors in this MultiVector equal to corresponding vectors in another MultiVector.
[in] |
Implements ROL::MultiVector< Real >.
Definition at line 229 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Compute \(\alpha A^\top \text{*this}\).
[in] | alpha | is a multiplicative factor |
[in] |
Implements ROL::MultiVector< Real >.
Definition at line 247 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVector< Real >::getNumberOfVectors(), ROL::MultiVector< Real >::getVector(), and ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Compute dot products of pairs of vectors.
[in] |
Implements ROL::MultiVector< Real >.
Definition at line 263 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::dimensionMismatch(), ROL::MultiVector< Real >::getVector(), and ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Compute the norm of each vector in the MultiVector.
[out] | &b | b is a vector containing the norms of the vectors contained in this MultiVector |
Implements ROL::MultiVector< Real >.
Definition at line 276 of file ROL_MultiVectorDefault.hpp.
|
inlinevirtual |
Zero each of the vectors in the MultiVector.
Implements ROL::MultiVector< Real >.
Definition at line 286 of file ROL_MultiVectorDefault.hpp.
References ROL::MultiVectorDefault< Real >::numVectors_.
|
inlinevirtual |
Return a pointer to the ith vector.
[in] | i | is the index of the desired vector |
Implements ROL::MultiVector< Real >.
Definition at line 293 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 67 of file ROL_MultiVectorDefault.hpp.
|
private |
Definition at line 68 of file ROL_MultiVectorDefault.hpp.
Referenced by ROL::MultiVectorDefault< Real >::axpy(), ROL::MultiVectorDefault< Real >::clone(), ROL::MultiVectorDefault< Real >::deepCopy(), ROL::MultiVectorDefault< Real >::dimensionMismatch(), ROL::MultiVectorDefault< Real >::dots(), ROL::MultiVectorDefault< Real >::getNumberOfVectors(), ROL::MultiVectorDefault< Real >::innerProducts(), ROL::MultiVectorDefault< Real >::scale(), ROL::MultiVectorDefault< Real >::set(), and ROL::MultiVectorDefault< Real >::zero().
|
private |
Definition at line 69 of file ROL_MultiVectorDefault.hpp.
Referenced by ROL::MultiVectorDefault< Real >::dimensionMismatch(), and ROL::MultiVectorDefault< Real >::getLength().