Index: trunk/BNC/newmat/bandmat.cpp
===================================================================
--- trunk/BNC/newmat/bandmat.cpp	(revision 9470)
+++ trunk/BNC/newmat/bandmat.cpp	(revision 10791)
@@ -29,6 +29,6 @@
 #endif
 
-static inline int my_min(int x, int y) { return x < y ? x : y; }
-static inline int my_max(int x, int y) { return x > y ? x : y; }
+////static inline int my_min(int x, int y) { return x < y ? x : y; }
+////static inline int my_max(int x, int y) { return x > y ? x : y; }
 
 
@@ -360,5 +360,6 @@
    // while (i--) { sum *= *a; a += w; }
    if (i) for (;;) { sum *= *a; if (!(--i)) break; a += w; }
-   if (!d) sum.ChangeSign(); return sum;
+   if (!d) sum.ChangeSign();
+   return sum;
 }
 
Index: trunk/BNC/newmat/myexcept.cpp
===================================================================
--- trunk/BNC/newmat/myexcept.cpp	(revision 9470)
+++ trunk/BNC/newmat/myexcept.cpp	(revision 10791)
@@ -21,4 +21,5 @@
 
 #include "myexcept.h"                  // for exception handling
+#include "newmat.h"                  // for exception handling
 
 #ifdef use_namespace
