32 #include "../exceptions/WOutOfBounds.h"
40 template<
typename T >
91 const std::vector< T >&
getData()
const;
112 template<
typename T >
114 : m_data( ( n * ( n - 1 ) ) / 2, 0.0 ),
119 template<
typename T >
125 template<
typename T >
128 if( i == j || i >= m_n || j >= m_n )
130 std::stringstream ss;
131 ss <<
"Invalid Element Access ( " << i <<
", " << j <<
" ). No diagonal elements or indices bigger than " << m_n <<
" are allowed.";
138 return m_data[( i * m_n + j - ( i + 1 ) * ( i + 2 ) / 2 )];
141 template<
typename T >
144 return m_data.size();
147 template<
typename T >
153 template<
typename T >
159 template<
typename T >
162 if( m_n * ( m_n - 1 ) / 2 != data.size() )
164 std::stringstream ss;
165 ss <<
"Data vector length: " << data.size() <<
" doesn't fit to number of rows and cols: " << m_n;
168 m_data = std::vector< T >( data );
174 #endif // WMATRIXSYM_H