MOOCHO (Single Doxygen Collection)
Version of the Day
|
Abstract interface to permutation matrices. More...
#include <AbstractLinAlgPack_Permutation.hpp>
Public Member Functions | |
virtual | ~Permutation () |
Vector space | |
virtual const VectorSpace & | space () const =0 |
Return a reference to a vector space object that this permutation is compatible with. More... | |
Information | |
virtual size_type | dim () const =0 |
Return the dimension of the permutation. More... | |
virtual bool | is_identity () const =0 |
Returns true if this is the identity permutation I. More... | |
virtual std::ostream & | output (std::ostream &out) const =0 |
Prints debug type of information. More... | |
Vector permutations | |
virtual void | permute (BLAS_Cpp::Transp P_trans, const Vector &x, VectorMutable *y) const =0 |
Permute a vector op(P)*x -> y More... | |
virtual void | permute (BLAS_Cpp::Transp P_trans, VectorMutable *y) const =0 |
Permute a vector op(P)*y -> y More... | |
Abstract interface to permutation matrices.
A Permutation
object is used to permute the elements within a vector. It is not a general linear operator since it does not map between vector spaces. It only permutes elements within the same vector space.
Definition at line 56 of file AbstractLinAlgPack_Permutation.hpp.
|
inlinevirtual |
Definition at line 60 of file AbstractLinAlgPack_Permutation.hpp.
|
pure virtual |
Return a reference to a vector space object that this permutation is compatible with.
|
pure virtual |
Return the dimension of the permutation.
|
pure virtual |
Returns true if this
is the identity permutation I.
|
pure virtual |
Prints debug type of information.
|
pure virtual |
Permute a vector op(P)*x -> y
P_trans | [in] op(P) = P for P_trans == BLAS_Cpp::no_trans or op(P) = P' for P_trans == BLAS_Cpp::trans . |
x | [in] Vector. |
y | [out] Vector. |
Preconditions:
y != NULL
(throw std::invalid_argument
) x.space().is_compatible(this->space()) == true
(throw VectorSpace::IncompatibleVectorSpaces
) y->space().is_compatible(this->space()) == true
(throw VectorSpace::IncompatibleVectorSpaces
)
|
pure virtual |
Permute a vector op(P)*y -> y
P_trans | [in] op(P) = P for P_trans == BLAS_Cpp::no_trans or op(P) = P' for P_trans == BLAS_Cpp::trans . |
y | [in/out] Vector. |
Preconditions:
y != NULL
(throw std::invalid_argument
) y->space().is_compatible(this->space()) == true
(throw VectorSpace::IncompatibleVectorSpaces
)