linbox
WeakPopovFormDomain< PolynomialRing > Class Template Reference

#include <weak-popov-form.h>

Public Types

typedef PolynomialRing::Element Polynomial
 
typedef PolynomialRing::Coeff Coeff
 
typedef PolynomialRing::CoeffField CoeffField
 

Public Member Functions

 WeakPopovFormDomain (const PolynomialRing &R)
 
 WeakPopovFormDomain (const WeakPopovFormDomain &D)
 
template<class Matrix1>
void printMatrix (const Matrix1 &A) const
 
template<typename Matrix>
void swapRows (Matrix &M, size_t r1, size_t r2) const
 
template<typename Matrix>
void swapCols (Matrix &M, size_t c1, size_t c2) const
 
template<typename Matrix>
void findPivots (std::vector< long > &pivots, const Matrix &M) const
 Gets a list of weak Popov pivots: indexes of the right-most max degree entry of the row.
 
bool findMatchingPivots (std::pair< size_t, size_t > &pair, const std::vector< long > &pivots) const
 
template<typename Matrix>
void eliminate (const Matrix &M1, Matrix &M2, const Matrix &V1, Matrix &V2, const Coeff &c, size_t e) const
 
template<typename Matrix1, typename Matrix2>
void eliminate (Matrix1 &M, Matrix2 &V, size_t row1, size_t row2, size_t pivot_col) const
 
template<typename Matrix1, typename Matrix2>
void extendedSolve (Matrix1 &M, Matrix2 &V) const
 
template<typename Matrix>
size_t findZeroRow (const Matrix &M) const
 
template<typename Matrix>
void solveDetHelper (Polynomial &det, Matrix &T) const
 
template<typename Matrix>
void solveDet (Polynomial &det, const Matrix &T_in) const
 

Member Typedef Documentation

◆ Polynomial

◆ Coeff

template<class PolynomialRing>
typedef PolynomialRing::Coeff Coeff

◆ CoeffField

Constructor & Destructor Documentation

◆ WeakPopovFormDomain() [1/2]

template<class PolynomialRing>
WeakPopovFormDomain ( const PolynomialRing & R)
inline

◆ WeakPopovFormDomain() [2/2]

template<class PolynomialRing>
WeakPopovFormDomain ( const WeakPopovFormDomain< PolynomialRing > & D)
inline

Member Function Documentation

◆ printMatrix()

template<class PolynomialRing>
template<class Matrix1>
void printMatrix ( const Matrix1 & A) const
inline

◆ swapRows()

template<class PolynomialRing>
template<typename Matrix>
void swapRows ( Matrix & M,
size_t r1,
size_t r2 ) const
inline

◆ swapCols()

template<class PolynomialRing>
template<typename Matrix>
void swapCols ( Matrix & M,
size_t c1,
size_t c2 ) const
inline

◆ findPivots()

template<class PolynomialRing>
template<typename Matrix>
void findPivots ( std::vector< long > & pivots,
const Matrix & M ) const
inline

Gets a list of weak Popov pivots: indexes of the right-most max degree entry of the row.

returns -1 if the row is zero, or the index of the pivot.

◆ findMatchingPivots()

template<class PolynomialRing>
bool findMatchingPivots ( std::pair< size_t, size_t > & pair,
const std::vector< long > & pivots ) const
inline

◆ eliminate() [1/2]

template<class PolynomialRing>
template<typename Matrix>
void eliminate ( const Matrix & M1,
Matrix & M2,
const Matrix & V1,
Matrix & V2,
const Coeff & c,
size_t e ) const
inline

◆ eliminate() [2/2]

template<class PolynomialRing>
template<typename Matrix1, typename Matrix2>
void eliminate ( Matrix1 & M,
Matrix2 & V,
size_t row1,
size_t row2,
size_t pivot_col ) const
inline

◆ extendedSolve()

template<class PolynomialRing>
template<typename Matrix1, typename Matrix2>
void extendedSolve ( Matrix1 & M,
Matrix2 & V ) const
inline

◆ findZeroRow()

template<class PolynomialRing>
template<typename Matrix>
size_t findZeroRow ( const Matrix & M) const
inline

◆ solveDetHelper()

template<class PolynomialRing>
template<typename Matrix>
void solveDetHelper ( Polynomial & det,
Matrix & T ) const
inline

◆ solveDet()

template<class PolynomialRing>
template<typename Matrix>
void solveDet ( Polynomial & det,
const Matrix & T_in ) const
inline

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