linbox
CekstvSwitch< Field > Class Template Reference

The default butterfly switch object. More...

Data Structures

struct  rebind
 

Public Types

typedef Field::Element Element
 Typedef.
 
typedef CekstvSwitch< FieldSelf_t
 
typedef CekstvSwitchFactory< FieldFactory
 

Public Member Functions

 CekstvSwitch ()
 
 CekstvSwitch (const typename Field::Element &a)
 Constructor from a field and a field element.
 
 ~CekstvSwitch ()
 Destructor.
 
bool apply (const Field &F, Element &x, Element &y) const
 Apply switch function.
 
bool applyTranspose (const Field &F, Element &x, Element &y) const
 Apply switch transpose function.
 
Field::Element & getData ()
 
const Field::Element & getData () const
 

Detailed Description

template<class Field>
class LinBox::CekstvSwitch< Field >

The default butterfly switch object.

This is a predicate object that is applied to two elements to switch them as needed by the Butterfly\ Switching\ Network\ BlackBox\ Matrix\ Object following the exchange matrix introduced in "Efficient Matrix Preconditioners for Black Box Linear Algebra" by Chen, Eberly, Kaltofen, Saunders, Turner, and Villard.

Member Typedef Documentation

◆ Element

template<class Field>
typedef Field::Element Element

Typedef.

◆ Self_t

template<class Field>
typedef CekstvSwitch<Field> Self_t

◆ Factory

template<class Field>
typedef CekstvSwitchFactory<Field> Factory

Constructor & Destructor Documentation

◆ CekstvSwitch() [1/2]

template<class Field>
CekstvSwitch ( )
inline

◆ CekstvSwitch() [2/2]

template<class Field>
CekstvSwitch ( const typename Field::Element & a)
inline

Constructor from a field and a field element.

Parameters
avector of switches

◆ ~CekstvSwitch()

template<class Field>
~CekstvSwitch ( )
inline

Destructor.

Member Function Documentation

◆ apply()

template<class Field>
bool apply ( const Field & F,
typename Field::Element & x,
typename Field::Element & y ) const
inline

Apply switch function.

Switches the elements in references according to the exchange matrix introduced in "Efficient Matrix Preconditioners for Black Box Linear Algebra" by Chen, Eberly, Kaltofen, Saunders, Turner, and Villard and the current field element specified in the switch object.

Returns
bool true if swapped, false otherwise
Parameters
F
xreference to first element to be switched
yreference to second element to be switched

◆ applyTranspose()

template<class Field>
bool applyTranspose ( const Field & F,
typename Field::Element & x,
typename Field::Element & y ) const
inline

Apply switch transpose function.

Switches the elements in references according to the transpose of the exchange matrix introduced in "Efficient Matrix Preconditioners for Black Box Linear Algebra" by Chen, Eberly, Kaltofen, Saunders, Turner, and Villard and the current field element specified in the switch object.

Returns
bool true if swapped, false otherwise
Parameters
F
xreference to first element to be switched
yreference to second element to be switched

◆ getData() [1/2]

template<class Field>
Field::Element & getData ( )
inline

◆ getData() [2/2]

template<class Field>
const Field::Element & getData ( ) const
inline

The documentation for this class was generated from the following files: