Advertisement
DragonOsman

MatrixIO.h

Mar 17th, 2017
113
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.62 KB | None | 0 0
  1. #include <iostream>
  2. #include "Matrix.h"
  3. #include "std_lib_facilities.h"
  4.  
  5. namespace Numeric_lib {
  6.  
  7.     //-----------------------------------------------------------------------------
  8.  
  9.     template<class T> std::ostream& operator<<(std::ostream& os, const Matrix<T>& v)
  10.     {
  11.         os << '{';
  12.  
  13.         for (Index i = 0; i<v.dim1(); ++i) {
  14.             os << "  ";
  15.             os << v(i);
  16.         }
  17.  
  18.         os << '}';
  19.         return os;
  20.     }
  21.  
  22.     //-----------------------------------------------------------------------------
  23.  
  24.     template<class T> std::ostream& operator<<(std::ostream& os, const Matrix<T, 2>& m)
  25.     {
  26.         os << "{\n";
  27.  
  28.         for (Index i = 0; i<m.dim1(); ++i)
  29.             os << m[i] << '\n';
  30.  
  31.         os << '}';
  32.         return os;
  33.     }
  34.  
  35.     //-----------------------------------------------------------------------------
  36.  
  37.     template<class T> std::istream& operator>>(std::istream& is, Matrix<T>& v)
  38.     {
  39.         char ch;
  40.         is >> ch;
  41.  
  42.         if (ch != '{') error("'{' missing in Matrix<T,1> input");
  43.  
  44.         for (Index i = 0; i<v.dim1(); ++i)
  45.             is >> v(i);
  46.  
  47.         is >> ch;
  48.  
  49.         if (ch != '}') error("'}' missing in Matrix<T,1> input");
  50.  
  51.         return is;
  52.     }
  53.  
  54.     //-----------------------------------------------------------------------------
  55.  
  56.     template<class T> std::istream& operator>>(std::istream& is, Matrix<T, 2>& m)
  57.     {
  58.         char ch;
  59.         is >> ch;
  60.  
  61.         if (ch != '{') error("'{' missing in Matrix<T,2> input");
  62.  
  63.         for (Index i = 0; i<m.dim1(); ++i)
  64.         {
  65.             Matrix<T, 1> tmp(m.dim2());
  66.             is >> tmp;
  67.             m[i] = tmp;
  68.         }
  69.  
  70.         is >> ch;
  71.  
  72.         if (ch != '}') error("'}' missing in Matrix<T,2> input");
  73.  
  74.         return is;
  75.     }
  76.  
  77.     //-----------------------------------------------------------------------------
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement