NullSpace of sparse matrix over GFq.
NullSpace of sparse matrix over GFq.nullspace is allocated m \times n.
#include <iostream>
#include <givaro/gfq.h>
int main (int argc, char **argv)
{
if ( argc < 2 || argc > 4) {
std::cerr << "Usage to get a random null space basis over GF(p,k): <matrix-file-in-SMS-format> p [k]" << std::endl;
return -1;
}
std::ifstream input (argv[1]);
if (!input) { std::cerr << "Error opening matrix file " << argv[1] << std::endl; return -1; }
typedef Givaro::GFqDom<int64_t> Field;
Field F(atoi(argv[2]),argc>3?atoi(argv[3]):1);
SparseMatrix<Field, SparseMatrixFormat::SparseSeq > B (F);
B.read (input);
std::cout << "B is " << B.rowdim() << " by " << B.coldim() << std::endl;
NullSpace.
write( std::cerr <<
"X:=", Tag::FileFormat::Maple ) <<
';' << std::endl;
std::cerr <<
"NullsSpace dimensions:" << NullSpace.
rowdim() <<
'x' << NullSpace.
coldim() << std::endl;
return 0;
}
size_t rowdim() const
Get the number of rows in the matrix.
Definition: blas-matrix.inl:502
size_t coldim() const
Get the number of columns in the matrix.
Definition: blas-matrix.inl:508
std::ostream & write(std::ostream &os) const
Write the matrix in MatrixMarket format.
Definition: blas-matrix.h:562
Block & nullspacebasisin(Block &x, _Matrix &A) const
Sparse in place Gaussian elimination with reordering to reduce fill-in.
Definition: gauss-nullspace.inl:99
Gauss elimination and applications for sparse matrices.
Namespace in which all linbox code resides.
Definition: alt-blackbox-block-container.h:4