@@ -51,84 +52,103 @@
 
 
-unsigned long BaseException::Select;
-char* BaseException::what_error;
-int BaseException::SoFar;
-int BaseException::LastOne;
-
-BaseException::BaseException(const char* a_what)
-{
-   Select++; SoFar = 0;
-   if (!what_error)                   // make space for exception message
-   {
-      LastOne = 511;
-      what_error = new char[512];
-      if (!what_error)                // fail to make space
-      {
-         LastOne = 0;
-         what_error = (char *)"No heap space for exception message\n";
-      }
-   }
-   AddMessage("\n\nAn exception has been thrown\n");
-   AddMessage(a_what);
-   if (a_what) Tracer::AddTrace();
-}
-
-void BaseException::AddMessage(const char* a_what)
-{
-   if (a_what)
-   {
-      int l = strlen(a_what); int r = LastOne - SoFar;
-      if (l < r) { strcpy(what_error+SoFar, a_what); SoFar += l; }
-      else if (r > 0)
-      {
-         strncpy(what_error+SoFar, a_what, r);
-         what_error[LastOne] = 0;
-         SoFar = LastOne;
-      }
-   }
-}
-
-void BaseException::AddInt(int value)
-{
-   bool negative;
-   if (value == 0) { AddMessage("0"); return; }
-   else if (value < 0) { value = -value; negative = true; }
-   else negative = false;
-   int n = 0; int v = value;        // how many digits will we need?
-   while (v > 0) { v /= 10; n++; }
-   if (negative) n++;
-   if (LastOne-SoFar < n) { AddMessage("***"); return; }
-
-   SoFar += n; n = SoFar; what_error[n] = 0;
-   while (value > 0)
-   {
+BaseException::BaseException(const char* a_what) {
+  _what = new char[MAXSIZE];
+  if (!_what) {                // fail to make space
+    _what = (char *)"No heap space for exception message\n";
+    _deleteMe = false;
+  }
+  else {
+    _deleteMe = true;
+  }
+  AddMessage("\n\nAn exception has been thrown\n");
+  AddMessage(a_what);
+}
+
+BaseException::BaseException(const BaseException& oth) {
+  _what = new char[MAXSIZE];
+  if (!_what) {                // fail to make space
+    _what = (char *)"No heap space for exception message\n";
+    _deleteMe = false;
+  }
+  else {
+    _deleteMe = true;
+    strcpy(_what, oth._what);
+  }
+}
+  
+BaseException& BaseException::operator=(const BaseException& oth) {
+  if (this == &oth) return *this; 
+  _what = new char[MAXSIZE];
+  if (!_what) {                // fail to make space
+    _what = (char *)"No heap space for exception message\n";
+    _deleteMe = false;
+  }
+  else {
+    _deleteMe = true;
+    strcpy(_what, oth._what);
+  }
+  return *this;
+}
+  
+BaseException::~BaseException() {
+  if (_deleteMe) delete[] _what;
+}
+
+void BaseException::AddMessage(const char* a_what) {
+  if (a_what) {
+    size_t nn = MAXSIZE - strlen(_what) - 1;
+    strncat(_what, a_what, nn);
+  }
+}
+
+void BaseException::AddInt(int value) {
+  bool negative = false;
+   if (value == 0) {
+     AddMessage("0");
+     return;
+   }
+   else if (value < 0) {
+     value = -value;
+     negative = true;
+   }
+   int nn = (negative ? 1 : 0); // how many digits will we need?
+   int vv = value;        
+   while (vv > 0) { vv /= 10; ++nn; }
+   if ((int)(MAXSIZE - strlen(_what)) < nn) {
+     AddMessage("***");
+     return;
+   }
+
+   nn += strlen(_what);
+   _what[nn] = 0;
+   while (value > 0) {
       int nv = value / 10; int rm = value - nv * 10;  value = nv;
-      what_error[--n] = (char)(rm + '0');
-   }
-   if (negative) what_error[--n] = '-';
-   return;
-}
-
-void Tracer::PrintTrace()
-{
-   cout << "\n";
-   for (Tracer* et = last; et; et=et->previous)
-      cout << "  * " << et->entry << "\n";
-}
-
-void Tracer::AddTrace()
-{
-   if (last)
-   {
-      BaseException::AddMessage("Trace: ");
-      BaseException::AddMessage(last->entry);
-      for (Tracer* et = last->previous; et; et=et->previous)
-      {
-         BaseException::AddMessage("; ");
-         BaseException::AddMessage(et->entry);
-      }
-      BaseException::AddMessage(".\n");
-   }
-}
+      _what[--nn] = (char)(rm + '0');
+   }
+   if (negative) _what[--nn] = '-';
+}
+
+  
+void BaseException::MatrixDetails(const GeneralMatrix& A)
+{
+   MatrixBandWidth bw = A.bandwidth();
+   int ubw = bw.upper_val; int lbw = bw.lower_val;
+   AddMessage("MatrixType = ");
+   AddMessage(A.Type().Value());
+   AddMessage("  # Rows = "); BaseException::AddInt(A.Nrows());
+   AddMessage("; # Cols = "); BaseException::AddInt(A.Ncols());
+   if (lbw >=0)
+   {
+      AddMessage("; lower BW = ");
+      AddInt(lbw);
+   }
+   if (ubw >=0)
+   {
+      AddMessage("; upper BW = ");
+      AddInt(ubw);
+   }
+   AddMessage("\n");
+}
+
 
 #ifdef SimulateExceptions
@@ -230,6 +250,4 @@
 {
    cout << "\n\nThere has been an exception with no handler - exiting";
-   const char* what = BaseException::what();
-   if (what) cout << what << "\n";
    exit(1);
 }
@@ -479,4 +497,5 @@
 
 
+unsigned long BaseException::Select;
 unsigned long Logic_error::Select;
 unsigned long Runtime_error::Select;
Index: trunk/BNC/newmat/myexcept.h
===================================================================
--- trunk/BNC/newmat/myexcept.h	(revision 9470)
+++ trunk/BNC/newmat/myexcept.h	(revision 10791)
@@ -63,46 +63,39 @@
 
 class BaseException;
