Expression object for the dense matrix/tranpose dense matrix map() function.
More...
#include <DMatTDMatMapExpr.h>
Inherits blaze::MatMatMapExpr< DenseMatrix< DMatTDMatMapExpr< MT1, MT2, OP >, false > >, and blaze::Computation.
|
using | This = DMatTDMatMapExpr< MT1, MT2, OP > |
| Type of this DMatTDMatMapExpr instance.
|
|
using | BaseType = MatMatMapExpr< DenseMatrix< This, false > > |
| Base type of this DMatTDMatMapExpr instance.
|
|
using | ResultType = MapTrait_t< RT1, RT2, OP > |
| Result type for expression template evaluations.
|
|
using | OppositeType = OppositeType_t< ResultType > |
| Result type with opposite storage order for expression template evaluations.
|
|
using | TransposeType = TransposeType_t< ResultType > |
| Transpose type for expression template evaluations.
|
|
using | ElementType = ElementType_t< ResultType > |
| Resulting element type.
|
|
using | ReturnType = decltype(std::declval< OP >()(std::declval< RN1 >(), std::declval< RN2 >())) |
| Return type for expression template evaluations.
|
|
using | CompositeType = If_t< useAssign, const ResultType, const DMatTDMatMapExpr & > |
| Data type for composite expression templates.
|
|
using | LeftOperand = If_t< IsExpression_v< MT1 >, const MT1, const MT1 & > |
| Composite type of the left-hand side dense matrix expression.
|
|
using | RightOperand = If_t< IsExpression_v< MT2 >, const MT2, const MT2 & > |
| Composite type of the right-hand side dense matrix expression.
|
|
using | Operation = OP |
| Data type of the custom unary operation.
|
|
using | LT = If_t< RequiresEvaluation_v< MT1 >, const RT1, CT1 > |
| Type for the assignment of the left-hand side dense matrix operand.
|
|
using | RT = If_t< RequiresEvaluation_v< MT2 >, const RT2, CT2 > |
| Type for the assignment of the right-hand side dense matrix operand.
|
|
using | MatrixType = DMatTDMatMapExpr< MT1, MT2, OP > |
| Type of the matrix.
|
|
|
| DMatTDMatMapExpr (const MT1 &lhs, const MT2 &rhs, OP op) noexcept |
| Constructor for the DMatTDMatMapExpr class. More...
|
|
ReturnType | operator() (size_t i, size_t j) const |
| 2D-access to the matrix elements. More...
|
|
ReturnType | at (size_t i, size_t j) const |
| Checked access to the matrix elements. More...
|
|
size_t | rows () const noexcept |
| Returns the current number of rows of the matrix. More...
|
|
size_t | columns () const noexcept |
| Returns the current number of columns of the matrix. More...
|
|
LeftOperand | leftOperand () const noexcept |
| Returns the left-hand side dense matrix operand. More...
|
|
RightOperand | rightOperand () const noexcept |
| Returns the right-hand side dense matrix operand. More...
|
|
Operation | operation () const |
| Returns a copy of the custom operation. More...
|
|
template<typename T > |
bool | canAlias (const T *alias) const noexcept |
| Returns whether the expression can alias with the given address alias. More...
|
|
template<typename T > |
bool | isAliased (const T *alias) const noexcept |
| Returns whether the expression is aliased with the given address alias. More...
|
|
bool | isAligned () const noexcept |
| Returns whether the operands of the expression are properly aligned in memory. More...
|
|
bool | canSMPAssign () const noexcept |
| Returns whether the expression can be used in SMP assignments. More...
|
|
|
BLAZE_ALWAYS_INLINE constexpr DMatTDMatMapExpr< MT1, MT2, OP > & | operator~ () noexcept |
| CRTP-based conversion operation for non-constant matrices. More...
|
|
BLAZE_ALWAYS_INLINE constexpr const DMatTDMatMapExpr< MT1, MT2, OP > & | operator~ () const noexcept |
| CRTP-based conversion operation for constant matrices. More...
|
|
constexpr DMatTDMatMapExpr< MT1, MT2, OP > & | operator* () noexcept |
| CRTP-based conversion operation for non-constant matrices. More...
|
|
constexpr const DMatTDMatMapExpr< MT1, MT2, OP > & | operator* () const noexcept |
| CRTP-based conversion operation for constant matrices. More...
|
|
|
static constexpr bool | simdEnabled = false |
| Compilation switch for the expression template evaluation strategy.
|
|
static constexpr bool | smpAssignable = ( MT1::smpAssignable && MT2::smpAssignable ) |
| Compilation switch for the expression template assignment strategy.
|
|
static constexpr bool | storageOrder |
| Storage order of the matrix.
|
|
|
using | RT1 = ResultType_t< MT1 > |
| Result type of the left-hand side dense matrix expression.
|
|
using | RT2 = ResultType_t< MT2 > |
| Result type of the right-hand side dense matrix expression.
|
|
using | ET1 = ElementType_t< MT1 > |
| Element type of the left-hand side dense matrix expression.
|
|
using | ET2 = ElementType_t< MT2 > |
| Element type of the right-hand side dense matrix expression.
|
|
using | RN1 = ReturnType_t< MT1 > |
| Return type of the left-hand side dense matrix expression.
|
|
using | RN2 = ReturnType_t< MT2 > |
| Return type of the right-hand side dense matrix expression.
|
|
using | CT1 = CompositeType_t< MT1 > |
| Composite type of the left-hand side dense matrix expression.
|
|
using | CT2 = CompositeType_t< MT2 > |
| Composite type of the right-hand side dense matrix expression.
|
|
|
LeftOperand | lhs_ |
| Left-hand side dense matrix of the map expression.
|
|
RightOperand | rhs_ |
| Right-hand side dense matrix of the map expression.
|
|
Operation | op_ |
| The custom unary operation.
|
|
|
static constexpr bool | useAssign = ( RequiresEvaluation_v<MT1> || RequiresEvaluation_v<MT2> ) |
| Compilation switch for the serial evaluation strategy of the map expression. More...
|
|
template<typename MT1, typename MT2, typename OP>
class blaze::DMatTDMatMapExpr< MT1, MT2, OP >
Expression object for the dense matrix/tranpose dense matrix map() function.
The DMatTDMatMapExpr class represents the compile time expression for the pairwise evaluation of a binary custom operation on the elements of a row-major dense matrix and a column-major matrix via the map() function.
◆ DMatTDMatMapExpr()
template<typename MT1 , typename MT2 , typename OP >
Constructor for the DMatTDMatMapExpr class.
- Parameters
-
lhs | The left-hand side dense matrix operand of the map expression. |
rhs | The right-hand side dense matrix operand of the map expression. |
op | The custom unary operation. |
◆ at()
template<typename MT1 , typename MT2 , typename OP >
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 , typename OP >
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 , typename OP >
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 , typename OP >
Returns the current number of columns of the matrix.
- Returns
- The number of columns of the matrix.
◆ isAliased()
template<typename MT1 , typename MT2 , typename OP >
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 , typename OP >
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 , typename OP >
Returns the left-hand side dense matrix operand.
- Returns
- The left-hand side dense matrix operand.
◆ operation()
template<typename MT1 , typename MT2 , typename OP >
Returns a copy of the custom operation.
- Returns
- A copy of the custom operation.
◆ operator()()
template<typename MT1 , typename MT2 , typename OP >
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]
|
constexprnoexceptinherited |
CRTP-based conversion operation for constant matrices.
- Returns
- Constant reference of the actual type of the matrix.
This operator performs the CRTP-based type-safe downcast to the actual type MT of the matrix. It will return a constant reference to the actual type MT.
◆ operator*() [2/2]
|
constexprnoexceptinherited |
CRTP-based conversion operation for non-constant matrices.
- Returns
- Mutable reference of the actual type of the matrix.
This operator performs the CRTP-based type-safe downcast to the actual type MT of the matrix. It will return a mutable reference to the actual type MT.
◆ operator~() [1/2]
|
constexprnoexceptinherited |
CRTP-based conversion operation for constant matrices.
- Parameters
-
matrix | The matrix to be downcast. |
- Returns
- Constant reference of the actual type of the matrix.
This operator performs the CRTP-based type-safe downcast to the actual type MT of the matrix. It will return a constant reference to the actual type MT.
◆ operator~() [2/2]
|
constexprnoexceptinherited |
CRTP-based conversion operation for non-constant matrices.
- Parameters
-
matrix | The matrix to be downcast. |
- Returns
- Mutable reference of the actual type of the matrix.
This operator performs the CRTP-based type-safe downcast to the actual type MT of the matrix. It will return a mutable reference to the actual type MT.
◆ rightOperand()
template<typename MT1 , typename MT2 , typename OP >
Returns the right-hand side dense matrix operand.
- Returns
- The right-hand side dense matrix operand.
◆ rows()
template<typename MT1 , typename MT2 , typename OP >
Returns the current number of rows of the matrix.
- Returns
- The number of rows of the matrix.
◆ useAssign
template<typename MT1 , typename MT2 , typename OP >
constexpr bool blaze::DMatTDMatMapExpr< MT1, MT2, OP >::useAssign = ( RequiresEvaluation_v<MT1> || RequiresEvaluation_v<MT2> ) |
|
staticconstexprprivate |
Compilation switch for the serial evaluation strategy of the map expression.
The useAssign compile time constant expression represents a compilation switch for the serial evaluation strategy of the map expression. In case either of the two dense matrix operands requires an intermediate evaluation, useAssign will be set to 1 and the addition expression will be evaluated via the assign function family. Otherwise useAssign will be set to 0 and the expression will be evaluated via the subscript operator.
The documentation for this class was generated from the following file: