linbox
BlackboxBlockContainer< _Field, _Blackbox, _MatrixDomain > Class Template Reference

#include <blackbox-block-container.h>

+ Inheritance diagram for BlackboxBlockContainer< _Field, _Blackbox, _MatrixDomain >:

Public Types

typedef _Field Field
 
typedef Field::Element Element
 
typedef Field::RandIter RandIter
 
typedef BlasMatrix< FieldBlock
 
typedef BlasMatrix< FieldValue
 
typedef _Blackbox Blackbox
 

Public Member Functions

 BlackboxBlockContainer ()
 
 BlackboxBlockContainer (const _Blackbox *D, const Field &F, const Block &U0)
 
 BlackboxBlockContainer (const _Blackbox *D, const Field &F, const Block &U0, const Block &V0)
 
 BlackboxBlockContainer (const _Blackbox *D, const Field &F, size_t m, size_t n, size_t seed=static_cast< size_t >(std::time(nullptr)))
 
void clearTimer ()
 
void printTimer ()
 
const_iterator begin ()
 
const_iterator end ()
 
size_t size () const
 
const Fieldfield () const
 
const FieldgetField () const
 
const BlackboxgetBB () const
 
size_t rowdim () const
 
size_t coldim () const
 

Protected Member Functions

void _launch ()
 Launches a process to do the computation of the next sequence value: \(U A^{i+1} V\).
 
void _wait ()
 If a separate process is computing the next value of \(U A^{i+1} V\), _wait() blocks until the value is ready.
 
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

Block _blockW
 
_MatrixDomain _BMD
 
Timer ttSequence
 
Timer tSequence
 
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
 

Member Typedef Documentation

◆ Field

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef _Field Field

◆ Element

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef Field::Element Element

◆ RandIter

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef Field::RandIter RandIter

◆ Block

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef BlasMatrix<Field> Block

◆ Value

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef BlasMatrix<Field> Value

◆ Blackbox

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
typedef _Blackbox Blackbox
inherited

Constructor & Destructor Documentation

◆ BlackboxBlockContainer() [1/4]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
BlackboxBlockContainer ( )
inline

◆ BlackboxBlockContainer() [2/4]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
BlackboxBlockContainer ( const _Blackbox * D,
const Field & F,
const Block & U0 )
inline

◆ BlackboxBlockContainer() [3/4]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
BlackboxBlockContainer ( const _Blackbox * D,
const Field & F,
const Block & U0,
const Block & V0 )
inline

◆ BlackboxBlockContainer() [4/4]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
BlackboxBlockContainer ( const _Blackbox * D,
const Field & F,
size_t m,
size_t n,
size_t seed = static_cast<size_t>(std::time(nullptr)) )
inline

Member Function Documentation

◆ clearTimer()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void clearTimer ( )
inline

◆ printTimer()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void printTimer ( )
inline

◆ _launch()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void _launch ( )
inlineprotectedvirtual

Launches a process to do the computation of the next sequence value: \(U A^{i+1} V\).

...or just does it.

Implements BlackboxBlockContainerBase< _Field, _Blackbox, _MatrixDomain >.

◆ _wait()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void _wait ( )
inlineprotectedvirtual

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

Implements BlackboxBlockContainerBase< _Field, _Blackbox, _MatrixDomain >.

◆ begin()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const_iterator begin ( )
inlineinherited

◆ end()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const_iterator end ( )
inlineinherited

◆ size()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t size ( ) const
inlineinherited

◆ field()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Field & field ( ) const
inlineinherited

◆ getField()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Field & getField ( ) const
inlineinherited

◆ getBB()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Blackbox * getBB ( ) const
inlineinherited

◆ rowdim()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t rowdim ( ) const
inlineinherited

◆ coldim()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t coldim ( ) const
inlineinherited

◆ getvalue()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Value & getvalue ( )
inlineprotectedinherited

◆ Mul()

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void Mul ( Block & M1,
const Blackbox & M2,
const Block & M3 )
inlineprotectedinherited

Initializers.

◆ init() [1/2]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void init ( const Block & U,
const Block & V )
inlineprotectedinherited

User Left and Right blocks.

◆ init() [2/2]

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
void init ( size_t m,
size_t n )
inlineprotectedinherited

Field Documentation

◆ _blockW

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Block _blockW
protected

◆ _BMD

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
_MatrixDomain _BMD
protected

◆ ttSequence

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Timer ttSequence
protected

◆ tSequence

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Timer tSequence
protected

◆ _field

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Field* _field
protectedinherited

Members.

◆ _BB

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
const Blackbox* _BB
protectedinherited

◆ _size

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t _size
protectedinherited

◆ _nn

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t _nn
protectedinherited

◆ _m

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t _m
protectedinherited

◆ _n

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t _n
protectedinherited

◆ casenumber

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
long casenumber
protectedinherited

◆ _blockU

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Block _blockU
protectedinherited

◆ _blockV

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Block _blockV
protectedinherited

◆ _value

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
Value _value
protectedinherited

◆ _seed

template<class _Field, class _Blackbox, class _MatrixDomain = BlasMatrixDomain<_Field>>
size_t _seed
protectedinherited

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