35 #ifndef _BLAZE_MATH_EXPRESSIONS_DVECSERIALEXPR_H_
36 #define _BLAZE_MATH_EXPRESSIONS_DVECSERIALEXPR_H_
105 enum { vectorizable = 0 };
108 enum { smpAssignable = VT::smpAssignable };
169 template<
typename T >
171 return dv_.canAlias( alias );
181 template<
typename T >
183 return dv_.isAliased( alias );
193 return dv_.isAligned();
203 return dv_.canSMPAssign();
224 template<
typename VT2 >
248 template<
typename VT2 >
272 template<
typename VT2 >
296 template<
typename VT2 >
321 template<
typename VT2 >
346 template<
typename VT2 >
371 template<
typename VT2 >
396 template<
typename VT2 >
420 template<
typename VT2 >
444 template<
typename VT2 >
469 template<
typename VT2 >
494 template<
typename VT2 >
519 template<
typename VT2 >
544 template<
typename VT2 >
569 template<
typename VT2 >
594 template<
typename VT2 >
641 template<
typename VT
671 template<
typename VT
673 inline const DVecSerialExpr<VT,TF>
serial(
const DVecSerialExpr<VT,TF>& dv )
691 template<
typename VT >
692 struct DVecSerialExprTrait< DVecSerialExpr<VT,false> >
696 typedef typename SelectType< IsDenseVector<VT>::value && IsColumnVector<VT>::value
697 , DVecSerialExpr<VT,false>
698 , INVALID_TYPE >::Type Type;
707 template<
typename VT >
708 struct TDVecSerialExprTrait< DVecSerialExpr<VT,true> >
712 typedef typename SelectType< IsDenseVector<VT>::value && IsRowVector<VT>::value
713 , DVecSerialExpr<VT,true>
714 , INVALID_TYPE >::Type Type;
723 template<
typename VT,
bool TF,
bool AF >
724 struct SubvectorExprTrait< DVecSerialExpr<VT,TF>, AF >
728 typedef typename SerialExprTrait< typename SubvectorExprTrait<const VT,AF>::Type >::Type Type;
Expression object for the forced serial evaluation of dense vectors.The DVecSerialExpr class represen...
Definition: DVecSerialExpr.h:84
VT::ElementType ElementType
Resulting element type.
Definition: DVecSerialExpr.h:93
SelectType< IsExpression< VT >::value, const VT, const VT & >::Type Operand
Composite data type of the dense vector expression.
Definition: DVecSerialExpr.h:100
Header file for the TDVecSerialExprTrait class template.
bool isAligned() const
Returns whether the operands of the expression are properly aligned in memory.
Definition: DVecSerialExpr.h:192
void smpSubAssign(DenseMatrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the SMP subtraction assignment of a matrix to dense matrix.
Definition: DenseMatrix.h:152
bool canAlias(const T *alias) const
Returns whether the expression can alias with the given address alias.
Definition: DVecSerialExpr.h:170
void smpMultAssign(DenseVector< VT1, TF1 > &lhs, const Vector< VT2, TF2 > &rhs)
Default implementation of the SMP multiplication assignment of a vector to a dense vector...
Definition: DenseVector.h:179
const ResultType CompositeType
Data type for composite expression templates.
Definition: DVecSerialExpr.h:97
Base class for all vector serial evaluation expression templates.The VecSerialExpr class serves as a ...
Definition: VecSerialExpr.h:65
Header file for the IsRowVector type trait.
Header file for the DenseVector base class.
const DMatSerialExpr< MT, SO > serial(const DenseMatrix< MT, SO > &dm)
Forces the serial evaluation of the given dense matrix expression dm.
Definition: DMatSerialExpr.h:690
Header file for the Computation base class.
Operand dv_
Dense vector of the serial evaluation expression.
Definition: DVecSerialExpr.h:209
VT::TransposeType TransposeType
Transpose type for expression template evaluations.
Definition: DVecSerialExpr.h:92
DVecSerialExpr(const VT &dv)
Constructor for the DVecSerialExpr class.
Definition: DVecSerialExpr.h:116
Constraint on the data type.
bool canSMPAssign() const
Returns whether the expression can be used in SMP assignments.
Definition: DVecSerialExpr.h:202
void smpAddAssign(DenseMatrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the SMP addition assignment of a matrix to a dense matrix.
Definition: DenseMatrix.h:122
bool isAliased(const T *alias) const
Returns whether the expression is aliased with the given address alias.
Definition: DVecSerialExpr.h:182
Compile time type selection.The SelectType class template selects one of the two given types T1 and T...
Definition: SelectType.h:59
VT::ResultType ResultType
Result type for expression template evaluations.
Definition: DVecSerialExpr.h:91
size_t size() const
Returns the current size/dimension of the vector.
Definition: DVecSerialExpr.h:138
void assign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the assignment of a matrix to a matrix.
Definition: Matrix.h:271
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:70
Header file for the SerialExprTrait class template.
Constraint on the data type.
CompressedMatrix< Type, false > TransposeType
Transpose type for expression template evaluations.
Definition: CompressedMatrix.h:2405
Constraint on the data type.
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2406
void multAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the multiplication assignment of a matrix to a matrix.
Definition: Matrix.h:361
VT::ReturnType ReturnType
Return type for expression template evaluations.
Definition: DVecSerialExpr.h:94
Header file for the SelectType class template.
Header file for all forward declarations for expression class templates.
Header file for the EnableIf class template.
Operand operand() const
Returns the dense vector operand.
Definition: DVecSerialExpr.h:148
void smpAssign(DenseMatrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the SMP assignment of a matrix to a dense matrix.
Definition: DenseMatrix.h:92
Header file for the VecSerialExpr base class.
const Type & ReturnType
Return type for expression template evaluations.
Definition: CompressedMatrix.h:2407
Header file for run time assertion macros.
Utility type for generic codes.
void addAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the addition assignment of a matrix to a matrix.
Definition: Matrix.h:301
void subAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the subtraction assignment of a matrix to matrix.
Definition: Matrix.h:331
Header file for the IsDenseVector type trait.
#define BLAZE_CONSTRAINT_MUST_BE_DENSE_VECTOR_TYPE(T)
Constraint on the data type.In case the given data type T is not a dense, N-dimensional vector type...
Definition: DenseVector.h:79
Header file for the DVecSerialExprTrait class template.
Base class for all compute expression templates.The Computation class serves as a tag for all computa...
Definition: Computation.h:59
Base class for sparse vectors.The SparseVector class is a base class for all arbitrarily sized (N-dim...
Definition: Forward.h:108
#define BLAZE_FUNCTION_TRACE
Function trace macro.This macro can be used to reliably trace function calls. In case function tracin...
Definition: FunctionTrace.h:157
This ResultType
Result type for expression template evaluations.
Definition: CompressedMatrix.h:2403
ReturnType operator[](size_t index) const
Subscript operator for the direct access to the vector elements.
Definition: DVecSerialExpr.h:127
Header file for basic type definitions.
Header file for the SubvectorExprTrait class template.
Header file for the IsColumnVector type trait.
DVecSerialExpr< VT, TF > This
Type of this DVecSerialExpr instance.
Definition: DVecSerialExpr.h:90
#define BLAZE_CONSTRAINT_MUST_BE_VECTOR_WITH_TRANSPOSE_FLAG(T, TF)
Constraint on the data type.In case the given data type T is not a dense or sparse vector type and in...
Definition: TransposeFlag.h:238
#define BLAZE_INTERNAL_ASSERT(expr, msg)
Run time assertion macro for internal checks.In case of an invalid run time expression, the program execution is terminated. The BLAZE_INTERNAL_ASSERT macro can be disabled by setting the BLAZE_USER_ASSERTION flag to zero or by defining NDEBUG during the compilation.
Definition: Assert.h:101
Header file for the IsExpression type trait class.
Header file for the FunctionTrace class.