35 #ifndef NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_SCALED_MATRIX_HPP
36 #define NEKTAR_LIB_UTILITIES_LINEAR_ALGEBRA_SCALED_MATRIX_HPP
45 template<
typename DataType,
typename InnerMatrixType>
52 typedef typename std::remove_const<typename InnerType::NumberType>::type
NumberType;
73 const_iterator out = *
this;
86 return m_scale*(*m_iter);
91 return m_iter == rhs.m_iter;
96 return !(*
this == rhs);
100 typename InnerType::const_iterator
m_iter;
110 std::shared_ptr<const InnerType> m);
145 v_GetValue(
unsigned int row,
unsigned int column)
const;
155 template<
typename DataType>
158 template<
typename DataType>
#define LIB_UTILITIES_EXPORT
bool operator==(const const_iterator &rhs)
const_iterator operator++(int)
const_iterator & operator++()
InnerType::const_iterator m_iter
bool operator!=(const const_iterator &rhs)
const_iterator(typename InnerType::const_iterator iter, const NumberType &scale)
NumberType ConstGetValueType
NekMatrix(const ThisType &rhs)
ConstMatrix< DataType > BaseType
NekMatrix< InnerType, ScaledMatrixTag > ThisType
static std::shared_ptr< ThisType > CreateWrapper(const std::shared_ptr< ThisType > &rhs)
std::remove_const< typename InnerType::NumberType >::type NumberType
static ThisType CreateWrapper(const ThisType &rhs)
NekMatrix(typename boost::call_traits< NumberType >::const_reference scale, const ThisType &rhs)
std::shared_ptr< const InnerType > m_matrix
NekMatrix< DataType, InnerMatrixType > InnerType
ThisType & operator=(const ThisType &)=default
The above copyright notice and this permission notice shall be included.
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose(NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
void NegateInPlace(NekVector< DataType > &v)