linbox
LastInvariantFactor< _Ring, _Solver > Class Template Reference

This is used in a Smith Form algorithm. More...

#include <last-invariant-factor.h>

Public Types

typedef _Ring Ring
 
typedef _Solver Solver
 
typedef Ring::Element Integer
 

Public Member Functions

 LastInvariantFactor (const Solver &_solver=Solver(), const Ring &_r=Ring(), int _threshold=DEFAULTLIFTHRESHOLD)
 _Ring, an integer ring, _Solver, a function which solves Ax = b over the quotient field of _Ring.
 
void setThreshold (int _threshold)
 
int getThreshold () const
 
const SolvergetSolver () const
 
void setSolver (const Solver &s)
 
template<class IMatrix, class Vector>
IntegerlastInvariantFactor (Integer &lif, const IMatrix &A, const Vector &PrimeL)
 Compute the last invariant factor of an integer matrix, by solving linear system, ignoring these factors of primes in list PrimeL.
 
template<class IMatrix, class Vector>
IntegerlastInvariantFactor_Bonus (Integer &lif, Integer &Bonus, const IMatrix &A, const Vector &PrimeL)
 Compute the last invariant factor of an integer matrix, by solving linear system, ignoring these factors of primes in list PrimeL Implement the Bonus in ref{....
 
template<class IMatrix, class Vector>
IntegerlastInvariantFactor1 (Integer &lif, Vector &r_num, const IMatrix &A, const bool oldMatrix=false)
 
template<class Vector>
Integerbonus (Integer &Bonus, const Integer r1_den, const Integer r2_den, Vector &r1_num, Vector &r2_num) const
 
template<class IMatrix>
IntegerlastInvariantFactor (Integer &lif, const IMatrix &A)
 Compute the last invariant factor.
 
template<class IMatrix>
IntegerlastInvariantFactor_Bonus (Integer &lif, Integer &Bonus, const IMatrix &A)
 Compute the last invariant factor with Bonus.
 

Protected Types

typedef BlasVector< RingDVect
 

Protected Attributes

Ring r
 
Ring::RandIter _gen
 
Solver solver
 
int threshold
 

Detailed Description

template<class _Ring, class _Solver>
class LinBox::LastInvariantFactor< _Ring, _Solver >

This is used in a Smith Form algorithm.

This computes the last invariant factor of an integer matrix, whether zero or not, by rational solving.

Member Typedef Documentation

◆ Ring

template<class _Ring, class _Solver>
typedef _Ring Ring

◆ Solver

template<class _Ring, class _Solver>
typedef _Solver Solver

◆ Integer

template<class _Ring, class _Solver>
typedef Ring::Element Integer

◆ DVect

template<class _Ring, class _Solver>
typedef BlasVector<Ring> DVect
protected

Constructor & Destructor Documentation

◆ LastInvariantFactor()

template<class _Ring, class _Solver>
LastInvariantFactor ( const Solver & _solver = Solver(),
const Ring & _r = Ring(),
int _threshold = DEFAULTLIFTHRESHOLD )
inline

_Ring, an integer ring, _Solver, a function which solves Ax = b over the quotient field of _Ring.

Member Function Documentation

◆ setThreshold()

template<class _Ring, class _Solver>
void setThreshold ( int _threshold)
inline

◆ getThreshold()

template<class _Ring, class _Solver>
int getThreshold ( ) const
inline

◆ getSolver()

template<class _Ring, class _Solver>
const Solver & getSolver ( ) const
inline

◆ setSolver()

template<class _Ring, class _Solver>
void setSolver ( const Solver & s)
inline

◆ lastInvariantFactor() [1/2]

template<class _Ring, class _Solver>
template<class IMatrix, class Vector>
Integer & lastInvariantFactor ( Integer & lif,
const IMatrix & A,
const Vector & PrimeL )
inline

Compute the last invariant factor of an integer matrix, by solving linear system, ignoring these factors of primes in list PrimeL.

◆ lastInvariantFactor_Bonus() [1/2]

template<class _Ring, class _Solver>
template<class IMatrix, class Vector>
Integer & lastInvariantFactor_Bonus ( Integer & lif,
Integer & Bonus,
const IMatrix & A,
const Vector & PrimeL )
inline

Compute the last invariant factor of an integer matrix, by solving linear system, ignoring these factors of primes in list PrimeL Implement the Bonus in ref{....

}

◆ lastInvariantFactor1()

template<class _Ring, class _Solver>
template<class IMatrix, class Vector>
Integer & lastInvariantFactor1 ( Integer & lif,
Vector & r_num,
const IMatrix & A,
const bool oldMatrix = false )
inline

◆ bonus()

template<class _Ring, class _Solver>
template<class Vector>
Integer & bonus ( Integer & Bonus,
const Integer r1_den,
const Integer r2_den,
Vector & r1_num,
Vector & r2_num ) const
inline

◆ lastInvariantFactor() [2/2]

template<class _Ring, class _Solver>
template<class IMatrix>
Integer & lastInvariantFactor ( Integer & lif,
const IMatrix & A )
inline

Compute the last invariant factor.

◆ lastInvariantFactor_Bonus() [2/2]

template<class _Ring, class _Solver>
template<class IMatrix>
Integer & lastInvariantFactor_Bonus ( Integer & lif,
Integer & Bonus,
const IMatrix & A )
inline

Compute the last invariant factor with Bonus.

Field Documentation

◆ r

template<class _Ring, class _Solver>
Ring r
protected

◆ _gen

template<class _Ring, class _Solver>
Ring::RandIter _gen
mutableprotected

◆ solver

template<class _Ring, class _Solver>
Solver solver
protected

◆ threshold

template<class _Ring, class _Solver>
int threshold
protected

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