Expression object for dense matrix-dense matrix multiplications.The DMatDMatMultExpr class represents the compile time expression for multiplications between row-major dense matrices.
More...
#include <DMatDMatMultExpr.h>
Inherits blaze::MatMatMultExpr< DenseMatrix< DMatDMatMultExpr< MT1, MT2, SF, HF, LF, UF >, false > >, and blaze::Computation.
|
enum | : bool { simdEnabled
} |
| Compilation switch for the expression template evaluation strategy.
|
|
enum | : bool { smpAssignable
} |
| Compilation switch for the expression template assignment strategy.
|
|
enum | : size_t { SIMDSIZE = SIMDTrait<ElementType>::size
} |
| The number of elements packed within a single SIMD element.
|
|
using | This = DMatDMatMultExpr< MT1, MT2, SF, HF, LF, UF > |
| Type of this DMatDMatMultExpr instance.
|
|
using | ResultType = MultTrait_< RT1, RT2 > |
| Result type for expression template evaluations.
|
|
using | OppositeType = OppositeType_< ResultType > |
| Result type with opposite storage order for expression template evaluations.
|
|
using | TransposeType = TransposeType_< ResultType > |
| Transpose type for expression template evaluations.
|
|
using | ElementType = ElementType_< ResultType > |
| Resulting element type.
|
|
using | SIMDType = SIMDTrait_< ElementType > |
| Resulting SIMD element type.
|
|
using | ReturnType = const ElementType |
| Return type for expression template evaluations.
|
|
using | CompositeType = const ResultType |
| Data type for composite expression templates.
|
|
using | LeftOperand = If_< IsExpression< MT1 >, const MT1, const MT1 &> |
| Composite type of the left-hand side dense matrix expression.
|
|
using | RightOperand = If_< IsExpression< MT2 >, const MT2, const MT2 &> |
| Composite type of the right-hand side dense matrix expression.
|
|
using | LT = IfTrue_< evaluateLeft, const RT1, CT1 > |
| Type for the assignment of the left-hand side dense matrix operand.
|
|
using | RT = IfTrue_< evaluateRight, const RT2, CT2 > |
| Type for the assignment of the right-hand side dense matrix operand.
|
|
using | MatrixType = MT |
| Type of the matrix.
|
|
|
enum | : bool { evaluateLeft = IsComputation<MT1>::value || RequiresEvaluation<MT1>::value
} |
| Compilation switch for the composite type of the left-hand side dense matrix expression.
|
|
enum | : bool { evaluateRight = IsComputation<MT2>::value || RequiresEvaluation<MT2>::value
} |
| Compilation switch for the composite type of the right-hand side dense matrix expression.
|
|
enum | : bool { SYM = ( SF && !( HF || LF || UF ) ),
HERM = ( HF && !( LF || UF ) ),
LOW = ( LF || ( ( SF || HF ) && UF ) ),
UPP = ( UF || ( ( SF || HF ) && LF ) )
} |
| Compilation switches for the kernel generation. More...
|
|
using | RT1 = ResultType_< MT1 > |
| Result type of the left-hand side dense matrix expression.
|
|
using | RT2 = ResultType_< MT2 > |
| Result type of the right-hand side dense matrix expression.
|
|
using | ET1 = ElementType_< RT1 > |
| Element type of the left-hand side dense matrix expression.
|
|
using | ET2 = ElementType_< RT2 > |
| Element type of the right-hand side dense matrix expression.
|
|
using | CT1 = CompositeType_< MT1 > |
| Composite type of the left-hand side dense matrix expression.
|
|
using | CT2 = CompositeType_< MT2 > |
| Composite type of the right-hand side dense matrix expression.
|
|
|
LeftOperand | lhs_ |
| Left-hand side dense matrix of the multiplication expression.
|
|
RightOperand | rhs_ |
| Right-hand side dense matrix of the multiplication expression.
|
|
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
class blaze::DMatDMatMultExpr< MT1, MT2, SF, HF, LF, UF >
Expression object for dense matrix-dense matrix multiplications.
The DMatDMatMultExpr class represents the compile time expression for multiplications between row-major dense matrices.
◆ anonymous enum
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Compilation switches for the kernel generation.
Enumerator |
---|
SYM | Flag for symmetric matrices.
|
HERM | Flag for Hermitian matrices.
|
LOW | Flag for lower matrices.
|
UPP | Flag for upper matrices.
|
◆ DMatDMatMultExpr()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Constructor for the DMatDMatMultExpr class.
- Parameters
-
lhs | The left-hand side operand of the multiplication expression. |
rhs | The right-hand side operand of the multiplication expression. |
◆ at()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Checked access to the matrix elements.
- Parameters
-
i | Access index for the row. The index has to be in the range . |
j | Access index for the column. The index has to be in the range . |
- Returns
- The resulting value.
- Exceptions
-
std::out_of_range | Invalid matrix access index. |
◆ canAlias()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
template<typename T >
Returns whether the expression can alias with the given address alias.
- Parameters
-
alias | The alias to be checked. |
- Returns
- true in case the expression can alias, false otherwise.
◆ canSMPAssign()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns whether the expression can be used in SMP assignments.
- Returns
- true in case the expression can be used in SMP assignments, false if not.
◆ columns()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns the current number of columns of the matrix.
- Returns
- The number of columns of the matrix.
◆ isAliased()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
template<typename T >
Returns whether the expression is aliased with the given address alias.
- Parameters
-
alias | The alias to be checked. |
- Returns
- true in case an alias effect is detected, false otherwise.
◆ isAligned()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns whether the operands of the expression are properly aligned in memory.
- Returns
- true in case the operands are aligned, false if not.
◆ leftOperand()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns the left-hand side dense matrix operand.
- Returns
- The left-hand side dense matrix operand.
◆ operator()()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
2D-access to the matrix elements.
- Parameters
-
i | Access index for the row. The index has to be in the range . |
j | Access index for the column. The index has to be in the range . |
- Returns
- The resulting value.
◆ operator~() [1/2]
template<typename MT, bool SO>
Conversion operator for non-constant matrices.
- Returns
- Reference of the actual type of the matrix.
◆ operator~() [2/2]
template<typename MT, bool SO>
Conversion operator for constant matrices.
- Returns
- Constant reference of the actual type of the matrix.
◆ rightOperand()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns the right-hand side dense matrix operand.
- Returns
- The right-hand side dense matrix operand.
◆ rows()
template<typename MT1, typename MT2, bool SF, bool HF, bool LF, bool UF>
Returns the current number of rows of the matrix.
- Returns
- The number of rows of the matrix.
The documentation for this class was generated from the following file: