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 33 of file MyMultiVec.hpp.
|
inline |
Constructor for a NumberVecs
vectors of length Length
.
Definition at line 38 of file MyMultiVec.hpp.
|
inline |
Constructor with already allocated memory.
Definition at line 58 of file MyMultiVec.hpp.
|
inline |
Copy constructor, performs a deep copy.
Definition at line 76 of file MyMultiVec.hpp.
|
inline |
Destructor.
Definition at line 99 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a clone of the current std::vector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 107 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 120 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a clone copy of specified vectors.
Implements Belos::MultiVec< ScalarType >.
Definition at line 126 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a view of current std::vector (shallow copy)
Implements Belos::MultiVec< ScalarType >.
Definition at line 141 of file MyMultiVec.hpp.
|
inlinevirtual |
Returns a view of current std::vector (shallow copy), const version.
Implements Belos::MultiVec< ScalarType >.
Definition at line 153 of file MyMultiVec.hpp.
|
inlinevirtual |
The number of rows in the multivector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 165 of file MyMultiVec.hpp.
|
inlinevirtual |
The number of vectors (i.e., columns) in the multivector.
Implements Belos::MultiVec< ScalarType >.
Definition at line 170 of file MyMultiVec.hpp.
|
inlinevirtual |
Update *this
with alpha
* A
* B
+ beta
* (*this
).
Implements Belos::MultiVec< ScalarType >.
Definition at line 176 of file MyMultiVec.hpp.
|
inlinevirtual |
Replace *this
with alpha
* A
+ beta
* B
.
Implements Belos::MultiVec< ScalarType >.
Definition at line 227 of file MyMultiVec.hpp.
|
inlinevirtual |
Scale each element of the vectors in *this
with alpha
.
Implements Belos::MultiVec< ScalarType >.
Definition at line 250 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 260 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 271 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 295 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 315 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 336 of file MyMultiVec.hpp.
|
inlinevirtual |
Fill all the vectors in *this
with random numbers.
Implements Belos::MultiVec< ScalarType >.
Definition at line 354 of file MyMultiVec.hpp.
|
inlinevirtual |
Replace each element of the vectors in *this
with alpha
.
Implements Belos::MultiVec< ScalarType >.
Definition at line 366 of file MyMultiVec.hpp.
|
inlinevirtual |
Print *this
multivector to the os
output stream.
Implements Belos::MultiVec< ScalarType >.
Definition at line 375 of file MyMultiVec.hpp.
|
inline |
Definition at line 389 of file MyMultiVec.hpp.
|
inline |
Definition at line 397 of file MyMultiVec.hpp.
|
inline |
Definition at line 405 of file MyMultiVec.hpp.
|
inline |
Definition at line 411 of file MyMultiVec.hpp.
|
inlineprivate |
Definition at line 417 of file MyMultiVec.hpp.
|
private |
Length of the vectors.
Definition at line 427 of file MyMultiVec.hpp.
|
private |
Number of multi-vectors.
Definition at line 429 of file MyMultiVec.hpp.
|
private |
Pointers to the storage of the vectors.
Definition at line 431 of file MyMultiVec.hpp.
|
private |
If true
, then this object owns the vectors and must free them in dtor.
Definition at line 433 of file MyMultiVec.hpp.