Compute the integer characteristic polynomial of symetric matrices with (0,1) coefficients.
Compute the integer characteristic polynomial of symetric matrices with (0,1) coefficients.Example for Pr G. Royle.
#include <iostream>
#include <givaro/zring.h>
template <class Field, class Polynomial>
{
cout<<"X";
if ( P[0] != 0)
F.write(cout<<((P[0]>0)?"+":""),P[0]);
}
else{
for (
int i=
n-1; i>1; --i)
if (!F.isZero(P[(size_t)i]))
F.write(cout<<((P[(size_t)i]>0)?"+":""),P[(size_t)i])<<"*X^"<<i;
if ( P[1] != 0)
F.write(cout<<((P[1]>0)?"+":""),P[1])<<"*X";
if ( P[0] != 0)
F.write(cout<<((P[0]>0)?"+":""),P[0]);
}
}
int main (
int argc,
char **argv)
{
if (argc != 2) {
cerr << "Usage: graph-charpoly <0/1-symmetric-matrix-file-in-SMS-format>" <<endl;
return -1;
}
ifstream input (argv[1]);
if (!input) {
cerr << "Error opening matrix file " << argv[1] << endl;
return -1;
}
typedef Givaro::ZRing<Integer> IRing_t;
IRing_t ZZ;
A.read (input);
cout<< "Characteristic Polynomial is ", c_A) << std::endl;
return 0;
}
std::ostream & printPolynomial(std::ostream &out, const Field &F, const Polynomial &v)
Definition charpoly.C:47
Dense Polynomial representation using Givaro.
Definition dense-polynomial.h:50
Time and space efficient representation of sparse {0,1}-matrices.
Definition zo.h:71
Givaro::Modular< uint32_t > Field
Definition dot-product.C:49
linbox base configuration file
@ Symmetric
Matrix has its main diagonal as a reflection axis.
Definition methods.h:147
Namespace in which all linbox code resides.
Definition alt-blackbox-block-container.h:4
Polynomial & charpoly(Polynomial &P, const Blackbox &A, const DomainCategory &tag, const MyMethod &M)
int n
Definition t-rdisolve.C:74
Commentator & commentator()
Definition commentator.h:998
PolynomialRing::Element Polynomial
Definition test-toeplitz.C:15
NTL_zz_pX PolynomialRing
Definition test-toeplitz.C:14
int main()
Definition test-tutorial.C:54