35#ifndef _BLAZE_MATH_EXPRESSIONS_DMATSVDEXPR_H_
36#define _BLAZE_MATH_EXPRESSIONS_DMATSVDEXPR_H_
83 :
public SVDExpr< DenseVector< DMatSVDExpr<MT,SO>, false > >
93 If_t< ( Size_v<CRT,0UL> < Size_v<CTT,0UL> || MaxSize_v<CRT,0UL> < MaxSize_v<CTT,0UL> ),
CRT,
CTT >;
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 DMatSVDExpr& rhs )
255 addAssign( *lhs, tmp );
276 template<
typename VT >
277 friend inline void subAssign( DenseMatrix<VT,false>& lhs,
const DMatSVDExpr& rhs )
284 subAssign( *lhs, tmp );
305 template<
typename VT >
306 friend inline void multAssign( DenseMatrix<VT,false>& lhs,
const DMatSVDExpr& rhs )
313 multAssign( *lhs, tmp );
334 template<
typename VT >
335 friend inline void divAssign( DenseMatrix<VT,false>& lhs,
const DMatSVDExpr& rhs )
342 divAssign( *lhs, tmp );
408 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 MaxSize type trait.
Header file for the UnderlyingElement type trait.
Expression object for dense matrix singular value solvers.
Definition: DMatSVDExpr.h:85
ElementType_t< ResultType > ElementType
Resulting element type.
Definition: DMatSVDExpr.h:109
Operand operand() const noexcept
Returns the dense matrix operand.
Definition: DMatSVDExpr.h:152
static constexpr bool simdEnabled
Compilation switch for the expression template evaluation strategy.
Definition: DMatSVDExpr.h:121
static constexpr bool smpAssignable
Compilation switch for the expression template assignment strategy.
Definition: DMatSVDExpr.h:124
Operand dm_
Dense matrix of the singular value expression.
Definition: DMatSVDExpr.h:183
Rebind_t< VT, ET > ResultType
Result type for expression template evaluations.
Definition: DMatSVDExpr.h:107
bool canAlias(const T *alias) const noexcept
Returns whether the expression can alias with the given address alias.
Definition: DMatSVDExpr.h:164
If_t< IsExpression_v< MT >, const MT, const MT & > Operand
Composite data type of the dense matrix expression.
Definition: DMatSVDExpr.h:116
UnderlyingElement_t< ElementType_t< MT > > ET
Element type of the resulting vector.
Definition: DMatSVDExpr.h:96
If_t<(Size_v< CRT, 0UL >< Size_v< CTT, 0UL >||MaxSize_v< CRT, 0UL >< MaxSize_v< CTT, 0UL >), CRT, CTT > VT
Type of the resulting vector.
Definition: DMatSVDExpr.h:93
ReturnType_t< ResultType > ReturnType
Return type for expression template evaluations.
Definition: DMatSVDExpr.h:110
size_t size() const noexcept
Returns the current size/dimension of the vector.
Definition: DMatSVDExpr.h:142
const ResultType CompositeType
Data type for composite expression templates.
Definition: DMatSVDExpr.h:113
bool isAliased(const T *alias) const noexcept
Returns whether the expression is aliased with the given address alias.
Definition: DMatSVDExpr.h:176
ColumnTrait_t< ResultType_t< MT > > CRT
Column type of the matrix result type.
Definition: DMatSVDExpr.h:88
TransposeType_t< ResultType > TransposeType
Transpose type for expression template evaluations.
Definition: DMatSVDExpr.h:108
ColumnTrait_t< TransposeType_t< MT > > CTT
Column type of the matrix transpose type.
Definition: DMatSVDExpr.h:89
DMatSVDExpr(const MT &dm) noexcept
Constructor for the DMatSVDExpr class.
Definition: DMatSVDExpr.h:132
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 SVDExpr base class.
decltype(auto) min(const DenseMatrix< MT1, SO1 > &lhs, const DenseMatrix< MT2, SO2 > &rhs)
Computes the componentwise minimum of the dense matrices lhs and rhs.
Definition: DMatDMatMapExpr.h:1339
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) svd(const DenseMatrix< MT, SO > &dm)
Calculation of the singular values of the given dense matrix.
Definition: DMatSVDExpr.h:401
#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
typename UnderlyingElement< T >::Type UnderlyingElement_t
Auxiliary alias declaration for the UnderlyingElement type trait.
Definition: UnderlyingElement.h:119
#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_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 Size type trait.
Header file for the serial shim.
Base class for all compute expression templates.
Definition: Computation.h:68
Base class for all singular value expression templates.
Definition: SVDExpr.h:68
Header file for basic type definitions.
Header file for the generic min algorithm.