예제 #1
0
//Test Polynomial class
void test_Polynomial()
{
	GAParams::SetNumVars( 8 );

	Monomial a("1001 0110" );
	Monomial b("1111 0000" );
	Monomial c("0000 0000" );

	// p(x) = 0;
	Polynomial p;
	p.AddTerm(c);
	std::cout << p.ToString( true ) << std::endl;
	std::cout << "  has max degree = " << (int) p.MaxDegree() << std::endl;

	// p(x) = a  = x1*x4*x6*x7
	p.AddTerm(a);
	// p(x) = a + b = x1*x4*x6*x7 + x1*x2*x3*x4
	p.AddTerm(b);
	// p(x) = a + b + c = x1*x4*x6*x7 + x1*x2*x3*x4 + 1

	std::cout << p.ToString( true ) << std::endl;
	std::cout << "  has max degree = " << (int) p.MaxDegree() << std::endl;

	NTuple d("1101 0110" );

	std::cout << p.Evaluate(d) << std::endl;
}