|
| | Butterfly (const Field &F, size_t n) |
| | No-Op Constructor.
|
| |
| | Butterfly (const Field &F, size_t n, typename Switch::Factory &factory) |
| | Constructor from an integer and a switch object.
|
| |
| | ~Butterfly () |
| |
| template<class OutVector, class InVector> |
| OutVector & | apply (OutVector &y, const InVector &x) const |
| | Application of BlackBox matrix.
|
| |
| template<class OutVector, class InVector> |
| OutVector & | applyTranspose (OutVector &y, const InVector &x) const |
| | Application of BlackBox matrix transpose.
|
| |
| template<typename _Tp1, typename _Sw1> |
| | Butterfly (const Butterfly< _Tp1, _Sw1 > &B, const Field &F) |
| |
| size_t | rowdim () const |
| |
| size_t | coldim () const |
| |
| const Field & | field () const |
| |
| std::vector< size_t > | n_vec () const |
| |
| std::vector< size_t > | l_vec () const |
| |
| std::vector< std::pair< size_t, size_t > > | indices () const |
| |
| std::vector< size_t > & | n_vec () |
| |
| std::vector< size_t > & | l_vec () |
| |
| std::vector< std::pair< size_t, size_t > > & | indices () |
| |
| std::vector< Switch >::const_iterator | switchesBegin () const |
| |
| std::vector< Switch >::const_iterator | switchesEnd () const |
| |
| std::vector< Switch > & | switches () |
| |
template<class _Field, class Switch = CekstvSwitch<_Field>>
class LinBox::Butterfly< _Field, Switch >
Switching Network based BlackBox Matrix.
A good preconditioner.
Implements butterfly switching network on a LinBox vector as a black box matrix through the use of a switch object.
This is a blackbox matrix object, and it implements all purely virtual methods of the abstract base class. See BlackboxArchetype for the specification of these methods.
This matrix requires a dense vector to be used. Sparse vectors must somehow be converted to dense vectors before this matrix may be applied to them.
- Parameters
-
template<class
Field, class Switch>
template<class OutVector, class InVector>
| OutVector & applyTranspose |
( |
OutVector & | y, |
|
|
const InVector & | x ) const |
|
inline |
Application of BlackBox matrix transpose.
y = transpose (A)*x. Requires one vector conforming to the LinBox vector archetype. Required by abstract base class. For this matrix, this involves applying the transpose of each switch to the input vector in the reverse order of the apply function.
- Returns
- reference to vector y containing output (after switching).
- Parameters
-
| x | constant reference to vector to contain input (before switching) |
| y | |