+class GeneralMatrix;
 
 class Tracer                             // linked list showing how
 {                                        // we got here
-   const char* entry;
-   Tracer* previous;
-public:
-   Tracer(const char*);
-   ~Tracer();
-   void ReName(const char*);
-   static void PrintTrace();             // for printing trace
-   static void AddTrace();               // insert trace in exception record
-   static Tracer* last;                  // points to Tracer list
-   friend class BaseException;
-};
-
-
-class BaseException                          // The base exception class
-{
-protected:
-   static char* what_error;              // error message
-   static int SoFar;                     // no. characters already entered
-   static int LastOne;                   // last location in error buffer
-public:
-   static void AddMessage(const char* a_what);
-                                         // messages about exception
-   static void AddInt(int value);        // integer to error message
-   static unsigned long Select;          // for identifying exception
-   BaseException(const char* a_what = 0);
-   static const char* what() { return what_error; }
-                                         // for getting error message
-};
-
+public:
+  Tracer(const char*) {};
+  ~Tracer() {}
+  void ReName(const char*) {}
+  static void PrintTrace() {};             // for printing trace
+  static void AddTrace() {};               // insert trace in exception record
+  static Tracer* last;                  // points to Tracer list
+};
+
+
+class BaseException {                     // The base exception class
+ protected:
+  int    MAXSIZE = 512;
+  char*  _what;                            // error message
+  bool   _deleteMe;
+ public:
+  static unsigned long Select;
+  BaseException(const char* a_what = 0);
+  BaseException(const BaseException& oth);
+  BaseException& operator=(const BaseException& oth);
+  ~BaseException();
+  void AddMessage(const char* a_what);
+  void AddInt(int value);
+  void MatrixDetails(const GeneralMatrix& A);
+  const char* what() { return _what; }
+};
+
+ 
 #ifdef TypeDefException
 typedef BaseException Exception;        // for compatibility with my older libraries
 #endif
-
-inline Tracer::Tracer(const char* e)
-   : entry(e), previous(last) { last = this; }
-
-inline Tracer::~Tracer() { last = previous; }
-
-inline void Tracer::ReName(const char* e) { entry=e; }
 
 #ifdef SimulateExceptions                // SimulateExceptions
Index: trunk/BNC/newmat/newmat.h
===================================================================
--- trunk/BNC/newmat/newmat.h	(revision 9470)
+++ trunk/BNC/newmat/newmat.h	(revision 10791)
@@ -1834,5 +1834,5 @@
    MatrixInput(const MatrixInput& mi) : n(mi.n), r(mi.r) {}
    MatrixInput(int nx, Real* rx) : n(nx), r(rx) {}
-   ~MatrixInput();
+  ~MatrixInput() noexcept(false);
    MatrixInput operator<<(double);
    MatrixInput operator<<(float);
Index: trunk/BNC/newmat/newmat2.cpp
===================================================================
--- trunk/BNC/newmat/newmat2.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat2.cpp	(revision 10791)
@@ -39,5 +39,7 @@
    REPORT
    int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage;
-   if (f < skip) f = skip; if (l > lx) l = lx; l -= f;
+   if (f < skip) f = skip;
+   if (l > lx) l = lx;
+   l -= f;
    if (l<=0) return;
    Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip);
@@ -50,5 +52,7 @@
    // THIS += (mrc * x)
    int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage;
-   if (f < skip) f = skip; if (l > lx) l = lx; l -= f;
+   if (f < skip) f = skip;
+   if (l > lx) l = lx;
+   l -= f;
    if (l<=0) return;
    Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip);
@@ -61,5 +65,7 @@
    // THIS -= mrc
    int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage;
-   if (f < skip) f = skip; if (l > lx) l = lx; l -= f;
+   if (f < skip) f = skip;
+   if (l > lx) l = lx;
+   l -= f;
    if (l<=0) return;
    Real* elx=data+(f-skip); Real* el=mrc.data+(f-mrc.skip);
@@ -72,5 +78,7 @@
    REPORT
    int f = mrc.skip; int l = f + mrc.storage; int lx = skip + storage;
-   if (f < skip) f = skip; if (l > lx) l = lx; l -= f;
+   if (f < skip) f = skip;
+   if (l > lx) l = lx;
+   l -= f;
    if (l<=0) return;
    Real* elx=data+(f-skip); Real* ely=mrc.data+(f-mrc.skip);
@@ -83,5 +91,7 @@
    int f = mrc1.skip; int f2 = mrc2.skip;
    int l = f + mrc1.storage; int l2 = f2 + mrc2.storage;
