Nektar++
Namespaces | Functions
MatrixVectorMultiplication.cpp File Reference
#include <LibUtilities/LinearAlgebra/ExplicitInstantiation.h>
#include <LibUtilities/LinearAlgebra/MatrixVectorMultiplication.hpp>
#include <LibUtilities/LinearAlgebra/NekTypeDefs.hpp>
#include <LibUtilities/BasicUtils/ErrorUtil.hpp>
#include <LibUtilities/BasicUtils/RawType.hpp>
#include <LibUtilities/LinearAlgebra/Blas.hpp>
#include <LibUtilities/LinearAlgebra/CanGetRawPtr.hpp>
#include <ExpressionTemplates/CommutativeTraits.hpp>
#include <boost/type_traits.hpp>
#include <LibUtilities/LinearAlgebra/StandardMatrix.hpp>
#include <LibUtilities/LinearAlgebra/BlockMatrix.hpp>
#include <LibUtilities/LinearAlgebra/ScaledMatrix.hpp>
#include <LibUtilities/LinearAlgebra/NekVectorFwd.hpp>
#include <LibUtilities/BasicUtils/OperatorGenerators.hpp>
#include <LibUtilities/LinearAlgebra/MatrixOperations.hpp>
Include dependency graph for MatrixVectorMultiplication.cpp:

Go to the source code of this file.

Namespaces

 Nektar
 <
 

Functions

template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyUnspecializedMatrixType (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyDiagonalMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType >
void Nektar::NekMultiplyDiagonalMatrix (DataType *result, const NekMatrix< LhsDataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyBandedMatrix (NekDouble *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const NekDouble *rhs, typename boost::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, MatrixType > > >::type *p=0)
 
template<typename DataType , typename LhsDataType >
void Nektar::NekMultiplyBandedMatrix (DataType *result, const NekMatrix< LhsDataType, BlockMatrixTag > &lhs, const DataType *rhs, typename boost::enable_if< boost::mpl::not_< CanGetRawPtr< NekMatrix< LhsDataType, BlockMatrixTag > > > >::type *p=0)
 
template<typename DataType , typename LhsInnerMatrixType >
void Nektar::FullBlockMatrixMultiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename LhsInnerMatrixType >
void Nektar::DiagonalBlockMatrixMultiply (NekVector< double > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< double > &rhs)
 
void Nektar::NekMultiplyLowerTriangularMatrix (NekDouble *result, const NekMatrix< NekDouble, StandardMatrixTag > &lhs, const NekDouble *rhs)
 
void Nektar::NekMultiplyLowerTriangularMatrix (NekDouble *result, const NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &lhs, const NekDouble *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
void Nektar::NekMultiplyUpperTriangularMatrix (NekDouble *result, const NekMatrix< NekDouble, StandardMatrixTag > &lhs, const NekDouble *rhs)
 
void Nektar::NekMultiplyUpperTriangularMatrix (NekDouble *result, const NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag > &lhs, const NekDouble *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix (NekDouble *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const NekDouble *rhs, typename boost::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > > >::type *p=0)
 
template<typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix (NekDouble *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const NekDouble *rhs, typename boost::enable_if< boost::mpl::not_< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > > > >::type *p=0)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::Multiply (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::Multiply (NekVector< DataType > &result, const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
 Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_STANDARD_AND_SCALED_MATRICES,(1,(void)),(1,(NekVector< NekDouble > &)),(1,(const NekVector< NekDouble > &)))
 
template<typename DataType , typename LhsInnerMatrixType >
void Nektar::Multiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
 Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_BLOCK_MATRIX_TYPES,(1,(void)),(1,(NekVector< NekDouble > &)),(1,(const NekVector< NekDouble > &)))
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< DataType > Nektar::Multiply (const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
 Nektar::NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX (Multiply, NEKTAR_ALL_MATRIX_TYPES,(1,(NekVector< NekDouble >)),(0,()),(1,(const NekVector< NekDouble > &)))