ROL
|
Provides a container and operations on multiple ROL vectors for use with other Trilinos packages which require multivectors. More...
#include <ROL_MultiVector.hpp>
Public Member Functions | |
virtual | ~MultiVector () |
virtual PMV | clone () const =0 |
Make a new MultiVector of the same dimensions. More... | |
virtual PMV | clone (const int numvecs) const =0 |
Make a new MultiVector of specified "width". More... | |
virtual PMV | deepCopy () const =0 |
Make a deep copy of this MultiVector. More... | |
virtual PMV | deepCopy (const std::vector< int > &index) const =0 |
Make a deep copy of this MultiVector. More... | |
virtual PMV | shallowCopy (const std::vector< int > &index)=0 |
Make a shallow copy of this MultiVector. More... | |
virtual const PMV | shallowCopyConst (const std::vector< int > &index) const =0 |
Make a shallow copy of this MultiVector. More... | |
virtual ptrdiff_t | getLength () const =0 |
Get the number of elements of a vector in the MultiVector. More... | |
virtual int | getNumberOfVectors () const =0 |
Get the number of vectors in the MultiVector. More... | |
virtual void | gemm (const Real alpha, const MV &A, const Teuchos::SerialDenseMatrix< int, Real > &B, const Real beta)=0 |
Generic BLAS level 3 matrix multiplication \(\text{this}\leftarrow \alpha A B+\beta\text{*this}\) More... | |
virtual void | axpy (const Real alpha, const MV &x)=0 |
Perform the axpy operation columnwise on the MultiVector \( y_i\leftarrow y_i+\alpha x_i\) where \(y\) is this MultiVector. More... | |
virtual void | scale (const Real alpha)=0 |
Scale the MultiVector by a single scalar alpha \(\text{this}\leftarrow\alpha\text{this}\). More... | |
virtual void | scale (const std::vector< Real > &alpha)=0 |
Scale each vector in the MultiVector by a different alpha \(\text{this}[i]\leftarrow\alpha[i]\text{*this}[i]\). More... | |
virtual void | set (const MV &A)=0 |
Set the MultiVector equal to another MultiVector. More... | |
virtual void | set (const MV &A, const std::vector< int > &index)=0 |
Set some of the vectors in this MultiVector equal to corresponding vectors in another MultiVector. More... | |
virtual void | innerProducts (const Real alpha, const MV &A, Teuchos::SerialDenseMatrix< int, Real > &B) const =0 |
Compute \(\alpha A^\top \text{*this}\). More... | |
virtual void | dots (const MV &A, std::vector< Real > &b) const =0 |
Compute dot products of pairs of vectors. More... | |
virtual void | norms (std::vector< Real > &normvec) const =0 |
Compute the norm of each vector in the MultiVector. More... | |
virtual void | zero ()=0 |
Zero each of the vectors in the MultiVector. More... | |
virtual PV | getVector (int i) const =0 |
Return a pointer to the ith vector. More... | |
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 |
Provides a container and operations on multiple ROL vectors for use with other Trilinos packages which require multivectors.
Definition at line 63 of file ROL_MultiVector.hpp.
|
private |
Definition at line 65 of file ROL_MultiVector.hpp.
|
private |
Definition at line 66 of file ROL_MultiVector.hpp.
|
private |
Definition at line 67 of file ROL_MultiVector.hpp.
|
private |
Definition at line 68 of file ROL_MultiVector.hpp.
|
private |
Definition at line 69 of file ROL_MultiVector.hpp.
|
inlinevirtual |
Definition at line 73 of file ROL_MultiVector.hpp.
|
pure virtual |
Make a new MultiVector of the same dimensions.
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Make a new MultiVector of specified "width".
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Make a deep copy of this MultiVector.
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Make a deep copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Make a shallow copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Make a shallow copy of this MultiVector.
[in] | Array | of indices of the vectors to copy |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Get the number of elements of a vector in the MultiVector.
Implemented in ROL::MultiVectorDefault< Real >.
Referenced by ROL::MultiVectorDefault< Real >::dimensionMismatch().
|
pure virtual |
Get the number of vectors in the MultiVector.
Implemented in ROL::MultiVectorDefault< Real >.
Referenced by ROL::MultiVectorDefault< Real >::dimensionMismatch(), ROL::MultiVectorDefault< Real >::innerProducts(), and norm_sum().
|
pure virtual |
Generic BLAS level 3 matrix multiplication \(\text{this}\leftarrow \alpha A B+\beta\text{*this}\)
[in] | alpha | is a multiplicative factor of A |
[in] |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
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 |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Scale the MultiVector by a single scalar alpha \(\text{this}\leftarrow\alpha\text{this}\).
[in] | alpha | is a scalar multiplicative factor |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
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 |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Set the MultiVector equal to another MultiVector.
[in] |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Set some of the vectors in this MultiVector equal to corresponding vectors in another MultiVector.
[in] |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Compute \(\alpha A^\top \text{*this}\).
[in] | alpha | is a multiplicative factor |
[in] |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Compute dot products of pairs of vectors.
[in] |
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
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 |
Implemented in ROL::MultiVectorDefault< Real >.
Referenced by norm_sum().
|
pure virtual |
Zero each of the vectors in the MultiVector.
Implemented in ROL::MultiVectorDefault< Real >.
|
pure virtual |
Return a pointer to the ith vector.
[in] | i | is the index of the desired vector |
Implemented in ROL::MultiVectorDefault< Real >.
Referenced by ROL::MultiVectorDefault< Real >::axpy(), ROL::MultiVectorDefault< Real >::dots(), ROL::MultiVectorDefault< Real >::gemm(), and ROL::MultiVectorDefault< Real >::innerProducts().