39 template<
typename DataType,
typename InnerMatrixType>
47 template<
typename DataType,
typename InnerMatrixType>
49 std::shared_ptr<const InnerType> m) :
50 NekMatrix<
NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::
BaseType(m->GetRows(), m->GetColumns(),m->GetStorageType()),
56 template<
typename DataType,
typename InnerMatrixType>
59 m_matrix(
rhs.m_matrix),
65 template<
typename DataType,
typename InnerMatrixType>
69 m_matrix(rhs.m_matrix),
74 template<
typename DataType,
typename InnerMatrixType>
78 return m_scale*m_matrix->GetValue(row, col, this->GetTransposeFlag());
81 template<
typename DataType,
typename InnerMatrixType>
84 return m_matrix->GetStorageSize();
87 template<
typename DataType,
typename InnerMatrixType>
88 typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>
::NumberType 89 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::Scale()
const 91 return m_scale*m_matrix->Scale();
94 template<
typename DataType,
typename InnerMatrixType>
95 void NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::SetScale(
const NumberType& value)
100 template<
typename DataType,
typename InnerMatrixType>
101 const typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>
::NumberType*
102 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::GetRawPtr()
const {
return m_matrix->GetRawPtr(); }
104 template<
typename DataType,
typename InnerMatrixType>
105 std::shared_ptr<const typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>
::InnerType>
106 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::GetOwnedMatrix()
const 111 template<
typename DataType,
typename InnerMatrixType>
112 unsigned int NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::GetNumberOfSubDiagonals()
const {
return m_matrix->GetNumberOfSubDiagonals(); }
114 template<
typename DataType,
typename InnerMatrixType>
115 unsigned int NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::GetNumberOfSuperDiagonals()
const {
return m_matrix->GetNumberOfSuperDiagonals(); }
117 template<
typename DataType,
typename InnerMatrixType>
118 typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::const_iterator
119 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::begin()
const {
return const_iterator(m_matrix->begin(this->GetTransposeFlag()), m_scale); }
121 template<
typename DataType,
typename InnerMatrixType>
122 typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::const_iterator
123 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::end()
const {
return const_iterator(m_matrix->end(this->GetTransposeFlag()), m_scale); }
125 template<
typename DataType,
typename InnerMatrixType>
126 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>
129 return NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>(
rhs);
132 template<
typename DataType,
typename InnerMatrixType>
133 std::shared_ptr<NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag> >
136 return std::shared_ptr<ThisType>(
new ThisType(*rhs));
140 template<
typename DataType,
typename InnerMatrixType>
141 typename boost::call_traits<typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>
::NumberType>::value_type
142 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::v_GetValue(
unsigned int row,
unsigned int column)
const 144 return ThisType::operator()(row, column);
147 template<
typename DataType,
typename InnerMatrixType>
148 unsigned int NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::v_GetStorageSize()
const 150 return ThisType::GetStorageSize();
153 template<
typename DataType,
typename InnerMatrixType>
154 char NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::v_GetTransposeFlag()
const 156 if( this->GetRawTransposeFlag() ==
'N' )
158 return m_matrix->GetTransposeFlag();
162 if( m_matrix->GetTransposeFlag() ==
'N' )
176 template<
typename DataType>
237 template<
typename DataType>
240 v.SetScale(-1.0*v.Scale());
std::remove_const< typename InnerType::NumberType >::type NumberType
NumberType ConstGetValueType
#define LIB_UTILITIES_EXPORT
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose(NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
StandardMatrixTag boost::call_traits< LhsDataType >::const_reference rhs
void NegateInPlace(NekVector< DataType > &v)