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> Vector & | smithForm (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> Vector & | smithForm (Vector &sf, const IMatrix &A) const |
| compute the Smith Form of an integer matrix
|
template<class IMatrix, class Vector, class VectorP> Vector & | smithFormBackward (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> Vector & | smithFormBackward (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> Integer & | firstInvariantFactor (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> Vector & | smithFormBinarySearch (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> Vector & | smithFormBinarySearchBackward (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 |