28 #ifndef SHARK_LINALG_BLAS_MATRIX_SET_HPP 29 #define SHARK_LINALG_BLAS_MATRIX_SET_HPP 33 #include <boost/serialization/vector.hpp> 38 template<
class element_type>
43 typedef std::vector<element_type> array_type;
45 typedef typename array_type::size_type size_type;
46 typedef typename array_type::difference_type difference_type;
47 typedef typename array_type::value_type value_type;
48 typedef typename element_type::scalar_type scalar_type;
54 typedef typename element_type::index_type index_type;
88 :m_data(size,element_type(size1,size2)){}
100 return m_data.empty()?0:m_data[0].size1();
105 return m_data.empty()?0:m_data[0].size2();
150 return m_data[
size()-1];
154 return m_data[
size()-1];
165 return m_data.begin();
175 return m_data.begin();
179 const_iterator
end()
const {
185 return m_data.begin();
198 for(std::size_t i = 0; i !=
size(); ++i){
199 m_data[i].assign(e[i]);
206 for(std::size_t i = 0; i !=
size(); ++i){
207 m_data[i].plus_assign(e[i]);
214 for(std::size_t i = 0; i !=
size(); ++i){
215 m_data[i].minus_assign(e[i]);
223 for(std::size_t i = 0; i !=
size(); ++i){
224 m_data[i].multiply_assign(e[i]);
231 for(std::size_t i = 0; i !=
size(); ++i){
232 m_data[i].divide_assign(e[i]);
244 self_type temporary(e);
251 for(std::size_t i = 0; i !=
size(); ++i){
260 for(std::size_t i = 0; i !=
size(); ++i){
269 for(std::size_t i = 0; i !=
size(); ++i){
278 for(std::size_t i = 0; i !=
size(); ++i){
285 for(std::size_t i = 0; i !=
size(); ++i){
291 for(std::size_t i = 0; i !=
size(); ++i){
300 swap(m_data, m.m_data);
304 for(std::size_t i = 0; i !=
size(); ++i){
311 template<
class Archive>
313 ar& boost::serialization::make_nvp(
"data",m_data);