Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

BlackboxBlockContainerBase Class Template Reference

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

Inheritance diagram for BlackboxBlockContainerBase:

BlackboxBlockContainer BlackboxBlockContainerRecord List of all members.

Detailed Description

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

A base class for BlackboxBlockContainer. The primary member function is begin(). @doc 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 Methods

 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 Methods

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

Friends

class const_iterator


Member Typedef Documentation

typedef _Blackbox Blackbox
 

typedef BlasMatrix<Element> Block
 

Reimplemented in BlackboxBlockContainer, and BlackboxBlockContainerRecord.

typedef Field::Element Element
 

Reimplemented in BlackboxBlockContainer, and BlackboxBlockContainerRecord.

typedef _Field Field
 

Reimplemented in BlackboxBlockContainer, and BlackboxBlockContainerRecord.

typedef BlasMatrix<Element> Value
 

Reimplemented in BlackboxBlockContainer, and BlackboxBlockContainerRecord.


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

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, and BlackboxBlockContainerRecord.

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, and BlackboxBlockContainerRecord.

const_iterator begin   [inline]
 

size_t coldim   const [inline]
 

const_iterator end   [inline]
 

const Blackbox* getBB   const [inline]
 

size_t getcol   const [inline]
 

const Field& getField   const [inline]
 

size_t getrow   const [inline]
 

const Value& getvalue   [inline, protected]
 

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

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

User Left and Right blocks.

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

Initializers.

size_t rowdim   const [inline]
 

size_t size   const [inline]
 


Friends And Related Function Documentation

friend class const_iterator [friend]
 


Member Data Documentation

const Blackbox* _BB [protected]
 

size_t _col [protected]
 

Field _F [protected]
 

Members.

size_t _m [protected]
 

size_t _n [protected]
 

size_t _row [protected]
 

size_t _seed [protected]
 

size_t _size [protected]
 

Block _U [protected]
 

Block _V [protected]
 

Value _value [protected]
 

long casenumber [protected]
 


Generated on Mon Jun 20 09:16:57 2005 for linbox by doxygen1.2.18