-   if (f < f2) f = f2; if (l > l2) l = l2; l -= f;
+   if (f < f2) f = f2;
+   if (l > l2) l = l2;
+   l -= f;
    if (l<=0) return 0.0;
 
@@ -97,7 +107,9 @@
    int f = skip; int l = skip + storage;
    int f1 = mrc1.skip; int l1 = f1 + mrc1.storage;
-   if (f1<f) f1=f; if (l1>l) l1=l;
+   if (f1<f) f1=f;
+   if (l1>l) l1=l;
    int f2 = mrc2.skip; int l2 = f2 + mrc2.storage;
-   if (f2<f) f2=f; if (l2>l) l2=l;
+   if (f2<f) f2=f;
+   if (l2>l) l2=l;
    Real* el = data + (f-skip);
    Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip);
@@ -169,7 +181,9 @@
    int f = skip; int l = skip + storage;
    int f1 = mrc1.skip; int l1 = f1 + mrc1.storage;
-   if (f1<f) f1=f; if (l1>l) l1=l;
+   if (f1<f) f1=f;
+   if (l1>l) l1=l;
    int f2 = mrc2.skip; int l2 = f2 + mrc2.storage;
-   if (f2<f) f2=f; if (l2>l) l2=l;
+   if (f2<f) f2=f;
+   if (l2>l) l2=l;
    Real* el = data + (f-skip);
    Real* el1 = mrc1.data+(f1-mrc1.skip); Real* el2 = mrc2.data+(f2-mrc2.skip);
@@ -333,9 +347,12 @@
    int f = skip; int l = skip + storage;
    int f1 = mrc1.skip; int l1 = f1 + mrc1.storage;
-   if (f1<f) f1=f; if (l1>l) l1=l;
+   if (f1<f) f1=f;
+   if (l1>l) l1=l;
    int f2 = mrc2.skip; int l2 = f2 + mrc2.storage;
-   if (f2<f) f2=f; if (l2>l) l2=l;
+   if (f2<f) f2=f;
+   if (l2>l) l2=l;
    Real* el = data + (f-skip); int i;
-   if (f1<f2) f1 = f2; if (l1>l2) l1 = l2;
+   if (f1<f2) f1 = f2;
+   if (l1>l2) l1 = l2;
    if (l1<=f1) { REPORT i = l-f; while (i--) *el++ = 0.0; }  // disjoint
    else
Index: trunk/BNC/newmat/newmat3.cpp
===================================================================
--- trunk/BNC/newmat/newmat3.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat3.cpp	(revision 10791)
@@ -668,5 +668,7 @@
          Throw(InternalException("SymmetricBandMatrix::GetRow(MatrixRowCol&)"));
       int w = w1+lower_val; s += w-ncols_val; Real* RowCopy;
-      if (s>0) w -= s; mrc.storage = w; int w2 = w-w1;
+      if (s>0) w -= s;
+      mrc.storage = w;
+      int w2 = w-w1;
       if (!(mrc.cw*HaveStore))
       {
@@ -709,5 +711,7 @@
          Throw(InternalException("SymmetricBandMatrix::GetCol(MatrixRowCol&)"));
       int w = w1+lower_val; s += w-ncols_val; Real* ColCopy;
-      if (s>0) w -= s; mrc.storage = w; int w2 = w-w1;
+      if (s>0) w -= s;
+      mrc.storage = w;
+      int w2 = w-w1;
 
       if ( +(mrc.cw*HaveStore) ) { REPORT ColCopy = mrc.data; }
@@ -759,5 +763,7 @@
 
       int w = w1+lower_val; s += w-ncols_val;
-      if (s>0) w -= s; mrc.storage = w; int w2 = w-w1;
+      if (s>0) w -= s;
+      mrc.storage = w;
+      int w2 = w-w1;
 
       Real* ColCopy = mrc.data = mrc.store+mrc.skip;
Index: trunk/BNC/newmat/newmat5.cpp
===================================================================
--- trunk/BNC/newmat/newmat5.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat5.cpp	(revision 10791)
@@ -488,5 +488,5 @@
    return MatrixInput(n, r+1);
 }
