#include <iostream>
#include <vector>
#include <utility>
#include <givaro/zring.h>
#include <givaro/givrational.h>
#include <givaro/modular.h>
int main (
int argc,
char **argv)
{
if (argc < 2 || argc > 3)
{ cerr << "Usage: rank <matrix-file-in-supported-format> [<p>]" << endl; return -1; }
ifstream input (argv[1]);
if (!input) { cerr << "Error opening matrix file: " << argv[1] << endl; return -1; }
size_t r;
if (argc == 2) {
Givaro::QField<Givaro::Rational> QQ;
if (A.rowdim() <= 20 && A.coldim() <= 20) A.write(std::cerr <<
"A:=",
Tag::FileFormat::Maple) <<
';' << std::endl;
cout << "A is " << A.rowdim() << " by " << A.coldim() << endl;
cout << "Z Rank is " << r << endl;
}
if (argc == 3) {
double q = atof(argv[2]);
typedef Givaro::Modular<double>
Field;
cout << "B is " << B.rowdim() << " by " << B.coldim() << endl;
if (B.rowdim() <= 20 && B.coldim() <= 20) B.write(cout) << endl;
Givaro::Timer chrono; chrono.start();
chrono.stop();
if (B.rowdim() <= 20 && B.coldim() <= 20) B.write(cout) << endl;
F.write(cout << "Rank is " << r << " over ") << endl;
std::cerr << chrono << std::endl;
}
return 0;
}
MatrixStream.
Definition matrix-stream.h:200
Definition sparse-matrix.h:47
Givaro::Modular< uint32_t > Field
Definition dot-product.C:49
size_t & rank(size_t &r, const Blackbox &A, const DomainCategory &tag, const Method &M)
Compute the rank of a linear transform A over a field by selected method.
linbox base configuration file
@ Maple
Definition linbox-tags.h:87
Namespace in which all linbox code resides.
Definition alt-blackbox-block-container.h:4
@ Linear
Definition methods.h:179
size_t & rankInPlace(size_t &r, Blackbox &A, const DomainCategory &tag, const Method &M)
A SparseMatrix<_Field, _Storage> ....
PivotStrategy pivotStrategy
Definition methods.h:218
Commentator & commentator()
Definition commentator.h:998
int main()
Definition test-tutorial.C:54