|
linbox
|
A base class for BlackboxBlockContainer. More...
#include <blackbox-block-container-base.h>
Inheritance diagram for BlackboxBlockContainerBase< _Field, _Blackbox, _MatrixDomain >:Data Structures | |
| class | const_iterator |
Public Types | |
| typedef _Field | Field |
| typedef Field::Element | Element |
| typedef _Blackbox | Blackbox |
| typedef BlasMatrix< Field > | Block |
| typedef BlasMatrix< Field > | Value |
Public Member Functions | |
| BlackboxBlockContainerBase (const Blackbox *BD, const Field &F, size_t m, size_t n, size_t seed=static_cast< size_t >(std::time(nullptr))) | |
| virtual | ~BlackboxBlockContainerBase () |
| const_iterator | begin () |
| const_iterator | end () |
| size_t | size () const |
| const Field & | field () const |
| const Field & | getField () const |
| const Blackbox * | getBB () const |
| size_t | rowdim () const |
| size_t | coldim () const |
Protected Member Functions | |
| virtual void | _launch ()=0 |
| Launches a process to do the computation of the next sequence value: \(U A^{i+1} V\). | |
| virtual void | _wait ()=0 |
If a separate process is computing the next value of \(U
A^{i+1} V\), _wait() blocks until the value is ready. | |
| const Value & | getvalue () |
| 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 | |
| const Field * | _field |
| Members. | |
| const Blackbox * | _BB |
| size_t | _size |
| size_t | _nn |
| size_t | _m |
| size_t | _n |
| long | casenumber |
| Block | _blockU |
| Block | _blockV |
| Value | _value |
| size_t | _seed |
Friends | |
| class | const_iterator |
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().
| typedef _Field Field |
| typedef Field::Element Element |
| typedef _Blackbox Blackbox |
| typedef BlasMatrix<Field> Block |
| typedef BlasMatrix<Field> Value |
|
inline |
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
protectedpure 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< _Field, _Blackbox, _MatrixDomain >, BlackboxBlockContainerRecord< _Field, _Blackbox, _MatrixDomain >, BlackboxBlockContainerRecord< Field, FMatrix >, and BlackboxBlockContainerRecord< Field, FMatrix >.
|
protectedpure 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< _Field, _Blackbox, _MatrixDomain >, BlackboxBlockContainerRecord< _Field, _Blackbox, _MatrixDomain >, BlackboxBlockContainerRecord< Field, FMatrix >, and BlackboxBlockContainerRecord< Field, FMatrix >.
|
inlineprotected |
|
inlineprotected |
Initializers.
|
inlineprotected |
User Left and Right blocks.
|
inlineprotected |
|
friend |
|
protected |
Members.
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |