28 #ifndef SHARK_LINALG_BLAS_IO_HPP 29 #define SHARK_LINALG_BLAS_IO_HPP 37 namespace shark{
namespace blas{
61 template<
class E,
class T,
class VE>
63 std::basic_ostream<E, T> &operator << (std::basic_ostream<E, T> &os,
65 typedef typename VE::size_type size_type;
66 size_type
size = v ().size ();
67 std::basic_ostringstream<E, T, std::allocator<E> > s;
68 s.flags (os.flags ());
69 s.imbue (os.getloc ());
70 s.precision (os.precision ());
71 s <<
'[' << size <<
"](";
74 for (size_type i = 1; i <
size; ++ i)
77 return os << s.str ().c_str ();
103 template<
class E,
class T,
class ME>
105 std::basic_ostream<E, T> &operator << (std::basic_ostream<E, T> &os,
107 typedef typename ME::size_type size_type;
108 size_type size1 = m ().size1 ();
109 size_type size2 = m ().size2 ();
110 std::basic_ostringstream<E, T, std::allocator<E> > s;
111 s.flags (os.flags ());
112 s.imbue (os.getloc ());
113 s.precision (os.precision ());
114 s <<
'[' << size1 <<
',' << size2 <<
"](";
119 for (size_type j = 1; j < size2; ++ j)
120 s <<
',' << m () (0, j);
123 for (size_type i = 1; i < size1; ++ i) {
127 for (size_type j = 1; j < size2; ++ j)
128 s <<
',' << m () (i, j);
132 return os << s.str ().c_str ();