]> git.tdb.fi Git - libs/math.git/blobdiff - source/linal/dynamicmatrix.h
Add formatted output operators for vector and matrix classes
[libs/math.git] / source / linal / dynamicmatrix.h
index 1bbed275844c3fe06a60e4f09644c7c668bd4c5d..6d45657a6f4fd99a41aaec63e0c401cc6c3587d5 100644 (file)
@@ -2,6 +2,7 @@
 #define MSP_LINAL_DYNAMICMATRIX_H_
 
 #include <algorithm>
+#include <ostream>
 #include "dynamicvector.h"
 #include "matrixops.h"
 
@@ -317,6 +318,27 @@ inline DynamicMatrix<T> invert(const DynamicMatrix<T> &m)
        return r.invert();
 }
 
+template<typename T>
+inline std::ostream &operator<<(std::ostream &s, const DynamicMatrix<T> &m)
+{
+       s << "DynamicMatrix" << m.rows() << 'x' << m.columns() << '(';
+       for(unsigned i=0; i<m.columns(); ++i)
+       {
+               if(i)
+                       s << ", ";
+               s << '[';
+               for(unsigned j=0; j<m.rows(); ++j)
+               {
+                       if(j)
+                               s << ", ";
+                       s << m(j, i);
+               }
+               s << ']';
+       }
+       s << ')';
+       return s;
+}
+
 } // namespace LinAl
 } // namespace Msp