![]() |
Expression object for transpose dense vector-transpose sparse matrix multiplications.The TDVecTSMatMultExpr class represents the compile time expression for multiplications between transpose dense vectors and column-major sparse matrices. More...
#include <TDVecTSMatMultExpr.h>
Inherits blaze::DenseVector< TDVecTSMatMultExpr< VT, MT >, true >, blaze::TVecMatMultExpr, and blaze::Computation.
Public Types | |
enum | { vectorizable = 0 } |
Compilation switch for the expression template evaluation strategy. | |
enum | { smpAssignable } |
Compilation switch for the expression template assignment strategy. | |
typedef TDVecTSMatMultExpr< VT, MT > | This |
Type of this TDVecTSMatMultExpr instance. | |
typedef MultTrait< VRT, MRT >::Type | ResultType |
Result type for expression template evaluations. | |
typedef ResultType::TransposeType | TransposeType |
Transpose type for expression template evaluations. | |
typedef ResultType::ElementType | ElementType |
Resulting element type. | |
typedef const ElementType | ReturnType |
Return type for expression template evaluations. | |
typedef SelectType< useAssign, const ResultType, const TDVecTSMatMultExpr & >::Type | CompositeType |
Data type for composite expression templates. | |
typedef SelectType < IsExpression< VT >::value, const VT, const VT & >::Type | LeftOperand |
Composite type of the left-hand side dense vector expression. | |
typedef SelectType < IsExpression< MT >::value, const MT, const MT & >::Type | RightOperand |
Composite type of the right-hand side sparse matrix expression. | |
typedef SelectType < evaluateVector, const VRT, VCT >::Type | LT |
Composite type of the left-hand side dense vector expression. | |
typedef SelectType < evaluateMatrix, const MRT, MCT >::Type | RT |
Composite type of the right-hand side sparse matrix expression. | |
typedef VT | VectorType |
Type of the vector. | |
Public Member Functions | |
TDVecTSMatMultExpr (const VT &vec, const MT &mat) | |
Constructor for the TDVecTSMatMultExpr class. | |
ReturnType | operator[] (size_t index) const |
Subscript operator for the direct access to the vector elements. More... | |
size_t | size () const |
Returns the current size/dimension of the vector. More... | |
LeftOperand | leftOperand () const |
Returns the left-hand side dense vector operand. More... | |
RightOperand | rightOperand () const |
Returns the right-hand side transpose sparse matrix operand. More... | |
template<typename T > | |
bool | canAlias (const T *alias) const |
Returns whether the expression can alias with the given address alias. More... | |
template<typename T > | |
bool | isAliased (const T *alias) const |
Returns whether the expression is aliased with the given address alias. More... | |
bool | isAligned () const |
Returns whether the operands of the expression are properly aligned in memory. More... | |
bool | canSMPAssign () const |
Returns whether the expression can be used in SMP assignments. More... | |
VectorType & | operator~ () |
Conversion operator for non-constant vectors. More... | |
const VectorType & | operator~ () const |
Conversion operator for constant vectors. More... | |
Private Types | |
enum | { evaluateVector = IsComputation<VT>::value || RequiresEvaluation<VT>::value } |
Compilation switch for the composite type of the left-hand side dense vector expression. | |
enum | { evaluateMatrix = RequiresEvaluation<MT>::value } |
Compilation switch for the composite type of the right-hand side sparse matrix expression. | |
enum | { useAssign = ( evaluateVector || evaluateMatrix ) } |
Compilation switch for the evaluation strategy of the multiplication expression. More... | |
typedef VT::ResultType | VRT |
Result type of the left-hand side dense vector expression. | |
typedef MT::ResultType | MRT |
Result type of the right-hand side sparse matrix expression. | |
typedef VT::CompositeType | VCT |
Composite type of the left-hand side dense vector expression. | |
typedef MT::CompositeType | MCT |
Composite type of the right-hand side sparse matrix expression. | |
Private Attributes | |
LeftOperand | vec_ |
Left-hand side dense vector of the multiplication expression. | |
RightOperand | mat_ |
Right-hand side sparse matrix of the multiplication expression. | |
Friends | |
template<typename VT2 > | |
EnableIf< UseAssign< VT2 > >::Type | assign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
Assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseAssign< VT2 > >::Type | assign (SparseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
Assignment of a transpose dense vector-transpose sparse matrix multiplication to a sparse vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseAssign< VT2 > >::Type | addAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
Addition assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseAssign< VT2 > >::Type | subAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
Subtraction assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseAssign< VT2 > >::Type | multAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
Multiplication assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseSMPAssign< VT2 > >::Type | smpAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
SMP assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseSMPAssign< VT2 > >::Type | smpAssign (SparseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
SMP assignment of a transpose dense vector-transpose sparse matrix multiplication to a sparse vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseSMPAssign< VT2 > >::Type | smpAddAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
SMP addition assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseSMPAssign< VT2 > >::Type | smpSubAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
SMP subtraction assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
template<typename VT2 > | |
EnableIf< UseSMPAssign< VT2 > >::Type | smpMultAssign (DenseVector< VT2, true > &lhs, const TDVecTSMatMultExpr &rhs) |
SMP multiplication assignment of a transpose dense vector-transpose sparse matrix multiplication to a dense vector ( ![]() | |
Expression object for transpose dense vector-transpose sparse matrix multiplications.
The TDVecTSMatMultExpr class represents the compile time expression for multiplications between transpose dense vectors and column-major sparse matrices.
|
private |
Compilation switch for the evaluation strategy of the multiplication expression.
The useAssign compile time constant expression represents a compilation switch for the evaluation strategy of the multiplication expression. In case either the vector or the matrix operand requires an intermediate evaluation or the dense vector expression is a compound expression, useAssign will be set to true and the multiplication expression will be evaluated via the assign function family. Otherwise useAssign will be set to false and the expression will be evaluated via the subscript operator.
|
inline |
Returns whether the expression can alias with the given address alias.
alias | The alias to be checked. |
|
inline |
Returns whether the expression can be used in SMP assignments.
|
inline |
Returns whether the expression is aliased with the given address alias.
alias | The alias to be checked. |
|
inline |
Returns whether the operands of the expression are properly aligned in memory.
|
inline |
Returns the left-hand side dense vector operand.
|
inline |
Subscript operator for the direct access to the vector elements.
index | Access index. The index has to be in the range ![]() |
|
inlineinherited |
Conversion operator for non-constant vectors.
|
inlineinherited |
Conversion operator for constant vectors.
|
inline |
Returns the right-hand side transpose sparse matrix operand.
|
inline |
Returns the current size/dimension of the vector.