|
Belos Package Browser (Single Doxygen Collection)
Development
|
Simple example of a user's defined Belos::MultiVec class. More...
#include <MyMultiVec.hpp>

Public Member Functions | |
| MyMultiVec (const ptrdiff_t Length, const int NumberVecs) | |
Constructor for a NumberVecs vectors of length Length. More... | |
| MyMultiVec (const ptrdiff_t Length, const std::vector< ScalarType * > &rhs) | |
| Constructor with already allocated memory. More... | |
| MyMultiVec (const MyMultiVec &rhs) | |
| Copy constructor, performs a deep copy. More... | |
| ~MyMultiVec () | |
| Destructor. More... | |
| MyMultiVec * | Clone (const int NumberVecs) const |
| Returns a clone of the current std::vector. More... | |
| MyMultiVec * | CloneCopy () const |
Create a new MultiVec and copy contents of *this into it (deep copy). More... | |
| MyMultiVec * | CloneCopy (const std::vector< int > &index) const |
| Returns a clone copy of specified vectors. More... | |
| MyMultiVec * | CloneViewNonConst (const std::vector< int > &index) |
| Returns a view of current std::vector (shallow copy) More... | |
| const MyMultiVec * | CloneView (const std::vector< int > &index) const |
| Returns a view of current std::vector (shallow copy), const version. More... | |
| ptrdiff_t | GetGlobalLength () const |
| The number of rows in the multivector. More... | |
| int | GetNumberVecs () const |
| The number of vectors (i.e., columns) in the multivector. More... | |
| void | MvTimesMatAddMv (const ScalarType alpha, const Belos::MultiVec< ScalarType > &A, const Teuchos::SerialDenseMatrix< int, ScalarType > &B, const ScalarType beta) |
Update *this with alpha * A * B + beta * (*this). More... | |
| void | MvAddMv (const ScalarType alpha, const Belos::MultiVec< ScalarType > &A, const ScalarType beta, const Belos::MultiVec< ScalarType > &B) |
Replace *this with alpha * A + beta * B. More... | |
| void | MvScale (const ScalarType alpha) |
Scale each element of the vectors in *this with alpha. More... | |
| void | MvScale (const std::vector< ScalarType > &alpha) |
Scale each element of the i-th vector in *this with alpha[i]. More... | |
| void | MvTransMv (const ScalarType alpha, const Belos::MultiVec< ScalarType > &A, Teuchos::SerialDenseMatrix< int, ScalarType > &B) const |
Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this). More... | |
| void | MvDot (const Belos::MultiVec< ScalarType > &A, std::vector< ScalarType > &b) const |
| Compute the dot product of each column of *this with the corresponding column of A. More... | |
| void | MvNorm (std::vector< typename Teuchos::ScalarTraits< ScalarType >::magnitudeType > &normvec, Belos::NormType type=Belos::TwoNorm) const |
Compute the norm of each vector in *this. More... | |
| void | SetBlock (const Belos::MultiVec< ScalarType > &A, const std::vector< int > &index) |
Copy the vectors in A to a set of vectors in *this. More... | |
| void | MvRandom () |
Fill all the vectors in *this with random numbers. More... | |
| void | MvInit (const ScalarType alpha) |
Replace each element of the vectors in *this with alpha. More... | |
| void | MvPrint (std::ostream &os) const |
Print *this multivector to the os output stream. More... | |
| ScalarType & | operator() (const int i, const int j) |
| const ScalarType & | operator() (const int i, const int j) const |
| ScalarType * | operator[] (int v) |
| ScalarType * | operator[] (int v) const |
Public Member Functions inherited from Belos::MultiVec< ScalarType > | |
| MultiVec () | |
| Default constructor. More... | |
| virtual | ~MultiVec () |
| Destructor (virtual for memory safety of derived classes). More... | |
Private Member Functions | |
| void | Check () |
Private Attributes | |
| const ptrdiff_t | Length_ |
| Length of the vectors. More... | |
| const int | NumberVecs_ |
| Number of multi-vectors. More... | |
| std::vector< ScalarType * > | data_ |
| Pointers to the storage of the vectors. More... | |
| std::vector< bool > | ownership_ |
If true, then this object owns the vectors and must free them in dtor. More... | |
Simple example of a user's defined Belos::MultiVec class.
This is a simple, single processor example of user's defined MultiVec-derived class. The class is templated with ScalarType; possible choices are, for example, "float", "double", or "std::complex<double>".
Definition at line 65 of file MyMultiVec.hpp.
|
inline |
Constructor for a NumberVecs vectors of length Length.
Definition at line 70 of file MyMultiVec.hpp.
|
inline |
Constructor with already allocated memory.
Definition at line 90 of file MyMultiVec.hpp.
|
inline |
Copy constructor, performs a deep copy.
Definition at line 108 of file MyMultiVec.hpp.
|
inline |
Destructor.
Definition at line 131 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a clone of the current std::vector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 139 of file MyMultiVec.hpp.
|
inlinevirtual |
Create a new MultiVec and copy contents of *this into it (deep copy).
Implements Belos::MultiVec< ScalarType >.
Definition at line 152 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a clone copy of specified vectors.
Implements Belos::MultiVec< ScalarType >.
Definition at line 158 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a view of current std::vector (shallow copy)
Implements Belos::MultiVec< ScalarType >.
Definition at line 173 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a view of current std::vector (shallow copy), const version.
Implements Belos::MultiVec< ScalarType >.
Definition at line 185 of file MyMultiVec.hpp.
|
inlinevirtual |
The number of rows in the multivector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 197 of file MyMultiVec.hpp.
|
inlinevirtual |
The number of vectors (i.e., columns) in the multivector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 202 of file MyMultiVec.hpp.
|
inlinevirtual |
Update *this with alpha * A * B + beta * (*this).
Implements Belos::MultiVec< ScalarType >.
Definition at line 208 of file MyMultiVec.hpp.
|
inlinevirtual |
Replace *this with alpha * A + beta * B.
Implements Belos::MultiVec< ScalarType >.
Definition at line 259 of file MyMultiVec.hpp.
|
inlinevirtual |
Scale each element of the vectors in *this with alpha.
Implements Belos::MultiVec< ScalarType >.
Definition at line 282 of file MyMultiVec.hpp.
|
inlinevirtual |
Scale each element of the i-th vector in *this with alpha[i].
Implements Belos::MultiVec< ScalarType >.
Definition at line 292 of file MyMultiVec.hpp.
|
inlinevirtual |
Compute a dense matrix B through the matrix-matrix multiply alpha * A^T * (*this).
Implements Belos::MultiVec< ScalarType >.
Definition at line 303 of file MyMultiVec.hpp.
|
inlinevirtual |
Compute the dot product of each column of *this with the corresponding column of A.
Compute a vector b whose entries are the individual dot-products. That is, b[i] = A[i]^H * (*this)[i] where A[i] is the i-th column of A.
Implements Belos::MultiVec< ScalarType >.
Definition at line 327 of file MyMultiVec.hpp.
|
inlinevirtual |
Compute the norm of each vector in *this.
| normvec | [out] On output, normvec[i] holds the norm of the i-th vector of *this. |
| type | [in] The type of norm to compute. The 2-norm is the default. |
Implements Belos::MultiVec< ScalarType >.
Definition at line 347 of file MyMultiVec.hpp.
|
inlinevirtual |
Copy the vectors in A to a set of vectors in *this.
The numvecs vectors in A are copied to a subset of vectors in *this indicated by the indices given in index.
Implements Belos::MultiVec< ScalarType >.
Definition at line 368 of file MyMultiVec.hpp.
|
inlinevirtual |
Fill all the vectors in *this with random numbers.
Implements Belos::MultiVec< ScalarType >.
Definition at line 386 of file MyMultiVec.hpp.
|
inlinevirtual |
Replace each element of the vectors in *this with alpha.
Implements Belos::MultiVec< ScalarType >.
Definition at line 398 of file MyMultiVec.hpp.
|
inlinevirtual |
Print *this multivector to the os output stream.
Implements Belos::MultiVec< ScalarType >.
Definition at line 407 of file MyMultiVec.hpp.
|
inline |
Definition at line 421 of file MyMultiVec.hpp.
|
inline |
Definition at line 429 of file MyMultiVec.hpp.
|
inline |
Definition at line 437 of file MyMultiVec.hpp.
|
inline |
Definition at line 443 of file MyMultiVec.hpp.
|
inlineprivate |
Definition at line 449 of file MyMultiVec.hpp.
|
private |
Length of the vectors.
Definition at line 459 of file MyMultiVec.hpp.
|
private |
Number of multi-vectors.
Definition at line 461 of file MyMultiVec.hpp.
|
private |
Pointers to the storage of the vectors.
Definition at line 463 of file MyMultiVec.hpp.
|
private |
If true, then this object owns the vectors and must free them in dtor.
Definition at line 465 of file MyMultiVec.hpp.
1.8.5