#include <smith-form-binary.h>
This is an implementation of EGV and EGV+ algorithms See EGV (FOCS '00) and SW (ISSAC '04) papers.
Public Member Functions | |
SmithFormBinary (const oneInvariantFactor &_oif=oneInvariantFactor(), const Rank &_rank=Rank(), const Ring &_r=Ring(), int _oifthreshold=DEFAULTOIFTHRESHOLD, int _lifthreshold=DEFAULTLIFTHRESHOLD) | |
constructor | |
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 & | smithFormBinary (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 Member Functions | |
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. |