![]() |
Expression object for the transposition of a dense matrix.The DMatTransposer class is a wrapper object for the temporary transposition of a dense matrix. More...
#include <DMatTransposer.h>
Inherits blaze::DenseMatrix< DMatTransposer< MT, SO >, SO >.
Public Types | |
enum | { vectorizable = MT::vectorizable } |
Compilation flag for intrinsic optimization. More... | |
enum | { smpAssignable = MT::smpAssignable } |
Compilation flag for SMP assignments. More... | |
typedef DMatTransposer< MT, SO > | This |
Type of this DMatTransposer instance. | |
typedef MT::TransposeType | ResultType |
Result type for expression template evaluations. | |
typedef MT::OppositeType | OppositeType |
Result type with opposite storage order for expression template evaluations. | |
typedef MT::ResultType | TransposeType |
Transpose type for expression template evaluations. | |
typedef MT::ElementType | ElementType |
Type of the matrix elements. | |
typedef IT::Type | IntrinsicType |
Intrinsic type of the matrix elements. | |
typedef MT::ReturnType | ReturnType |
Return type for expression template evaluations. | |
typedef const This & | CompositeType |
Data type for composite expression templates. | |
typedef MT::Reference | Reference |
Reference to a non-constant matrix value. | |
typedef MT::ConstReference | ConstReference |
Reference to a constant matrix value. | |
typedef MT::Iterator | Iterator |
Iterator over non-constant elements. | |
typedef MT::ConstIterator | ConstIterator |
Iterator over constant elements. | |
typedef MT | MatrixType |
Type of the matrix. | |
Public Member Functions | |
DMatTransposer (MT &dm) | |
Constructor for the DMatTransposer class. More... | |
Reference | operator() (size_t i, size_t j) |
2D-access to the matrix elements. More... | |
ConstReference | operator() (size_t i, size_t j) const |
2D-access to the matrix elements. More... | |
ElementType * | data () |
Low-level data access to the matrix elements. More... | |
Iterator | begin (size_t i) |
Returns an iterator to the first non-zero element of row/column i. More... | |
ConstIterator | begin (size_t i) const |
Returns an iterator to the first non-zero element of row/column i. More... | |
ConstIterator | cbegin (size_t i) const |
Returns an iterator to the first non-zero element of row/column i. More... | |
Iterator | end (size_t i) |
Returns an iterator just past the last 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... | |
ConstIterator | cend (size_t i) const |
Returns an iterator just past the last non-zero element of row/column i. More... | |
template<typename Other > | |
EnableIf< IsNumeric< Other >, DMatTransposer >::Type & | operator*= (Other rhs) |
Multiplication assignment operator for the multiplication between a matrix and a scalar value ( ![]() | |
template<typename Other > | |
EnableIf< IsNumeric< Other >, DMatTransposer >::Type & | operator/= (Other rhs) |
Division assignment operator for the division of a matrix by a scalar value ( ![]() | |
size_t | rows () const |
Returns the current number of rows of the matrix. More... | |
size_t | columns () const |
Returns the current number of columns of the matrix. More... | |
size_t | spacing () const |
Returns the spacing between the beginning of two rows. More... | |
void | reset () |
Resets the matrix elements. More... | |
template<typename Other > | |
bool | canAlias (const Other *alias) const |
Returns whether the matrix can alias with the given address alias. More... | |
template<typename Other > | |
bool | isAliased (const Other *alias) const |
Returns whether the matrix is aliased with the given address alias. More... | |
bool | isAligned () const |
Returns whether the matrix is properly aligned in memory. More... | |
bool | canSMPAssign () const |
Returns whether the matrix can be used in SMP assignments. More... | |
BLAZE_ALWAYS_INLINE IntrinsicType | load (size_t i, size_t j) const |
Aligned load of an intrinsic element of the matrix. More... | |
BLAZE_ALWAYS_INLINE IntrinsicType | loadu (size_t i, size_t j) const |
Unaligned load of an intrinsic element of the matrix. More... | |
BLAZE_ALWAYS_INLINE void | store (size_t i, size_t j, const IntrinsicType &value) |
Aligned store of an intrinsic element of the matrix. More... | |
BLAZE_ALWAYS_INLINE void | storeu (size_t i, size_t j, const IntrinsicType &value) |
Unaligned store of an intrinsic element of the matrix. More... | |
BLAZE_ALWAYS_INLINE void | stream (size_t i, size_t j, const IntrinsicType &value) |
Aligned, non-temporal store of an intrinsic element of the matrix. More... | |
template<typename MT2 > | |
void | assign (const DenseMatrix< MT2, SO > &rhs) |
Implementation of the transpose assignment of a row-major dense matrix. More... | |
template<typename MT2 > | |
void | assign (const DenseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose assignment of a column-major dense matrix. More... | |
template<typename MT2 > | |
void | assign (const SparseMatrix< MT2, SO > &rhs) |
Implementation of the transpose assignment of a row-major sparse matrix. More... | |
template<typename MT2 > | |
void | assign (const SparseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose assignment of a column-major sparse matrix. More... | |
template<typename MT2 > | |
void | addAssign (const DenseMatrix< MT2, SO > &rhs) |
Implementation of the transpose addition assignment of a row-major dense matrix. More... | |
template<typename MT2 > | |
void | addAssign (const DenseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose addition assignment of a column-major dense matrix. More... | |
template<typename MT2 > | |
void | addAssign (const SparseMatrix< MT2, SO > &rhs) |
Implementation of the transpose addition assignment of a row-major sparse matrix. More... | |
template<typename MT2 > | |
void | addAssign (const SparseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose addition assignment of a column-major sparse matrix. More... | |
template<typename MT2 > | |
void | subAssign (const DenseMatrix< MT2, SO > &rhs) |
Implementation of the transpose subtraction assignment of a row-major dense matrix. More... | |
template<typename MT2 > | |
void | subAssign (const DenseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose subtraction assignment of a column-major dense matrix. More... | |
template<typename MT2 > | |
void | subAssign (const SparseMatrix< MT2, SO > &rhs) |
Implementation of the transpose subtraction assignment of a row-major sparse matrix. More... | |
template<typename MT2 > | |
void | subAssign (const SparseMatrix< MT2,!SO > &rhs) |
Implementation of the transpose subtraction assignment of a column-major sparse matrix. More... | |
BLAZE_ALWAYS_INLINE MatrixType & | operator~ () |
Conversion operator for non-constant matrices. More... | |
BLAZE_ALWAYS_INLINE const MatrixType & | operator~ () const |
Conversion operator for constant matrices. More... | |
Private Types | |
typedef IntrinsicTrait< typename MT::ElementType > | IT |
Intrinsic trait for the vector element type. | |
Private Attributes | |
MT & | dm_ |
The dense matrix operand. | |
Expression object for the transposition of a dense matrix.
The DMatTransposer class is a wrapper object for the temporary transposition of a dense matrix.
|
inlineexplicit |
Constructor for the DMatTransposer class.
dm | The dense matrix operand. |
|
inline |
Implementation of the transpose addition assignment of a row-major dense matrix.
rhs | The right-hand side dense matrix to be added. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose addition assignment of a column-major dense matrix.
rhs | The right-hand side dense matrix to be added. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose addition assignment of a row-major sparse matrix.
rhs | The right-hand side sparse matrix to be added. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose addition assignment of a column-major sparse matrix.
rhs | The right-hand side sparse matrix to be added. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose assignment of a row-major dense matrix.
rhs | The right-hand side dense matrix to be assigned. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose assignment of a column-major dense matrix.
rhs | The right-hand side dense matrix to be assigned. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose assignment of a row-major sparse matrix.
rhs | The right-hand side sparse matrix to be assigned. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose assignment of a column-major sparse matrix.
rhs | The right-hand side sparse matrix to be assigned. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Returns an iterator to the first non-zero element of row/column i.
i | The row/column index. |
This function returns a row/column iterator to the first non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator to the first non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator to the first non-zero element of column i.
|
inline |
Returns an iterator to the first non-zero element of row/column i.
i | The row/column index. |
This function returns a row/column iterator to the first non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator to the first non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator to the first non-zero element of column i.
|
inline |
Returns whether the matrix can alias with the given address alias.
alias | The alias to be checked. |
|
inline |
Returns whether the matrix can be used in SMP assignments.
|
inline |
Returns an iterator to the first non-zero element of row/column i.
i | The row/column index. |
This function returns a row/column iterator to the first non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator to the first non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator to the first non-zero element of column i.
|
inline |
Returns an iterator just past the last non-zero element of row/column i.
i | The row/column index. |
This function returns an row/column iterator just past the last non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator just past the last non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator just past the last non-zero element of column i.
|
inline |
Returns the current number of columns of the matrix.
|
inline |
Low-level data access to the matrix elements.
|
inline |
Returns an iterator just past the last non-zero element of row/column i.
i | The row/column index. |
This function returns an row/column iterator just past the last non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator just past the last non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator just past the last non-zero element of column i.
|
inline |
Returns an iterator just past the last non-zero element of row/column i.
i | The row/column index. |
This function returns an row/column iterator just past the last non-zero element of row/column i. In case the storage order is set to rowMajor the function returns an iterator just past the last non-zero element of row i, in case the storage flag is set to columnMajor the function returns an iterator just past the last non-zero element of column i.
|
inline |
Returns whether the matrix is aliased with the given address alias.
alias | The alias to be checked. |
|
inline |
Returns whether the matrix is properly aligned in memory.
|
inline |
Aligned load of an intrinsic element of the matrix.
i | Access index for the row. The index has to be in the range [0..M-1]. |
j | Access index for the column. The index has to be in the range [0..N-1]. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors.
|
inline |
Unaligned load of an intrinsic element of the matrix.
i | Access index for the row. The index has to be in the range [0..M-1]. |
j | Access index for the column. The index has to be in the range [0..N-1]. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors.
|
inline |
2D-access to the matrix elements.
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 ![]() |
|
inline |
2D-access to the matrix elements.
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 ![]() |
|
inline |
Multiplication assignment operator for the multiplication between a matrix and a scalar value ( ).
rhs | The right-hand side scalar value for the multiplication. |
|
inline |
Division assignment operator for the division of a matrix by a scalar value ( ).
rhs | The right-hand side scalar value for the division. |
Note: A division by zero is only checked by an user assert.
|
inlineinherited |
Conversion operator for non-constant matrices.
|
inlineinherited |
Conversion operator for constant matrices.
|
inline |
Resets the matrix elements.
|
inline |
Returns the current number of rows of the matrix.
|
inline |
Returns the spacing between the beginning of two rows.
|
inline |
Aligned store of an intrinsic element of the matrix.
i | Access index for the row. The index has to be in the range [0..M-1]. |
j | Access index for the column. The index has to be in the range [0..N-1]. |
value | The intrinsic element to be stored. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors.
|
inline |
Unaligned store of an intrinsic element of the matrix.
i | Access index for the row. The index has to be in the range [0..M-1]. |
j | Access index for the column. The index has to be in the range [0..N-1]. |
value | The intrinsic element to be stored. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors.
|
inline |
Aligned, non-temporal store of an intrinsic element of the matrix.
i | Access index for the row. The index has to be in the range [0..M-1]. |
j | Access index for the column. The index has to be in the range [0..N-1]. |
value | The intrinsic element to be stored. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors.
|
inline |
Implementation of the transpose subtraction assignment of a row-major dense matrix.
rhs | The right-hand side dense matrix to be subtracted. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose subtraction assignment of a column-major dense matrix.
rhs | The right-hand side dense matrix to be subtracted. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose subtraction assignment of a row-major sparse matrix.
rhs | The right-hand side sparse matrix to be subtracted. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.
|
inline |
Implementation of the transpose subtraction assignment of a column-major sparse matrix.
rhs | The right-hand side sparse matrix to be subtracted. |
This function must NOT be called explicitly! It is used internally for the performance optimized evaluation of expression templates. Calling this function explicitly might result in erroneous results and/or in compilation errors. Instead of using this function use the assignment operator.