Listing 2: Demonstrates using the matrix class
#include <iostream> #include <iomanip> #include <complex> #include "matrix.h" #include "poly.h" using namespace std; template<class T> ostream& operator<<( ostream& o, const matrix<T>& M ) { o << endl; for(int i=0;i<M.rows;i++) { o << "[ "; for(int j=0;j<M.cols;j++) o << M(i,j) << " "; o << "]" << endl; } o << endl; return o; } //not shown: test1, test2, test3 -- mb //... void test4() { cout << endl; cout << " solve a system of polynomial equations:" << endl << endl << " (x + 1)X - (x-1) X = 4x " << endl << " 1 2" << endl << " (x)X - (x-1) X = 3x - 1" << endl << " 1 2" << endl << endl << " the solution should be:" << endl << " X = x+1 X = x-1" << endl << " 1 2 " << endl << endl; matrix< polynomial<double> > C(2,2); matrix< polynomial<double> > N(2,1); // x+1 C(0,0)[1] = 1; C(0,0)[0] = 1; // -(x-1) C(0,1)[1] = -1; C(0,1)[0] = 1; // 4x N(0,0)[1] = 4; // x C(1,0)[1] = 1; // -(x-1) C(1,1)[1] = -1; C(1,1)[0] = 1; // 3x - 1 N(1,0)[1] = 3; N(1,0)[0] = -1; cout << "C = " << C; cout << "N = " << N; // solve cout << "N.leftdiv(C) = " << N.leftdiv(C); } //not shown: test5 -- mb //... void run( void (*f)() ) { try { f(); } catch(exception x) { cout << x.what() << endl; } } int main(void) { run(test1); run(test2); run(test3); run(test4); run(test5); return 0; } //End of File