Rank of sparse matrix over Z or Zp.
#include <iostream>
#include <sstream>
#include "linbox/field/gf2.h"
#include "linbox/blackbox/sparse.h"
#include "linbox/blackbox/zero-one.h"
#include "linbox/solutions/rank.h"
#include "linbox/util/matrix-stream.h"
#include "linbox/field/givaro.h"
int main (int argc, char **argv)
{
commentator().
setMaxDetailLevel (-1);
commentator().
setMaxDepth (-1);
commentator().
setReportStream (std::cerr);
if (argc < 2 || argc > 3) {
std::cerr << "Usage: rank <matrix-file-in-supported-format> [<p>]" << std::endl;
return -1;
}
std::ifstream input (argv[1]);
if (!input) {
std::cerr << "Error opening matrix file: " << argv[1] << std::endl;
return -1;
}
long unsigned int r;
if (argc == 2) {
LinBox::GivaroRational ZZ;
std::cout <<
"A is " << A.
rowdim() <<
" by " << A.
coldim() << std::endl;
}
if (argc == 3) {
int32_t q = atoi(argv[2]);
Field F(q);
std::cout <<
"B is " << B.
rowdim() <<
" by " << B.
coldim() << std::endl;
#if 0
MBB.certificate(true);
#endif
#if 0
SE.strategy(Specifier::PIVOT_LINEAR);
#endif
}
std::cout << "Rank is " << r << std::endl;
return 0;
}