linbox
MasseyDomain< Field, Sequence > Class Template Reference

Berlekamp/Massey algorithm. More...

#include <massey-domain.h>

Public Types

typedef Field::Element Element
 

Public Member Functions

 MasseyDomain (size_t ett_default=LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD)
 
 MasseyDomain (const MasseyDomain< Field, Sequence > &Mat, size_t ett_default=LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD)
 
 MasseyDomain (Sequence *D, size_t ett_default=LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD)
 
 MasseyDomain (Sequence *MD, const Field &F, size_t ett_default=LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD)
 
template<class Polynomial>
long operator() (Polynomial &C, bool full_poly=false)
 
const Fieldfield () const
 
const FieldgetField () const
 
Sequence * getSequence () const
 
void pseudo_rank (size_t &rank)
 
void valence (Element &Valence, size_t &rank)
 
template<class Polynomial>
size_t pseudo_minpoly (Polynomial &phi, size_t &rank, bool full_poly=true)
 
template<class Polynomial>
void minpoly (Polynomial &phi, size_t &rank, bool full_poly=true)
 

Detailed Description

template<class Field, class Sequence>
class LinBox::MasseyDomain< Field, Sequence >

Berlekamp/Massey algorithm.

Domain Massey

  • Computation is stopped when the polynomials remain the same for more than EARLY_TERM_THRESOLD
  • When minimal polynomial equals characteristic polynomial, 2 additional iterations are needed to compute it (parameter DEFAULT_ADDITIONAL_ITERATION), but those iterations are not needed for the rank

Member Typedef Documentation

◆ Element

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

Constructor & Destructor Documentation

◆ MasseyDomain() [1/4]

template<class Field, class Sequence>
MasseyDomain ( size_t ett_default = LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD)
inline

◆ MasseyDomain() [2/4]

template<class Field, class Sequence>
MasseyDomain ( const MasseyDomain< Field, Sequence > & Mat,
size_t ett_default = LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD )
inline

◆ MasseyDomain() [3/4]

template<class Field, class Sequence>
MasseyDomain ( Sequence * D,
size_t ett_default = LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD )
inline

◆ MasseyDomain() [4/4]

template<class Field, class Sequence>
MasseyDomain ( Sequence * MD,
const Field & F,
size_t ett_default = LINBOX_DEFAULT_EARLY_TERMINATION_THRESHOLD )
inline

Member Function Documentation

◆ operator()()

template<class Field, class Sequence>
template<class Polynomial>
long operator() ( Polynomial & C,
bool full_poly = false )
inline

◆ field()

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

◆ getField()

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

◆ getSequence()

template<class Field, class Sequence>
Sequence * getSequence ( ) const
inline

◆ pseudo_rank()

template<class Field, class Sequence>
void pseudo_rank ( size_t & rank)
inline

◆ valence()

template<class Field, class Sequence>
void valence ( Element & Valence,
size_t & rank )
inline

◆ pseudo_minpoly()

template<class Field, class Sequence>
template<class Polynomial>
size_t pseudo_minpoly ( Polynomial & phi,
size_t & rank,
bool full_poly = true )
inline

◆ minpoly()

template<class Field, class Sequence>
template<class Polynomial>
void minpoly ( Polynomial & phi,
size_t & rank,
bool full_poly = true )
inline

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