35 #ifndef _BLAZE_MATH_EXPRESSIONS_DVECEVALEXPR_H_
36 #define _BLAZE_MATH_EXPRESSIONS_DVECEVALEXPR_H_
105 enum { vectorizable = 0 };
108 enum { smpAssignable = VT::smpAssignable };
159 template<
typename T >
161 return dv_.canAlias( alias );
171 template<
typename T >
173 return dv_.isAliased( alias );
183 return dv_.isAligned();
193 return dv_.canSMPAssign();
214 template<
typename VT2 >
238 template<
typename VT2 >
262 template<
typename VT2 >
286 template<
typename VT2 >
310 template<
typename VT2 >
334 template<
typename VT2 >
358 template<
typename VT2 >
382 template<
typename VT2 >
406 template<
typename VT2 >
430 template<
typename VT2 >
454 template<
typename VT2 >
478 template<
typename VT2 >
502 template<
typename VT2 >
526 template<
typename VT2 >
550 template<
typename VT2 >
574 template<
typename VT2 >
621 template<
typename VT
651 template<
typename VT
653 inline const DVecEvalExpr<VT,TF>
eval(
const DVecEvalExpr<VT,TF>& dv )
671 template<
typename VT,
bool TF >
672 struct Size< DVecEvalExpr<VT,TF> >
689 template<
typename VT >
690 struct DVecEvalExprTrait< DVecEvalExpr<VT,false> >
694 typedef typename SelectType< IsDenseVector<VT>::value && IsColumnVector<VT>::value
695 , DVecEvalExpr<VT,false>
696 , INVALID_TYPE >::Type Type;
705 template<
typename VT >
706 struct TDVecEvalExprTrait< DVecEvalExpr<VT,true> >
710 typedef typename SelectType< IsDenseVector<VT>::value && IsRowVector<VT>::value
711 , DVecEvalExpr<VT,true>
712 , INVALID_TYPE >::Type Type;
721 template<
typename VT,
bool TF,
bool AF >
722 struct SubvectorExprTrait< DVecEvalExpr<VT,TF>, AF >
726 typedef typename EvalExprTrait< typename SubvectorExprTrait<const VT,AF>::Type >::Type Type;
const ResultType CompositeType
Data type for composite expression templates.
Definition: DVecEvalExpr.h:97
Operand operand() const
Returns the dense vector operand.
Definition: DVecEvalExpr.h:148
BLAZE_ALWAYS_INLINE 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:879
VT::ElementType ElementType
Resulting element type.
Definition: DVecEvalExpr.h:93
Base class for all vector evaluation expression templates.The VecEvalExpr class serves as a tag for a...
Definition: VecEvalExpr.h:65
SelectType< IsExpression< VT >::value, const VT, const VT & >::Type Operand
Composite data type of the dense vector expression.
Definition: DVecEvalExpr.h:100
Header file for the IsRowVector type trait.
Header file for the DenseVector base class.
Header file for the Computation base class.
Header file for the VecEvalExpr base class.
Constraint on the data type.
Operand dv_
Dense vector of the evaluation expression.
Definition: DVecEvalExpr.h:199
Expression object for the forced evaluation of dense vectors.The DVecEvalExpr class represents the co...
Definition: DVecEvalExpr.h:84
Compile time type selection.The SelectType class template selects one of the two given types T1 and T...
Definition: SelectType.h:59
ReturnType operator[](size_t index) const
Subscript operator for the direct access to the vector elements.
Definition: DVecEvalExpr.h:127
BLAZE_ALWAYS_INLINE 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:635
size_t size() const
Returns the current size/dimension of the vector.
Definition: DVecEvalExpr.h:138
Header file for the TDVecEvalExprTrait class template.
Base class for N-dimensional dense vectors.The DenseVector class is a base class for all arbitrarily ...
Definition: DenseVector.h:70
Constraint on the data type.
CompressedMatrix< Type, false > TransposeType
Transpose type for expression template evaluations.
Definition: CompressedMatrix.h:2475
Constraint on the data type.
Type ElementType
Type of the sparse matrix elements.
Definition: CompressedMatrix.h:2476
Header file for the SelectType class template.
Header file for all forward declarations for expression class templates.
EnableIf< IsDenseMatrix< MT1 > >::Type smpSubAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the SMP subtraction assignment of a matrix to dense matrix.
Definition: DenseMatrix.h:160
bool isAliased(const T *alias) const
Returns whether the expression is aliased with the given address alias.
Definition: DVecEvalExpr.h:172
const Type & ReturnType
Return type for expression template evaluations.
Definition: CompressedMatrix.h:2477
Header file for run time assertion macros.
EnableIf< IsDenseMatrix< MT1 > >::Type smpAssign(Matrix< MT1, SO1 > &lhs, const Matrix< MT2, SO2 > &rhs)
Default implementation of the SMP assignment of a matrix to a dense matrix.
Definition: DenseMatrix.h:98
Utility type for generic codes.
Header file for the DVecEvalExprTrait class template.
BLAZE_ALWAYS_INLINE 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:742
Header file for the EvalExprTrait class template.
VT::ReturnType ReturnType
Return type for expression template evaluations.
Definition: DVecEvalExpr.h:94
DVecEvalExpr(const VT &dv)
Constructor for the DVecEvalExpr class.
Definition: DVecEvalExpr.h:116
const DMatEvalExpr< MT, SO > eval(const DenseMatrix< MT, SO > &dm)
Forces the evaluation of the given dense matrix expression dm.
Definition: DMatEvalExpr.h:677
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
bool canAlias(const T *alias) const
Returns whether the expression can alias with the given address alias.
Definition: DVecEvalExpr.h:160
DVecEvalExpr< VT, TF > This
Type of this DVecEvalExpr instance.
Definition: DVecEvalExpr.h:90
bool canSMPAssign() const
Returns whether the expression can be used in SMP assignments.
Definition: DVecEvalExpr.h:192
Base class for all compute expression templates.The Computation class serves as a tag for all computa...
Definition: Computation.h:59
EnableIf< IsDenseMatrix< MT1 > >::Type smpAddAssign(Matrix< 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:129
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:2473
Header file for basic type definitions.
Header file for the SubvectorExprTrait class template.
bool isAligned() const
Returns whether the operands of the expression are properly aligned in memory.
Definition: DVecEvalExpr.h:182
Header file for the IsColumnVector type trait.
VT::ResultType ResultType
Result type for expression template evaluations.
Definition: DVecEvalExpr.h:91
VT::TransposeType TransposeType
Transpose type for expression template evaluations.
Definition: DVecEvalExpr.h:92
EnableIf< IsDenseVector< VT1 > >::Type smpMultAssign(Vector< 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:189
Header file for the Size type trait.
#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.
BLAZE_ALWAYS_INLINE 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:849