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>
66 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::NekMatrix(
67 typename boost::call_traits<
typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::NumberType>::const_reference scale,
const NekMatrix<InnerType, ScaledMatrixTag>& rhs) :
68 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::BaseType(rhs),
69 m_matrix(rhs.m_matrix),
74 template<
typename DataType,
typename InnerMatrixType>
75 typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::ConstGetValueType
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>
91 return m_scale*m_matrix->Scale();
94 template<
typename DataType,
typename InnerMatrixType>
100 template<
typename DataType,
typename InnerMatrixType>
104 template<
typename DataType,
typename InnerMatrixType>
105 std::shared_ptr<const typename NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::InnerType>
111 template<
typename DataType,
typename InnerMatrixType>
114 template<
typename DataType,
typename InnerMatrixType>
117 template<
typename DataType,
typename InnerMatrixType>
121 template<
typename DataType,
typename InnerMatrixType>
125 template<
typename DataType,
typename InnerMatrixType>
132 template<
typename DataType,
typename InnerMatrixType>
133 std::shared_ptr<NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag> >
134 NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag>::CreateWrapper(
const std::shared_ptr<NekMatrix<NekMatrix< DataType, InnerMatrixType>, ScaledMatrixTag> >& rhs)
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
144 return ThisType::operator()(row, column);
147 template<
typename DataType,
typename InnerMatrixType>
150 return ThisType::GetStorageSize();
153 template<
typename DataType,
typename InnerMatrixType>
156 if( this->GetRawTransposeFlag() ==
'N' )
158 return m_matrix->GetTransposeFlag();
162 if( m_matrix->GetTransposeFlag() ==
'N' )
176 template<
typename DataType>
231 template LIB_UTILITIES_EXPORT class NekMatrix<NekMatrix< NekDouble, StandardMatrixTag>, ScaledMatrixTag>;
237 template<
typename DataType>
240 v.SetScale(-1.0*v.Scale());
#define LIB_UTILITIES_EXPORT
std::remove_const< typename InnerType::NumberType >::type NumberType
The above copyright notice and this permission notice shall be included.
NekMatrix< InnerMatrixType, BlockMatrixTag > Transpose(NekMatrix< InnerMatrixType, BlockMatrixTag > &rhs)
void NegateInPlace(NekVector< DataType > &v)