26 #ifndef F4_MATRIX_GENERIC_H
27 #define F4_MATRIX_GENERIC_H
37 #include <givaro/modular-balanced.h>
38 #include <fflas-ffpack/ffpack/ffpack.h>
39 #include <fflas-ffpack/utils/Matio.h>
51 template <
class Field>
208 void setInfo(
int nbPiv,
int *tau,
int *sigma,
int * startTail,
int * endCol);
221 void printMatrix (std::string
const & filename)
const;
230 bool isZero(
int row,
int col)
const;
259 typename Field::Element *
_A;
260 typename Field::Element *
_B;
261 typename Field::Element *
_C;
262 typename Field::Element *
_D;
280 template <
typename Element>
281 std::ostream & operator<<(std::ostream & stream, MatrixGeneric<Element>
const & matrix);
284 #include "../src/matrix-generic.inl"
286 #endif // F4_MATRIX_GENERIC_H
int * getEndCol()
Get the array _endCol.
void printMatrix(std::ostream &stream) const
Print the matrix.
int * getSigma()
Get the permutation _sigma.
int getHeight() const
Modify matrix element.
void setTau(int *tau)
Specify the permutation _tau.
void setStartTail(int *startTail)
Specify the array _startTail.
MatrixGeneric(Field &f)
Constructor.
bool isZero(int row, int col) const
Test if _matrix(row,col) is zero.
Field::Element * _matrix
Overload the operator =.
~MatrixGeneric()
Destructor.
int * getTau()
Get the permutation _tau.
int * getStartTail()
Get the array _startTail.
void setInfo(int nbPiv, int *tau, int *sigma, int *startTail, int *endCol)
Set the informations required by echelonize.
int echelonize()
Echelonize the matrix mat using the shape of the F4 matrix.
void erase()
Delete _startTail, _endCol, _sigma, _tau.
int getNbPiv() const
Get the number of pivots.
void setEndCol(int *encCol)
Specify the array _endCol.
void setNbPiv(int nbPiv)
Specify the number of pivots.
int getWidth() const
Get the width of the matrix (number of columns).
void setSigma(int *sigma)
Specify the permutation _sigma.