linbox
BlackboxContainerBase< Field, Blackbox > Class Template Referenceabstract

A base class for BlackboxContainer. More...

#include <blackbox-container-base.h>

Data Structures

class  const_iterator
 

Public Types

typedef Field::Element Element
 

Public Member Functions

 BlackboxContainerBase (const Blackbox *BB, const Field &F)
 
 BlackboxContainerBase (const Blackbox *BB, const Field &F, size_t Size)
 
virtual ~BlackboxContainerBase ()
 
const_iterator begin ()
 
const_iterator end ()
 
long size () const
 
const FieldgetField () const
 
const Fieldfield () const
 
BlackboxgetBB () const
 

Protected Member Functions

virtual void _launch ()=0
 Launches a process to do the computation of the next sequence value: $v^T A^{i+1} u$.
 
virtual void _wait ()=0
 If a separate process is computing the next value of $v^T A^{i+1} u$, _wait() blocks until the value is ready.
 
const Elementgetvalue ()
 
template<class Vector1, class Vector2>
Elementinit (const Vector1 &uu, const Vector2 &vv)
 Initializers.
 
template<class RandIter>
Elementinit (RandIter &g)
 Random Left vectors, Zero Right vector.
 
template<class Vector>
Elementinit (const Vector &uu)
 User Left vectors, Zero Right vector.
 

Protected Attributes

const Field_field
 Members.
 
VectorDomain< Field_VD
 
const Blackbox_BB
 
long _size
 
long casenumber
 
BlasVector< Fieldu
 
BlasVector< Fieldv
 
Element _value
 

Friends

class const_iterator
 

Detailed Description

template<class Field, class Blackbox>
class LinBox::BlackboxContainerBase< Field, Blackbox >

A base class for BlackboxContainer.

The primary member function is begin().

It returns an iterator which after i increments (++) dereferences to $v^T A^i u$, for $v$ and $u$ determined by the form of construction. It is designed to be used with implementations of Berlekamp-Massey such as MasseyDom.

Subclasses complete the implementation by defining _launch() and _wait().

Member Typedef Documentation

◆ Element

template<class Field, class Blackbox>
typedef Field::Element Element

Constructor & Destructor Documentation

◆ BlackboxContainerBase() [1/2]

template<class Field, class Blackbox>
BlackboxContainerBase ( const Blackbox * BB,
const Field & F )
inline
Bug
no need for F

◆ BlackboxContainerBase() [2/2]

template<class Field, class Blackbox>
BlackboxContainerBase ( const Blackbox * BB,
const Field & F,
size_t Size )
inline
Bug
no need for F

◆ ~BlackboxContainerBase()

template<class Field, class Blackbox>
virtual ~BlackboxContainerBase ( )
inlinevirtual

Member Function Documentation

◆ begin()

template<class Field, class Blackbox>
const_iterator begin ( )
inline

◆ end()

template<class Field, class Blackbox>
const_iterator end ( )
inline

◆ size()

template<class Field, class Blackbox>
long size ( ) const
inline

◆ getField()

template<class Field, class Blackbox>
const Field & getField ( ) const
inline

◆ field()

template<class Field, class Blackbox>
const Field & field ( ) const
inline

◆ getBB()

template<class Field, class Blackbox>
Blackbox * getBB ( ) const
inline

◆ _launch()

template<class Field, class Blackbox>
virtual void _launch ( )
protectedpure virtual

Launches a process to do the computation of the next sequence value: $v^T A^{i+1} u$.

...or just does it.

Implemented in BlackboxContainer< Field, _Blackbox, RandIter >, BlackboxContainerSymmetric< Field, _Blackbox, RandIter >, and DenseContainer< Field, Vector, RandIter >.

◆ _wait()

template<class Field, class Blackbox>
virtual void _wait ( )
protectedpure virtual

If a separate process is computing the next value of $v^T A^{i+1} u$, _wait() blocks until the value is ready.

Implemented in BlackboxContainer< Field, _Blackbox, RandIter >, BlackboxContainerSymmetric< Field, _Blackbox, RandIter >, and DenseContainer< Field, Vector, RandIter >.

◆ getvalue()

template<class Field, class Blackbox>
const Element & getvalue ( )
inlineprotected

◆ init() [1/3]

template<class Field, class Blackbox>
template<class Vector1, class Vector2>
Element & init ( const Vector1 & uu,
const Vector2 & vv )
inlineprotected

Initializers.

User Left and Right vectors

◆ init() [2/3]

template<class Field, class Blackbox>
template<class RandIter>
Element & init ( RandIter & g)
inlineprotected

Random Left vectors, Zero Right vector.

◆ init() [3/3]

template<class Field, class Blackbox>
template<class Vector>
Element & init ( const Vector & uu)
inlineprotected

User Left vectors, Zero Right vector.

Friends And Related Symbol Documentation

◆ const_iterator

template<class Field, class Blackbox>
friend class const_iterator
friend

Field Documentation

◆ _field

template<class Field, class Blackbox>
const Field* _field
protected

Members.

◆ _VD

template<class Field, class Blackbox>
VectorDomain<Field> _VD
protected

◆ _BB

template<class Field, class Blackbox>
const Blackbox* _BB
protected

◆ _size

template<class Field, class Blackbox>
long _size
protected

◆ casenumber

template<class Field, class Blackbox>
long casenumber
protected

◆ u

template<class Field, class Blackbox>
BlasVector<Field> u
protected

◆ v

template<class Field, class Blackbox>
BlasVector<Field> v
protected

◆ _value

template<class Field, class Blackbox>
Element _value
protected

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