linbox
Public Member Functions | Protected Member Functions
SmithFormBinary< _Ring, _oneInvariantFactor, _Rank > Class Template Reference

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 >
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 >
VectorsmithFormBinary (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. More...
 
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 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 >
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[(size_t)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[(size_t)i - 1], sf [j - 1] are ith and jth invariant factor of A i <= j.
 

Detailed Description

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

Compute Smith form.

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

Member Function Documentation

◆ smithFormBackward()

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.


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