Main Page | Modules | Namespace List | Class Hierarchy | Data Structures | File List | Namespace Members | Data Fields | Globals | Related Pages

BlackboxBlockContainerBase Class Template Reference

#include <blackbox-block-container-base.h>

Inheritance diagram for BlackboxBlockContainerBase:

BlackboxBlockContainer BlackboxBlockContainerRecord

Detailed Description

template<class _Field, class _Blackbox>
class LinBox::BlackboxBlockContainerBase< _Field, _Blackbox >

A base class for BlackboxBlockContainer. The primary member function is begin(). It returns an iterator which after i increments (++) dereferences to $U A^i V$, for $U$ and $V$ determined by the init function. It is designed to be used with implementations of Block Berlekamp-Massey such as BlockMasseyDomain.

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


Public Types

typedef _Field Field
typedef Field::Element Element
typedef _Blackbox Blackbox
typedef BlasMatrix< ElementBlock
typedef BlasMatrix< ElementValue

Public Member Functions

 BlackboxBlockContainerBase ()
 BlackboxBlockContainerBase (const Blackbox *BD, const Field &F, size_t m, size_t n, size_t seed=time(NULL))
virtual ~BlackboxBlockContainerBase ()
const_iterator begin ()
const_iterator end ()
size_t size () const
const FieldgetField () const
const BlackboxgetBB () const
size_t rowdim () const
size_t coldim () const
size_t getrow () const
size_t getcol () const

Protected Member Functions

virtual void _launch ()=0
virtual void _wait ()=0
const Valuegetvalue ()
void Mul (Block &M1, const Blackbox &M2, const Block &M3)
 Initializers.

void init (const Block &U, const Block &V)
 User Left and Right blocks.

void init (size_t m, size_t n)

Protected Attributes

Field _F
 Members.

const Blackbox_BB
size_t _size
size_t _row
size_t _col
size_t _m
size_t _n
long casenumber
Block _U
Block _V
Value _value
size_t _seed


Member Typedef Documentation

typedef _Field Field
 

Reimplemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.

typedef Field::Element Element
 

Reimplemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.

typedef _Blackbox Blackbox
 

typedef BlasMatrix<Element> Block
 

Reimplemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.

typedef BlasMatrix<Element> Value
 

Reimplemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.


Constructor & Destructor Documentation

BlackboxBlockContainerBase  )  [inline]
 

BlackboxBlockContainerBase const Blackbox BD,
const Field F,
size_t  m,
size_t  n,
size_t  seed = time(NULL)
[inline]
 

virtual ~BlackboxBlockContainerBase  )  [inline, virtual]
 


Member Function Documentation

const_iterator begin  )  [inline]
 

const_iterator end  )  [inline]
 

size_t size  )  const [inline]
 

const Field& getField  )  const [inline]
 

const Blackbox* getBB  )  const [inline]
 

size_t rowdim  )  const [inline]
 

size_t coldim  )  const [inline]
 

size_t getrow  )  const [inline]
 

size_t getcol  )  const [inline]
 

virtual void _launch  )  [protected, pure virtual]
 

Launches a process to do the computation of the next sequence value: $U A^{i+1} V$. ...or just does it.

Implemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.

virtual void _wait  )  [protected, pure virtual]
 

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

Implemented in BlackboxBlockContainer, BlackboxBlockContainerRecord, and BlackboxBlockContainerRecord< Field, FMatrix >.

const Value& getvalue  )  [inline, protected]
 

void Mul Block M1,
const Blackbox M2,
const Block M3
[inline, protected]
 

Initializers.

void init const Block U,
const Block V
[inline, protected]
 

User Left and Right blocks.

void init size_t  m,
size_t  n
[inline, protected]
 


Field Documentation

Field _F [protected]
 

Members.

const Blackbox* _BB [protected]
 

size_t _size [protected]
 

size_t _row [protected]
 

size_t _col [protected]
 

size_t _m [protected]
 

size_t _n [protected]
 

long casenumber [protected]
 

Block _U [protected]
 

Block _V [protected]
 

Value _value [protected]
 

size_t _seed [protected]
 


Generated on Fri Jul 8 10:29:43 2005 for linbox by doxygen 1.3.7