Main Page   Modules   Namespace List   Class Hierarchy   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

SmithForm Class Template Reference

#include <smith-form.h>

List of all members.


Detailed Description

template<class _Ring, class _oneInvariantFactor, class _Rank>
class LinBox::SmithForm< _Ring, _oneInvariantFactor, _Rank >

Compute Smith form.

This is an implementation of EGV and EGV+ algorithms See EGV (FOCS '00) and SW (ISSAC '04) papers.


Public Types

typedef _Ring Ring
typedef _oneInvariantFactor oneInvariantFactor
typedef _Rank Rank
typedef Ring::Element Integer

Public Methods

 SmithForm (const oneInvariantFactor &_oif=oneInvariantFactor(), const Rank &_rank=Rank(), const Ring &_r=Ring(), int _oifthreshold=DEFAULTOIFTHRESHOLD, int _lifthreshold=DEFAULTLIFTHRESHOLD)
 constructor

void setOIFThreshold (int _oifthreshold=DEFAULTOIFTHRESHOLD)
void setLIFThreshold (int _lifthreshold=DEFAULTLIFTHRESHOLD)
int getOIFThreshold () const
int getLIFThreshold () const
template<class IMatrix, class Vector, class VectorP> VectorsmithForm (Vector &sf, const IMatrix &A, const VectorP &PrimeL) const
 compute the Smith Form of an integer matrix, ignoring these factors of primes in PrimeL

template<class IMatrix, class Vector> VectorsmithForm (Vector &sf, const IMatrix &A) const
 compute the Smith Form of an integer matrix

template<class IMatrix, class Vector, class VectorP> VectorsmithFormBackward (Vector &sf, const IMatrix &A, const VectorP &PrimeL) const
 compute the Smith Form of an integer matrix, ignoring these factors of primes in PrimeL Using backward search descibed by B. D. Saunders.

template<class IMatrix, class Vector> VectorsmithFormBackward (Vector &sf, const IMatrix &A) const
 compute the Smith Form of an integer matrix Using backward binary search.


Protected Methods

template<class IMatrix, class Vector> IntegerfirstInvariantFactor (Integer &fif, const IMatrix &A, const Vector &PrimeL) const
 compute the 1st invariant factor, = GCD (all element in A), missing these factors of primes in PrimeL

template<class IMatrix, class Vector, class VectorP> VectorsmithFormBinarySearch (Vector &sf, const IMatrix &A, int i, int j, const VectorP &PrimeL) const
 Binary search invariant factors between i and j, missing those factors in PrimeL suppose sf[i - 1], sf [j - 1] are ith and jth invariant factor of A i <= j.

template<class IMatrix, class Vector, class VectorP> VectorsmithFormBinarySearchBackward (Vector &sf, const IMatrix &A, int i, int j, int depth, const VectorP &PrimeL) const
 Binary search invariant factors between i and j, missing those factors in PrimeL suppose sf[i - 1], sf [j - 1] are ith and jth invariant factor of A i <= j.


Protected Attributes

oneInvariantFactor oif
Rank rank
Ring r


Member Typedef Documentation

typedef Ring::Element Integer
 

typedef _oneInvariantFactor oneInvariantFactor
 

typedef _Rank Rank
 

typedef _Ring Ring
 


Constructor & Destructor Documentation

SmithForm const oneInvariantFactor   _oif = oneInvariantFactor(),
const Rank   _rank = Rank(),
const Ring   _r = Ring(),
int    _oifthreshold = DEFAULTOIFTHRESHOLD,
int    _lifthreshold = DEFAULTLIFTHRESHOLD
[inline]
 

constructor


Member Function Documentation

Integer& firstInvariantFactor Integer   fif,
const IMatrix &    A,
const Vector   PrimeL
const [inline, protected]
 

compute the 1st invariant factor, = GCD (all element in A), missing these factors of primes in PrimeL

int getLIFThreshold   const [inline]
 

int getOIFThreshold   const [inline]
 

void setLIFThreshold int    _lifthreshold = DEFAULTLIFTHRESHOLD [inline]
 

void setOIFThreshold int    _oifthreshold = DEFAULTOIFTHRESHOLD [inline]
 

Vector& smithForm Vector   sf,
const IMatrix &    A
const [inline]
 

compute the Smith Form of an integer matrix

Vector& smithForm Vector   sf,
const IMatrix &    A,
const VectorP &    PrimeL
const [inline]
 

compute the Smith Form of an integer matrix, ignoring these factors of primes in PrimeL

Vector& smithFormBackward Vector   sf,
const IMatrix &    A
const [inline]
 

compute the Smith Form of an integer matrix Using backward binary search.

Vector& smithFormBackward Vector   sf,
const IMatrix &    A,
const VectorP &    PrimeL
const [inline]
 

compute the Smith Form of an integer matrix, ignoring these factors of primes in PrimeL Using backward search descibed by B. D. Saunders.

Vector& smithFormBinarySearch Vector   sf,
const IMatrix &    A,
int    i,
int    j,
const VectorP &    PrimeL
const [inline, protected]
 

Binary search invariant factors between i and j, missing those factors in PrimeL suppose sf[i - 1], sf [j - 1] are ith and jth invariant factor of A i <= j.

Vector& smithFormBinarySearchBackward Vector   sf,
const IMatrix &    A,
int    i,
int    j,
int    depth,
const VectorP &    PrimeL
const [inline, protected]
 

Binary search invariant factors between i and j, missing those factors in PrimeL suppose sf[i - 1], sf [j - 1] are ith and jth invariant factor of A i <= j.


Member Data Documentation

oneInvariantFactor oif [protected]
 

Ring r [protected]
 

Rank rank [protected]
 


Generated on Mon Jun 20 09:16:58 2005 for linbox by doxygen1.2.18