35#ifndef _BLAZE_MATH_EXPRESSIONS_DMATEIGENEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_DMATEIGENEXPR_H_
83 :
public EigenExpr< DenseVector< DMatEigenExpr<MT,SO>, false > >
142 inline size_t size() const noexcept {
163 template<
typename T >
164 inline bool canAlias(
const T* alias )
const noexcept {
165 return dm_.isAliased( alias );
175 template<
typename T >
176 inline bool isAliased(
const T* alias )
const noexcept {
177 return dm_.isAliased( alias );
198 template<
typename VT >
222 template<
typename VT >
247 template<
typename VT >
248 friend inline void addAssign( DenseVector<VT,false>& lhs,
const DMatEigenExpr& rhs )
255 addAssign( *lhs, tmp );
276 template<
typename VT >
277 friend inline void subAssign( DenseMatrix<VT,false>& lhs,
const DMatEigenExpr& rhs )
284 subAssign( *lhs, tmp );
305 template<
typename VT >
306 friend inline void multAssign( DenseMatrix<VT,false>& lhs,
const DMatEigenExpr& rhs )
313 multAssign( *lhs, tmp );
334 template<
typename VT >
335 friend inline void divAssign( DenseMatrix<VT,false>& lhs,
const DMatEigenExpr& rhs )
342 divAssign( *lhs, tmp );
413 return ReturnType( *dm );
Header file for auxiliary alias declarations.
typename T1::template Rebind< T2 >::Other Rebind_t
Alias declaration for nested Rebind class templates.
Definition: Aliases.h:350
typename T::ReturnType ReturnType_t
Alias declaration for nested ReturnType type definitions.
Definition: Aliases.h:470
typename T::ElementType ElementType_t
Alias declaration for nested ElementType type definitions.
Definition: Aliases.h:190
typename T::TransposeType TransposeType_t
Alias declaration for nested TransposeType type definitions.
Definition: Aliases.h:550
Header file for run time assertion macros.
Constraint on the data type.
Header file for the column trait.
Header file for the function trace functionality.
Header file for the If class template.
Header file for the IsExpression type trait class.
Header file for the IsHermitian type trait.
Header file for the IsSymmetric type trait.
Header file for the MakeComplex type trait.
Header file for the UnderlyingElement type trait.
Expression object for dense matrix eigenvalue solvers.
Definition: DMatEigenExpr.h:85
Rebind_t< VT, ET > ResultType
Result type for expression template evaluations.
Definition: DMatEigenExpr.h:105
typename If_t< IsSymmetric_v< MT >||IsHermitian_v< MT >, UnderlyingElement< ElementType_t< MT > >, MakeComplex< ElementType_t< MT > > >::Type ET
Element type of the resulting vector.
Definition: DMatEigenExpr.h:94
const ResultType CompositeType
Data type for composite expression templates.
Definition: DMatEigenExpr.h:111
DMatEigenExpr(const MT &dm) noexcept
Constructor for the DMatEigenExpr class.
Definition: DMatEigenExpr.h:130
size_t size() const noexcept
Returns the current size/dimension of the vector.
Definition: DMatEigenExpr.h:142
ColumnTrait_t< ResultType_t< MT > > VT
Type of the resulting vector.
Definition: DMatEigenExpr.h:89
If_t< IsExpression_v< MT >, const MT, const MT & > Operand
Composite data type of the dense matrix expression.
Definition: DMatEigenExpr.h:114
bool isAliased(const T *alias) const noexcept
Returns whether the expression is aliased with the given address alias.
Definition: DMatEigenExpr.h:176
ElementType_t< ResultType > ElementType
Resulting element type.
Definition: DMatEigenExpr.h:107
Operand operand() const noexcept
Returns the dense matrix operand.
Definition: DMatEigenExpr.h:152
TransposeType_t< ResultType > TransposeType
Transpose type for expression template evaluations.
Definition: DMatEigenExpr.h:106
static constexpr bool smpAssignable
Compilation switch for the expression template assignment strategy.
Definition: DMatEigenExpr.h:122
bool canAlias(const T *alias) const noexcept
Returns whether the expression can alias with the given address alias.
Definition: DMatEigenExpr.h:164
static constexpr bool simdEnabled
Compilation switch for the expression template evaluation strategy.
Definition: DMatEigenExpr.h:119
Operand dm_
Dense matrix of the eigenvalue expression.
Definition: DMatEigenExpr.h:183
ReturnType_t< ResultType > ReturnType
Return type for expression template evaluations.
Definition: DMatEigenExpr.h:108
Base class for dense matrices.
Definition: DenseMatrix.h:82
Base class for N-dimensional dense vectors.
Definition: DenseVector.h:77
Base class for sparse vectors.
Definition: SparseVector.h:72
Constraint on the data type.
Header file for the Computation base class.
Header file for the DenseVector base class.
Header file for the EigenExpr base class.
decltype(auto) serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:812
decltype(auto) eigen(const DenseMatrix< MT, SO > &dm)
Calculation of the eigenvalues of the given dense matrix.
Definition: DMatEigenExpr.h:402
#define BLAZE_CONSTRAINT_MUST_BE_BLAS_COMPATIBLE_TYPE(T)
Constraint on the data type.
Definition: BLASCompatible.h:61
#define BLAZE_CONSTRAINT_MUST_BE_DENSE_MATRIX_TYPE(T)
Constraint on the data type.
Definition: DenseMatrix.h:61
#define BLAZE_CONSTRAINT_MUST_BE_MATRIX_WITH_STORAGE_ORDER(T, SO)
Constraint on the data type.
Definition: StorageOrder.h:63
typename ColumnTrait< MT, CCAs... >::Type ColumnTrait_t
Auxiliary alias declaration for the ColumnTrait type trait.
Definition: ColumnTrait.h:144
bool isSquare(const Matrix< MT, SO > &matrix) noexcept
Checks if the given matrix is a square matrix.
Definition: Matrix.h:1383
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.
Definition: Assert.h:101
typename If< Condition >::template Type< T1, T2 > If_t
Auxiliary alias template for the If class template.
Definition: If.h:108
#define BLAZE_THROW_INVALID_ARGUMENT(MESSAGE)
Macro for the emission of a std::invalid_argument exception.
Definition: Exception.h:235
#define BLAZE_FUNCTION_TRACE
Function trace macro.
Definition: FunctionTrace.h:94
Header file for the exception macros of the math module.
Constraints on the storage order of matrix types.
Header file for all forward declarations for expression class templates.
Header file for the serial shim.
Base class for all compute expression templates.
Definition: Computation.h:68
Base class for all eigenvalue expression templates.
Definition: EigenExpr.h:68
Converting the given type to the matching 'complex' type.
Definition: MakeComplex.h:74
Evaluation of the element type of a given data type.
Definition: UnderlyingElement.h:94
Header file for basic type definitions.