linbox
1
|
Compute Smith form. More...
#include <smith-form-binary.h>
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. |
Compute Smith form.
This is an implementation of EGV and EGV+ algorithms See EGV (FOCS '00) and SW (ISSAC '04) papers.