-MatrixInput::~MatrixInput()
+MatrixInput::~MatrixInput() noexcept(false)
 {
    REPORT
Index: trunk/BNC/newmat/newmat6.cpp
===================================================================
--- trunk/BNC/newmat/newmat6.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat6.cpp	(revision 10791)
@@ -352,5 +352,5 @@
    // MatrixConversionCheck mcc;
    Eq(X,MatrixType::Rt);
-}
+} 
 
 void SquareMatrix::operator=(const BaseMatrix& X)
@@ -429,9 +429,9 @@
    if (&gm == this) { REPORT tag_val = -1; return; }
    REPORT
-   if (indx) { delete [] indx; indx = 0; }
+   if (indx != 0) { delete [] indx; indx = 0; }
    ((CroutMatrix&)gm).get_aux(*this);
    Eq(gm);
 }
-
+   
 
 
Index: trunk/BNC/newmat/newmat7.cpp
===================================================================
--- trunk/BNC/newmat/newmat7.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat7.cpp	(revision 10791)
@@ -545,5 +545,8 @@
          { REPORT AddDS(gm1,gm2); gm2->tDelete(); gmx = gm1; }
       else if (c2 && gm2->reuse() )
-         { REPORT AddDS(gm2,gm1); if (!c1) gm1->tDelete(); gmx = gm2; }
+        { REPORT AddDS(gm2,gm1);
+           if (!c1) gm1->tDelete();
+           gmx = gm2;
+        }
       else
       {
@@ -552,9 +555,11 @@
          CatchAll
          {
-            if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+            if (!c1) gm1->tDelete();
+            if (!c2) gm2->tDelete();
             ReThrow;
          }
          AddDS(gmx,gm1,gm2);
-         if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+         if (!c1) gm1->tDelete();
+         if (!c2) gm2->tDelete();
          gmx->ReleaseAndDelete();
       }
@@ -616,5 +621,6 @@
       {
          REPORT ReverseSubtractDS(gm2,gm1);
-         if (!c1) gm1->tDelete(); gmx = gm2;
+         if (!c1) gm1->tDelete();
+         gmx = gm2;
       }
       else
@@ -625,9 +631,11 @@
          CatchAll
          {
-            if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+            if (!c1) gm1->tDelete();
+            if (!c2) gm2->tDelete();
             ReThrow;
          }
          SubtractDS(gmx,gm1,gm2);
-         if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+         if (!c1) gm1->tDelete();
+         if (!c2) gm2->tDelete();
          gmx->ReleaseAndDelete();
       }
@@ -695,9 +703,11 @@
          CatchAll
          {
-            if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+            if (!c1) gm1->tDelete();
+            if (!c2) gm2->tDelete();
             ReThrow;
          }
          SPDS(gmx,gm1,gm2);
-         if (!c1) gm1->tDelete(); if (!c2) gm2->tDelete();
+         if (!c1) gm1->tDelete();
+         if (!c2) gm2->tDelete();
          gmx->ReleaseAndDelete();
       }
@@ -779,6 +789,8 @@
    while (i--)
    {
-      if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false;
-      if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
    }
    i = n & 3; while (i--) if (*s1++ != *s2++) return false;
@@ -791,6 +803,8 @@
    while (i--)
    {
-      if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false;
-      if (*s1++ != *s2++) return false; if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
+      if (*s1++ != *s2++) return false;
    }
    i = n & 3; while (i--) if (*s1++ != *s2++) return false;
@@ -869,6 +883,8 @@
    while (i--)
    {
-      if (*s++) return false; if (*s++) return false;
-      if (*s++) return false; if (*s++) return false;
+      if (*s++) return false;
+      if (*s++) return false;
+      if (*s++) return false;
+      if (*s++) return false;
    }
    i = storage & 3; while (i--) if (*s++) return false;
Index: trunk/BNC/newmat/newmat8.cpp
===================================================================
--- trunk/BNC/newmat/newmat8.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat8.cpp	(revision 10791)
@@ -713,5 +713,6 @@
       s += dd;
    }
