![]() |
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... | |
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... | |
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... | |
IntrinsicType | load (size_t i, size_t j) const |
Aligned load of an intrinsic element of the matrix. More... | |
IntrinsicType | loadu (size_t i, size_t j) const |
Unaligned load of an intrinsic element of the matrix. More... | |
void | store (size_t i, size_t j, const IntrinsicType &value) |
Aligned store of an intrinsic element of the matrix. More... | |
void | storeu (size_t i, size_t j, const IntrinsicType &value) |
Unaligned store of an intrinsic element of the matrix. More... | |
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... | |
MatrixType & | operator~ () |
Conversion operator for non-constant matrices. More... | |
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.
anonymous enum |
Compilation flag for intrinsic optimization.
The vectorizable compilation flag indicates whether expressions the matrix is involved in can be optimized via intrinsics. In case the dense matrix operand is vectorizable, the vectorizable compilation flag is set to true, otherwise it is set to false.
anonymous enum |
Compilation flag for SMP assignments.
The smpAssignable compilation flag indicates whether the matrix can be used in SMP (shared memory parallel) assignments (both on the left-hand and right-hand side of the assignment).
|
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 whether the matrix can alias with the given address alias.
alias | The alias to be checked. |
|
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 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.