typedef vector < double >Trow; typedef vector < Trow > Tmatrix; template < class T > ostream & // template to print any vector operator << (ostream & os, vector < T > v) { for (int i = 0; i < v.size (); i++) os << " " << v[i]; os << "\n"; return os; } void readmatrix (istream & is, Tmatrix & m); // read a matrix Trow operator * (double a, Trow r); // scalar times vector Tmatrix operator * (double a, Tmatrix m); // scalar times matrix Trow operator + (Trow r, const Trow & rr); // vector + vector Tmatrix operator + (Tmatrix mm, Tmatrix m); // matrix + matrix Trow operator * (const Tmatrix & m, const Trow & r); // matrix times vector Trow operator * (const Trow & r, double a); // vector times scalar Trow operator / (const Trow & r, double a); // vector divided by scalar double dot (const Trow & r, const Trow & rr); double norm (Trow r); Tmatrix idmatrix (int n);