-   if (!d) sum.ChangeSign(); return sum;
+   if (!d) sum.ChangeSign();
+   return sum;
 
 }
Index: trunk/BNC/newmat/newmat9.cpp
===================================================================
--- trunk/BNC/newmat/newmat9.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmat9.cpp	(revision 10791)
@@ -15,4 +15,8 @@
 #include "newmatio.h"
 #include "newmatrc.h"
+
+#ifdef USE_STD_NAMESPACE
+using namespace std;
+#endif
 
 #ifdef use_namespace
@@ -44,5 +48,5 @@
    MatrixRow mr((GeneralMatrix*)&X, LoadOnEntry);
    int w = s.width();  int nr = X.Nrows();  ios_format_flags f = s.flags();
-   s.setf(ios::fixed, ios::floatfield);
+   /////s.setf(ios::fixed, ios::floatfield);
    for (int i=1; i<=nr; i++)
    {
Index: trunk/BNC/newmat/newmatex.cpp
===================================================================
--- trunk/BNC/newmat/newmatex.cpp	(revision 9470)
+++ trunk/BNC/newmat/newmatex.cpp	(revision 10791)
@@ -29,25 +29,25 @@
 
 
-static void MatrixDetails(const GeneralMatrix& A)
-// write matrix details to Exception buffer
-{
-   MatrixBandWidth bw = A.bandwidth();
-   int ubw = bw.upper_val; int lbw = bw.lower_val;
-   BaseException::AddMessage("MatrixType = ");
-   BaseException::AddMessage(A.Type().Value());
-   BaseException::AddMessage("  # Rows = "); BaseException::AddInt(A.Nrows());
-   BaseException::AddMessage("; # Cols = "); BaseException::AddInt(A.Ncols());
-   if (lbw >=0)
-   {
-      BaseException::AddMessage("; lower BW = ");
-      BaseException::AddInt(lbw);
-   }
-   if (ubw >=0)
-   {
-      BaseException::AddMessage("; upper BW = ");
-      BaseException::AddInt(ubw);
-   }
-   BaseException::AddMessage("\n");
-}
+////static void MatrixDetails(const GeneralMatrix& A)
+////// write matrix details to Exception buffer
+////{
+////   MatrixBandWidth bw = A.bandwidth();
+////   int ubw = bw.upper_val; int lbw = bw.lower_val;
+////   BaseException::AddMessage("MatrixType = ");
+////   BaseException::AddMessage(A.Type().Value());
+////   BaseException::AddMessage("  # Rows = "); BaseException::AddInt(A.Nrows());
+////   BaseException::AddMessage("; # Cols = "); BaseException::AddInt(A.Ncols());
+////   if (lbw >=0)
+////   {
+////      BaseException::AddMessage("; lower BW = ");
+////      BaseException::AddInt(lbw);
+////   }
+////   if (ubw >=0)
+////   {
+////      BaseException::AddMessage("; upper BW = ");
+////      BaseException::AddInt(ubw);
+////   }
+////   BaseException::AddMessage("\n");
+////}
 
 NPDException::NPDException(const GeneralMatrix& A)
Index: trunk/BNC/newmat/newmatio.h
===================================================================
--- trunk/BNC/newmat/newmatio.h	(revision 9470)
+++ trunk/BNC/newmat/newmatio.h	(revision 10791)
@@ -15,14 +15,17 @@
 
 #include "newmat.h"
+#include <iostream>
 
-#ifdef USE_STD_NAMESPACE
-using namespace std;
+#ifdef use_namespace
+namespace NEWMAT {
 #endif
+
+
 
 // **************************** input/output *****************************/
 
-ostream& operator<<(ostream&, const BaseMatrix&);
+std::ostream& operator<<(std::ostream&, const BaseMatrix&);
 
-ostream& operator<<(ostream&, const GeneralMatrix&);
+std::ostream& operator<<(std::ostream&, const GeneralMatrix&);
 
 
