Nektar++
Namespaces | Functions
MatrixOperations.hpp File Reference
#include <LibUtilities/BasicUtils/RawType.hpp>
#include <LibUtilities/LinearAlgebra/Blas.hpp>
#include <LibUtilities/LinearAlgebra/BlockMatrix.hpp>
#include <LibUtilities/LinearAlgebra/CanGetRawPtr.hpp>
#include <LibUtilities/LinearAlgebra/NekVectorFwd.hpp>
#include <LibUtilities/LinearAlgebra/ScaledMatrix.hpp>
#include <LibUtilities/LinearAlgebra/StandardMatrix.hpp>
#include <string>
#include <type_traits>

Go to the source code of this file.

Namespaces

namespace  Nektar
 

Functions

template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< DataType > Nektar::Multiply (const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
void Nektar::Multiply (NekVector< DataType > &result, const NekMatrix< LhsDataType, MatrixType > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsInnerMatrixType >
void Nektar::Multiply (NekVector< DataType > &result, const NekMatrix< LhsInnerMatrixType, BlockMatrixTag > &lhs, const NekVector< DataType > &rhs)
 
template<typename DataType , typename LhsDataType , typename MatrixType >
NekVector< DataType > Nektar::operator* (const NekMatrix< LhsDataType, MatrixType > &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 ResultDataType , typename LhsDataType , typename LhsMatrixType >
void Nektar::Multiply (NekMatrix< ResultDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const ResultDataType &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Nektar::Multiply (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const DataType &rhs)
 
template<typename RhsDataType , typename RhsMatrixType , typename ResultDataType >
void Nektar::Multiply (NekMatrix< ResultDataType, StandardMatrixTag > &result, const ResultDataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > Nektar::Multiply (const DataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > Nektar::operator* (const DataType &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< RhsDataType, RhsMatrixType >::NumberType, StandardMatrixTag > Nektar::operator* (const NekMatrix< RhsDataType, RhsMatrixType > &lhs, const DataType &rhs)
 
template<typename LhsDataType >
void Nektar::MultiplyEqual (NekMatrix< LhsDataType, StandardMatrixTag > &lhs, typename boost::call_traits< LhsDataType >::const_reference rhs)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
void Nektar::NekMultiplyFullMatrixFullMatrix (NekMatrix< LhsDataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs, typename std::enable_if< CanGetRawPtr< NekMatrix< LhsDataType, LhsMatrixType > >::value &&CanGetRawPtr< NekMatrix< RhsDataType, RhsMatrixType > >::value >::type *p=nullptr)
 
template<typename LhsDataType , typename RhsDataType , typename DataType , typename LhsMatrixType , typename RhsMatrixType >
void Nektar::Multiply (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename RhsInnerType , typename RhsMatrixType >
void Nektar::MultiplyEqual (NekMatrix< RhsInnerType, StandardMatrixTag > &result, const NekMatrix< RhsInnerType, RhsMatrixType > &rhs, typename std::enable_if< std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, RhsInnerType >::value &&CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType > >::value >::type *t=0)
 
template<typename DataType , typename RhsInnerType , typename RhsMatrixType >
void Nektar::MultiplyEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsInnerType, RhsMatrixType > &rhs, typename std::enable_if< !std::is_same< RawType_t< typename NekMatrix< RhsInnerType, RhsMatrixType >::NumberType >, DataType >::value||!CanGetRawPtr< NekMatrix< RhsInnerType, RhsMatrixType > >::value >::type *t=0)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix< typename std::remove_const< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType >::type, StandardMatrixTag > Nektar::Multiply (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename RhsDataType , typename LhsMatrixType , typename RhsMatrixType >
NekMatrix< typename std::remove_const< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType >::type, StandardMatrixTag > Nektar::operator* (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::Add (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Nektar::Add (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Nektar::operator+ (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::AddEqualNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::Subtract (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractEqual (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename DataType , typename RhsDataType , typename RhsMatrixType >
void Nektar::SubtractEqualNegatedLhs (NekMatrix< DataType, StandardMatrixTag > &result, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Nektar::Subtract (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)
 
template<typename LhsDataType , typename LhsMatrixType , typename RhsDataType , typename RhsMatrixType >
NekMatrix< typename NekMatrix< LhsDataType, LhsMatrixType >::NumberType, StandardMatrixTag > Nektar::operator- (const NekMatrix< LhsDataType, LhsMatrixType > &lhs, const NekMatrix< RhsDataType, RhsMatrixType > &rhs)