linbox
FrobeniusLarge< _PolynomialRing > Class Template Reference

#include <frobenius-large.h>

Public Types

typedef _PolynomialRing PolynomialRing
 
typedef PolynomialRing::Element Polynomial
 
typedef PolynomialRing::Coeff Coeff
 
typedef PolynomialRing::CoeffField Field
 
typedef Field::Element Element
 
typedef Field::RandIter RandIter
 
typedef MatrixDomain< FieldMatrixDom
 
typedef MatrixDom::OwnMatrix Matrix
 
typedef Toeplitz< Field, PolynomialRingToep
 

Public Member Functions

 FrobeniusLarge (const PolynomialRing &R)
 
void randomPolynomial (Polynomial &f, size_t d) const
 
template<class Blackbox>
void minpoly (Polynomial &g, const Blackbox &A)
 
template<class Blackbox>
void kthInvariantFactor (Polynomial &fk, const Blackbox &A, const Polynomial &m, size_t k)
 
template<class Blackbox>
void thresholdSearch (std::vector< Polynomial > &fs, std::vector< size_t > &ms, const Blackbox &A, size_t l, const Polynomial &fl, size_t m, const Polynomial &fm)
 
template<class Blackbox>
void solve (std::vector< Polynomial > &fs, std::vector< size_t > &ms, const Blackbox &A, size_t limit=0)
 fs is the distinct invariant factors of A in nonincreasing order by degree.
 
template<class Blackbox>
void frobeniusInvariants (std::vector< Polynomial > &fs, const Blackbox &A, size_t limit=0)
 fs is the invariant factor list of A in nonincreasing order by degree.
 
template<class Blackbox>
void solve (std::vector< Polynomial > &fs, const Blackbox &A, size_t limit=0)
 

Protected Attributes

Field _F
 
RandIter _RI
 
PolynomialRing _R
 
MatrixDom _MD
 

Member Typedef Documentation

◆ PolynomialRing

template<class _PolynomialRing>
typedef _PolynomialRing PolynomialRing

◆ Polynomial

template<class _PolynomialRing>
typedef PolynomialRing::Element Polynomial

◆ Coeff

template<class _PolynomialRing>
typedef PolynomialRing::Coeff Coeff

◆ Field

template<class _PolynomialRing>
typedef PolynomialRing::CoeffField Field

◆ Element

template<class _PolynomialRing>
typedef Field::Element Element

◆ RandIter

template<class _PolynomialRing>
typedef Field::RandIter RandIter

◆ MatrixDom

template<class _PolynomialRing>
typedef MatrixDomain<Field> MatrixDom

◆ Matrix

template<class _PolynomialRing>
typedef MatrixDom::OwnMatrix Matrix

◆ Toep

template<class _PolynomialRing>
typedef Toeplitz<Field, PolynomialRing> Toep

Constructor & Destructor Documentation

◆ FrobeniusLarge()

template<class _PolynomialRing>
FrobeniusLarge ( const PolynomialRing & R)
inline

Member Function Documentation

◆ randomPolynomial()

template<class _PolynomialRing>
void randomPolynomial ( Polynomial & f,
size_t d ) const
inline

◆ minpoly()

template<class _PolynomialRing>
template<class Blackbox>
void minpoly ( Polynomial & g,
const Blackbox & A )
inline

◆ kthInvariantFactor()

template<class _PolynomialRing>
template<class Blackbox>
void kthInvariantFactor ( Polynomial & fk,
const Blackbox & A,
const Polynomial & m,
size_t k )
inline

◆ thresholdSearch()

template<class _PolynomialRing>
template<class Blackbox>
void thresholdSearch ( std::vector< Polynomial > & fs,
std::vector< size_t > & ms,
const Blackbox & A,
size_t l,
const Polynomial & fl,
size_t m,
const Polynomial & fm )
inline

◆ solve() [1/2]

template<class _PolynomialRing>
template<class Blackbox>
void solve ( std::vector< Polynomial > & fs,
std::vector< size_t > & ms,
const Blackbox & A,
size_t limit = 0 )
inline

fs is the distinct invariant factors of A in nonincreasing order by degree.

ms[i] is the index where the first occurrence of Fs[i] would be in a list of all invariants, including repeats. If limit is positive, only the first limit invariants are found.

◆ frobeniusInvariants()

template<class _PolynomialRing>
template<class Blackbox>
void frobeniusInvariants ( std::vector< Polynomial > & fs,
const Blackbox & A,
size_t limit = 0 )
inline

fs is the invariant factor list of A in nonincreasing order by degree.

If limit is positive, only the first limit invariants are found.

◆ solve() [2/2]

template<class _PolynomialRing>
template<class Blackbox>
void solve ( std::vector< Polynomial > & fs,
const Blackbox & A,
size_t limit = 0 )
inline

Field Documentation

◆ _F

template<class _PolynomialRing>
Field _F
protected

◆ _RI

template<class _PolynomialRing>
RandIter _RI
protected

◆ _R

template<class _PolynomialRing>
PolynomialRing _R
protected

◆ _MD

template<class _PolynomialRing>
MatrixDom _MD
protected

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