Nektar++
Namespaces | Functions | Variables
MatrixVectorMultiplication.cpp File Reference
#include <type_traits>
#include <LibUtilities/LinearAlgebra/ExplicitInstantiation.h>
#include <LibUtilities/LinearAlgebra/MatrixOperations.hpp>

Go to the source code of this file.

Namespaces

namespace  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 DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyBandedMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, MatrixType > >::value >::type *p=nullptr)
 
template<typename DataType , typename LhsDataType >
void Nektar::NekMultiplyBandedMatrix (DataType *result, const NekMatrix< LhsDataType, BlockMatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< LhsDataType, BlockMatrixTag > >::value >::type *p=nullptr)
 
template<typename DataType , typename LhsInnerMatrixType >
void Nektar::FullBlockMatrixMultiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsInnerMatrixType >
void Nektar::DiagonalBlockMatrixMultiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
void Nektar::DiagonalBlockFullScalMatrixMultiply (NekVector< double > &result, const NekMatrix< NekMatrix< NekMatrix< NekDouble, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &lhs, const NekVector< double > &rhs)
 
void Nektar::DiagonalBlockFullScalMatrixMultiply (NekVector< NekSingle > &result, const NekMatrix< NekMatrix< NekMatrix< NekSingle, StandardMatrixTag >, ScaledMatrixTag >, BlockMatrixTag > &lhs, const NekVector< NekSingle > &rhs)
 
template<typename DataType >
void Nektar::NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< DataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType >
void Nektar::NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyLowerTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType >
void Nektar::NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< DataType, StandardMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType >
void Nektar::NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< NekMatrix< DataType, StandardMatrixTag >, ScaledMatrixTag > &lhs, const DataType *rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::NekMultiplyUpperTriangularMatrix (DataType *result, const NekMatrix< LhsDataType, MatrixType > &lhs, const DataType *rhs)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplySymmetricMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > >::value >::type *p=nullptr)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplySymmetricMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > >::value >::type *p=nullptr)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > >::value >::type *p=nullptr)
 
template<typename DataType , typename InnerMatrixType , typename MatrixTag >
void Nektar::NekMultiplyFullMatrix (DataType *result, const NekMatrix< InnerMatrixType, MatrixTag > &lhs, const DataType *rhs, typename std::enable_if< !CanGetRawPtr< NekMatrix< InnerMatrixType, MatrixTag > >::value >::type *p=nullptr)
 
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 > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename LhsInnerMatrixType >
NekVector< NekSingle > const NekVector< NekSingle > &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 > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< NekSingle > const NekVector< NekSingle > &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 > &))) NEKTAR_GENERATE_EXPLICIT_FUNCTION_INSTANTIATION_SINGLE_MATRIX(Multiply
 

Variables

 Nektar::NEKTAR_STANDARD_AND_SCALED_MATRICES_SINGLE
 
 Nektar::NEKTAR_BLOCK_MATRIX_TYPES_SINGLE
 
 Nektar::NekVector< NekSingle >