|
AbstractLinAlgPack: C++ Interfaces For Vectors, Matrices And Related Linear Algebra Objects
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. | |
Information | |
| virtual size_type | dim () const =0 |
| Return the dimension of the permutation. | |
| virtual bool | is_identity () const =0 |
Returns true if this is the identity permutation I. | |
| virtual std::ostream & | output (std::ostream &out) const =0 |
| Prints debug type of information. | |
Vector permutations | |
| virtual void | permute (BLAS_Cpp::Transp P_trans, const Vector &x, VectorMutable *y) const =0 |
Permute a vector op(P)*x -> y | |
| virtual void | permute (BLAS_Cpp::Transp P_trans, VectorMutable *y) const =0 |
Permute a vector op(P)*y -> y | |
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.
| virtual AbstractLinAlgPack::Permutation::~Permutation | ( | ) | [inline, virtual] |
Definition at line 60 of file AbstractLinAlgPack_Permutation.hpp.
| virtual const VectorSpace& AbstractLinAlgPack::Permutation::space | ( | ) | const [pure virtual] |
Return a reference to a vector space object that this permutation is compatible with.
| virtual size_type AbstractLinAlgPack::Permutation::dim | ( | ) | const [pure virtual] |
Return the dimension of the permutation.
| virtual bool AbstractLinAlgPack::Permutation::is_identity | ( | ) | const [pure virtual] |
Returns true if this is the identity permutation I.
| virtual std::ostream& AbstractLinAlgPack::Permutation::output | ( | std::ostream & | out | ) | const [pure virtual] |
Prints debug type of information.
| virtual void AbstractLinAlgPack::Permutation::permute | ( | BLAS_Cpp::Transp | P_trans, |
| const Vector & | x, | ||
| VectorMutable * | y | ||
| ) | const [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) | virtual void AbstractLinAlgPack::Permutation::permute | ( | BLAS_Cpp::Transp | P_trans, |
| VectorMutable * | y | ||
| ) | const [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)
1.7.6.1