Expression object for sparse vector expansion.
More...
#include <SVecExpandExpr.h>
Inherits blaze::VecExpandExpr< SparseMatrix< SVecExpandExpr< VT, TF, CEAs... >, !TF >, CEAs... >, If_t< IsComputation_v< VT >, Computation, Transformation >, and blaze::ExpandExprData< CEAs... >.
|
using | This = SVecExpandExpr< VT, TF, CEAs... > |
| Type of this SVecExpandExpr instance.
|
|
using | BaseType = VecExpandExpr< SparseMatrix< This,!TF >, CEAs... > |
| Base type of this SVecExpandExpr instance.
|
|
using | ResultType = ExpandTrait_t< VT, CEAs... > |
| 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< VT > |
| Resulting element type.
|
|
using | ReturnType = ReturnType_t< VT > |
| Return type for expression template evaluations.
|
|
using | CompositeType = If_t< useAssign, const ResultType, const SVecExpandExpr & > |
| Data type for composite expression templates.
|
|
using | ConstIterator = GetConstIterator_t< VT > |
| Iterator over the elements of the sparse matrix.
|
|
using | Operand = If_t< IsExpression_v< VT >, const VT, const VT & > |
| Composite data type of the sparse matrix expression.
|
|
using | MatrixType = SVecExpandExpr< VT, TF, CEAs... > |
| Type of the matrix.
|
|
|
template<typename... REAs> |
| SVecExpandExpr (const VT &sv, REAs... args) noexcept |
| Constructor for the SVecExpandExpr 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...
|
|
ConstIterator | begin (size_t i) const |
| Returns an iterator to the first non-zero element of row/column i. More...
|
|
ConstIterator | end (size_t i) const |
| Returns an iterator just past the last non-zero element of row/column i. 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...
|
|
size_t | nonZeros () const |
| Returns the number of non-zero elements in the sparse matrix. More...
|
|
size_t | nonZeros (size_t i) const |
| Returns the number of non-zero elements in the specified row/column. More...
|
|
ConstIterator | find (size_t i, size_t j) const |
| Searches for a specific matrix element. More...
|
|
ConstIterator | lowerBound (size_t i, size_t j) const |
| Returns an iterator to the first index not less then the given index. More...
|
|
ConstIterator | upperBound (size_t i, size_t j) const |
| Returns an iterator to the first index greater then the given index. More...
|
|
Operand | operand () const noexcept |
| Returns the sparse vector operand. 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 | canSMPAssign () const noexcept |
| Returns whether the expression can be used in SMP assignments. More...
|
|
|
BLAZE_ALWAYS_INLINE constexpr SVecExpandExpr< VT, TF, CEAs... > & | operator~ () noexcept |
| CRTP-based conversion operation for non-constant matrices. More...
|
|
BLAZE_ALWAYS_INLINE constexpr const SVecExpandExpr< VT, TF, CEAs... > & | operator~ () const noexcept |
| CRTP-based conversion operation for constant matrices. More...
|
|
constexpr SVecExpandExpr< VT, TF, CEAs... > & | operator* () noexcept |
| CRTP-based conversion operation for non-constant matrices. More...
|
|
constexpr const SVecExpandExpr< VT, TF, CEAs... > & | operator* () const noexcept |
| CRTP-based conversion operation for constant matrices. More...
|
|
|
static constexpr bool | smpAssignable = VT::smpAssignable |
| Compilation switch for the expression template assignment strategy.
|
|
static constexpr bool | storageOrder |
| Storage order of the matrix.
|
|
|
| BLAZE_CREATE_GET_TYPE_MEMBER_TYPE_TRAIT (GetConstIterator, ConstIterator, INVALID_TYPE) |
| Definition of the GetConstIterator type trait.
|
|
|
Operand | sv_ |
| Sparse vector of the expansion expression.
|
|
|
static constexpr bool | useAssign = IsComputation_v<VT> || RequiresEvaluation_v<VT> |
| Compilation switch for the serial evaluation strategy of the expansion expression. More...
|
|
template<typename VT, bool TF, size_t... CEAs>
class blaze::SVecExpandExpr< VT, TF, CEAs >
Expression object for sparse vector expansion.
The SVecExpandExpr class represents the compile time expression for expansions of sparse vectors.
◆ SVecExpandExpr()
template<typename VT , bool TF, size_t... CEAs>
template<typename... REAs>
Constructor for the SVecExpandExpr class.
- Parameters
-
sv | The sparse vector operand of the expansion expression. |
args | The runtime expansion expression arguments. |
◆ at()
template<typename VT , bool TF, size_t... CEAs>
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. |
◆ begin()
template<typename VT , bool TF, size_t... CEAs>
Returns an iterator to the first non-zero element of row/column i.
- Parameters
-
- Returns
- Iterator to the first non-zero element of row/column i.
◆ canAlias()
template<typename VT , bool TF, size_t... CEAs>
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 VT , bool TF, size_t... CEAs>
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 VT , bool TF, size_t... CEAs>
Returns the current number of columns of the matrix.
- Returns
- The number of columns of the matrix.
◆ end()
template<typename VT , bool TF, size_t... CEAs>
Returns an iterator just past the last non-zero element of row/column i.
- Parameters
-
- Returns
- Iterator just past the last non-zero element of row/column i.
◆ find()
template<typename VT , bool TF, size_t... CEAs>
Searches for a specific matrix element.
- Parameters
-
i | The row index of the search element. |
j | The column index of the search element. |
- Returns
- Iterator to the element in case the index is found, end() iterator otherwise.
◆ isAliased()
template<typename VT , bool TF, size_t... CEAs>
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.
◆ lowerBound()
template<typename VT , bool TF, size_t... CEAs>
Returns an iterator to the first index not less then the given index.
- Parameters
-
i | The row index of the search element. |
j | The column index of the search element. |
- Returns
- Iterator to the first index not less then the given index, end() iterator otherwise.
◆ nonZeros() [1/2]
template<typename VT , bool TF, size_t... CEAs>
Returns the number of non-zero elements in the sparse matrix.
- Returns
- The number of non-zero elements in the sparse matrix.
◆ nonZeros() [2/2]
template<typename VT , bool TF, size_t... CEAs>
Returns the number of non-zero elements in the specified row/column.
- Parameters
-
i | The index of the row/column. |
- Returns
- The number of non-zero elements of row/column i.
◆ operand()
template<typename VT , bool TF, size_t... CEAs>
Returns the sparse vector operand.
- Returns
- The sparse vector operand.
◆ operator()()
template<typename VT , bool TF, size_t... CEAs>
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.
◆ rows()
template<typename VT , bool TF, size_t... CEAs>
Returns the current number of rows of the matrix.
- Returns
- The number of rows of the matrix.
◆ upperBound()
template<typename VT , bool TF, size_t... CEAs>
Returns an iterator to the first index greater then the given index.
- Parameters
-
i | The row index of the search element. |
j | The column index of the search element. |
- Returns
- Iterator to the first index greater then the given index, end() iterator otherwise.
◆ useAssign
template<typename VT , bool TF, size_t... CEAs>
constexpr bool blaze::SVecExpandExpr< VT, TF, CEAs >::useAssign = IsComputation_v<VT> || RequiresEvaluation_v<VT> |
|
staticconstexprprivate |
Compilation switch for the serial evaluation strategy of the expansion expression.
The useAssign compile time constant expression represents a compilation switch for the serial evaluation strategy of the expansion expression. In case the given sparse vector expression of type VT is a computation or requires an intermediate evaluation, useAssign will be set to 1 and the expansion 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 files: