36 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_SCALED_MATRIX_HPP
37 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_SCALED_MATRIX_HPP
44 #include <boost/shared_ptr.hpp>
48 template<
typename DataType,
typename InnerMatrixType>
49 class NekMatrix<NekMatrix<DataType, InnerMatrixType>, ScaledMatrixTag> :
public ConstMatrix<DataType>
53 typedef NekMatrix<DataType, InnerMatrixType>
InnerType;
54 typedef NekMatrix<InnerType, ScaledMatrixTag>
ThisType;
55 typedef typename boost::remove_const<typename InnerType::NumberType>::type
NumberType;
67 const_iterator(
typename InnerType::const_iterator iter,
74 const_iterator operator++(
int)
76 const_iterator out = *
this;
81 const_iterator& operator++()
89 return m_scale*(*m_iter);
94 return m_iter == rhs.m_iter;
99 return !(*
this == rhs);
103 typename InnerType::const_iterator
m_iter;
113 boost::shared_ptr<const InnerType> m);
142 LIB_UTILITIES_EXPORT static boost::shared_ptr<ThisType> CreateWrapper(
const boost::shared_ptr<ThisType>& rhs);
148 v_GetValue(
unsigned int row,
unsigned int column)
const;
160 template<
typename DataType>
163 template<
typename DataType>
165 Transpose(NekMatrix<DataType, ScaledMatrixTag>& rhs);
170 #endif //NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_SCALED_MATRIX_HPP