linbox
CoppersmithInvariantFactors< Field_, Blackbox_, Field2_ > Class Template Reference

#include <coppersmith-invariant-factors.h>

Public Types

typedef Field_ Field
 
typedef Blackbox_ Blackbox
 
typedef MatrixDomain< FieldDomain
 
typedef Domain::OwnMatrix Block
 
typedef Field::RandIter RandIter
 
typedef Givaro::Poly1Dom< Field, Givaro::Dense > PolyDom
 
typedef GivaroPoly< PolyDomPolyRing
 
typedef PolyRing::Element PolyElement
 
typedef MatrixDomain< PolyRingPolyMatDom
 
typedef PolyMatDom::OwnMatrix PolyBlock
 

Public Member Functions

 CoppersmithInvariantFactors ()
 
void init (Field &F, const Blackbox &M, size_t b)
 
 CoppersmithInvariantFactors (Field &F, const Blackbox &M, size_t b)
 
template<class Mat1, class Mat2>
 CoppersmithInvariantFactors (Field &F, const Blackbox &M, size_t b, const Mat1 &U, const Mat2 &V)
 
template<class PolyRingVector>
size_t computeFactors (PolyRingVector &diag, int earlyTerm=10)
 

Protected Attributes

Domain MD_
 
Field F_
 
const BlackboxM_
 
size_t n_
 
size_t b_
 
Block U_
 
Block V_
 

Member Typedef Documentation

◆ Field

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef Field_ Field

◆ Blackbox

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef Blackbox_ Blackbox

◆ Domain

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef MatrixDomain<Field> Domain

◆ Block

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef Domain::OwnMatrix Block

◆ RandIter

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef Field::RandIter RandIter

◆ PolyDom

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef Givaro::Poly1Dom<Field,Givaro::Dense> PolyDom

◆ PolyRing

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef GivaroPoly<PolyDom> PolyRing

◆ PolyElement

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef PolyRing::Element PolyElement

◆ PolyMatDom

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef MatrixDomain<PolyRing> PolyMatDom

◆ PolyBlock

template<class Field_, class Blackbox_, class Field2_ = Field_>
typedef PolyMatDom::OwnMatrix PolyBlock

Constructor & Destructor Documentation

◆ CoppersmithInvariantFactors() [1/3]

template<class Field_, class Blackbox_, class Field2_ = Field_>
CoppersmithInvariantFactors ( )
inline

◆ CoppersmithInvariantFactors() [2/3]

template<class Field_, class Blackbox_, class Field2_ = Field_>
CoppersmithInvariantFactors ( Field & F,
const Blackbox & M,
size_t b )
inline

◆ CoppersmithInvariantFactors() [3/3]

template<class Field_, class Blackbox_, class Field2_ = Field_>
template<class Mat1, class Mat2>
CoppersmithInvariantFactors ( Field & F,
const Blackbox & M,
size_t b,
const Mat1 & U,
const Mat2 & V )
inline

Member Function Documentation

◆ init()

template<class Field_, class Blackbox_, class Field2_ = Field_>
void init ( Field & F,
const Blackbox & M,
size_t b )
inline

◆ computeFactors()

template<class Field_, class Blackbox_, class Field2_ = Field_>
template<class PolyRingVector>
size_t computeFactors ( PolyRingVector & diag,
int earlyTerm = 10 )
inline

Field Documentation

◆ MD_

template<class Field_, class Blackbox_, class Field2_ = Field_>
Domain MD_
protected

◆ F_

template<class Field_, class Blackbox_, class Field2_ = Field_>
Field F_
protected

◆ M_

template<class Field_, class Blackbox_, class Field2_ = Field_>
const Blackbox* M_
protected

◆ n_

template<class Field_, class Blackbox_, class Field2_ = Field_>
size_t n_
protected

◆ b_

template<class Field_, class Blackbox_, class Field2_ = Field_>
size_t b_
protected

◆ U_

template<class Field_, class Blackbox_, class Field2_ = Field_>
Block U_
protected

◆ V_

template<class Field_, class Blackbox_, class Field2_ = Field_>
Block V_
protected

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