|
ROL
|
Default implementation of the ROL::MultiVector container class. More...
#include <ROL_MultiVectorDefault.hpp>
Inheritance diagram for ROL::MultiVectorDefault< Real >: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... | |
Public Member Functions inherited from ROL::MultiVector< Real > | |
| 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().
1.8.13