![]() |
Expression object for the transposition of a dense vector.The DVecTransposer class is a wrapper object for the temporary transposition of a dense vector. More...
#include <DVecTransposer.h>
Inherits blaze::DenseVector< DVecTransposer< VT, TF >, TF >.
Public Types | |
enum | : bool { simdEnabled = VT::simdEnabled } |
Compilation flag for SIMD optimization. More... | |
enum | : bool { smpAssignable = VT::smpAssignable } |
Compilation flag for SMP assignments. More... | |
using | This = DVecTransposer< VT, TF > |
Type of this DVecTransposer instance. | |
using | ResultType = TransposeType_< VT > |
Result type for expression template evaluations. | |
using | TransposeType = ResultType_< VT > |
Transpose type for expression template evaluations. | |
using | ElementType = ElementType_< VT > |
Type of the vector elements. | |
using | SIMDType = SIMDTrait_< ElementType > |
SIMD type of the vector elements. | |
using | ReturnType = ReturnType_< VT > |
Return type for expression template evaluations. | |
using | CompositeType = const This & |
Data type for composite expression templates. | |
using | Reference = Reference_< VT > |
Reference to a non-constant vector value. | |
using | ConstReference = ConstReference_< VT > |
Reference to a constant vector value. | |
using | Pointer = Pointer_< VT > |
Pointer to a non-constant vector value. | |
using | ConstPointer = ConstPointer_< VT > |
Pointer to a constant vector value. | |
using | Iterator = Iterator_< VT > |
Iterator over non-constant elements. | |
using | ConstIterator = ConstIterator_< VT > |
Iterator over constant elements. | |
using | VectorType = VT |
Type of the vector. | |
Public Member Functions | |
DVecTransposer (VT &dv) noexcept | |
Constructor for the DVecTransposer class. More... | |
Reference | operator[] (size_t index) |
Subscript operator for the direct access to the vector elements. More... | |
ConstReference | operator[] (size_t index) const |
Subscript operator for the direct access to the vector elements. More... | |
Reference | at (size_t index) |
Checked access to the vector elements. More... | |
ConstReference | at (size_t index) const |
Checked access to the vector elements. More... | |
Pointer | data () noexcept |
Low-level data access to the vector elements. More... | |
ConstPointer | data () const noexcept |
Low-level data access to the vector elements. More... | |
Iterator | begin () |
Returns an iterator to the first element of the dense vector. More... | |
ConstIterator | begin () const |
Returns an iterator to the first element of the dense vector. More... | |
ConstIterator | cbegin () const |
Returns an iterator to the first element of the dense vector. More... | |
Iterator | end () |
Returns an iterator just past the last element of the dense vector. More... | |
ConstIterator | end () const |
Returns an iterator just past the last element of the dense vector. More... | |
ConstIterator | cend () const |
Returns an iterator just past the last element of the dense vector. More... | |
template<typename Other > | |
EnableIf_< IsNumeric< Other >, DVecTransposer > & | operator*= (Other rhs) |
Multiplication assignment operator for the multiplication between a vector and a scalar value ( ![]() | |
template<typename Other > | |
EnableIf_< IsNumeric< Other >, DVecTransposer > & | operator/= (Other rhs) |
Division assignment operator for the division of a vector by a scalar value ( ![]() | |
size_t | size () const noexcept |
Returns the current size/dimension of the vector. More... | |
void | reset () |
Resets the vector elements. More... | |
template<typename Other > | |
bool | canAlias (const Other *alias) const noexcept |
Returns whether the vector can alias with the given address alias. More... | |
template<typename Other > | |
bool | isAliased (const Other *alias) const noexcept |
Returns whether the vector is aliased with the given address alias. More... | |
bool | isAligned () const noexcept |
Returns whether the vector is properly aligned in memory. More... | |
bool | canSMPAssign () const noexcept |
Returns whether the vector can be used in SMP assignments. More... | |
BLAZE_ALWAYS_INLINE SIMDType | load (size_t index) const noexcept |
Load of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE SIMDType | loada (size_t index) const noexcept |
Aligned load of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE SIMDType | loadu (size_t index) const noexcept |
Unaligned load of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE void | store (size_t index, const SIMDType &value) noexcept |
Store of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE void | storea (size_t index, const SIMDType &value) noexcept |
Aligned store of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE void | storeu (size_t index, const SIMDType &value) noexcept |
Unaligned store of a SIMD element of the vector. More... | |
BLAZE_ALWAYS_INLINE void | stream (size_t index, const SIMDType &value) noexcept |
Aligned, non-temporal store of a SIMD element of the vector. More... | |
template<typename VT2 > | |
void | assign (const DenseVector< VT2, TF > &rhs) |
Implementation of the transpose assignment of a dense vector. More... | |
template<typename VT2 > | |
void | assign (const SparseVector< VT2, TF > &rhs) |
Implementation of the transpose assignment of a sparse vector. More... | |
template<typename VT2 > | |
void | addAssign (const DenseVector< VT2, TF > &rhs) |
Implementation of the transpose addition assignment of a dense vector. More... | |
template<typename VT2 > | |
void | addAssign (const SparseVector< VT2, TF > &rhs) |
Implementation of the transpose addition assignment of a sparse vector. More... | |
template<typename VT2 > | |
void | subAssign (const DenseVector< VT2, TF > &rhs) |
Implementation of the transpose subtraction assignment of a dense vector. More... | |
template<typename VT2 > | |
void | subAssign (const SparseVector< VT2, TF > &rhs) |
Implementation of the transpose subtraction assignment of a sparse vector. More... | |
template<typename VT2 > | |
void | multAssign (const DenseVector< VT2, TF > &rhs) |
Implementation of the transpose multiplication assignment of a dense vector. More... | |
template<typename VT2 > | |
void | multAssign (const SparseVector< VT2, TF > &rhs) |
Implementation of the transpose multiplication assignment of a sparse vector. More... | |
template<typename VT2 > | |
void | divAssign (const DenseVector< VT2, TF > &rhs) |
Implementation of the transpose division assignment of a dense vector. More... | |
BLAZE_ALWAYS_INLINE VectorType & | operator~ () noexcept |
Conversion operator for non-constant vectors. More... | |
BLAZE_ALWAYS_INLINE const VectorType & | operator~ () const noexcept |
Conversion operator for constant vectors. More... | |
Private Attributes | |
VT & | dv_ |
The dense vector operand. | |
Expression object for the transposition of a dense vector.
The DVecTransposer class is a wrapper object for the temporary transposition of a dense vector.
anonymous enum : bool |
Compilation flag for SIMD optimization.
The simdEnabled compilation flag indicates whether expressions the vector is involved in can be optimized via SIMD operations. In case the dense vector operand is vectorizable, the simdEnabled compilation flag is set to true, otherwise it is set to false.
anonymous enum : bool |
Compilation flag for SMP assignments.
The smpAssignable compilation flag indicates whether the vector can be used in SMP (shared memory parallel) assignments (both on the left-hand and right-hand side of the assignment).
|
inlineexplicitnoexcept |
Constructor for the DVecTransposer class.
dv | The dense vector operand. |
|
inline |
Implementation of the transpose addition assignment of a dense vector.
rhs | The right-hand side dense vector 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 sparse vector.
rhs | The right-hand side sparse vector 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 dense vector.
rhs | The right-hand side dense vector 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 sparse vector.
rhs | The right-hand side sparse vector 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 |
Checked access to the vector elements.
index | Access index. The index has to be in the range ![]() |
std::out_of_range | Invalid vector access index. |
|
inline |
Checked access to the vector elements.
index | Access index. The index has to be in the range ![]() |
std::out_of_range | Invalid vector access index. |
|
inline |
Returns an iterator to the first element of the dense vector.
|
inline |
Returns an iterator to the first element of the dense vector.
|
inlinenoexcept |
Returns whether the vector can alias with the given address alias.
alias | The alias to be checked. |
|
inlinenoexcept |
Returns whether the vector can be used in SMP assignments.
|
inline |
Returns an iterator to the first element of the dense vector.
|
inline |
Returns an iterator just past the last element of the dense vector.
|
inlinenoexcept |
Low-level data access to the vector elements.
|
inlinenoexcept |
Low-level data access to the vector elements.
|
inline |
Implementation of the transpose division assignment of a dense vector.
rhs | The right-hand side dense vector divisor. |
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 just past the last element of the dense vector.
|
inline |
Returns an iterator just past the last element of the dense vector.
|
inlinenoexcept |
Returns whether the vector is aliased with the given address alias.
alias | The alias to be checked. |
|
inlinenoexcept |
Returns whether the vector is properly aligned in memory.
|
inlinenoexcept |
Load of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
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.
|
inlinenoexcept |
Aligned load of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
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.
|
inlinenoexcept |
Unaligned load of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
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 multiplication assignment of a dense vector.
rhs | The right-hand side dense vector to be multiplied. |
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 multiplication assignment of a sparse vector.
rhs | The right-hand side sparse vector to be multiplied. |
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 |
Multiplication assignment operator for the multiplication between a vector and a scalar value ( ).
rhs | The right-hand side scalar value for the multiplication. |
|
inline |
Division assignment operator for the division of a vector by a scalar value ( ).
rhs | The right-hand side scalar value for the division. |
|
inline |
Subscript operator for the direct access to the vector elements.
index | Access index. The index has to be in the range ![]() |
|
inline |
Subscript operator for the direct access to the vector elements.
index | Access index. The index has to be in the range ![]() |
|
inlinenoexceptinherited |
Conversion operator for non-constant vectors.
|
inlinenoexceptinherited |
Conversion operator for constant vectors.
|
inline |
Resets the vector elements.
|
inlinenoexcept |
Returns the current size/dimension of the vector.
|
inlinenoexcept |
Store of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
value | The SIMD 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.
|
inlinenoexcept |
Aligned store of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
value | The SIMD 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.
|
inlinenoexcept |
Unaligned store of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
value | The SIMD 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.
|
inlinenoexcept |
Aligned, non-temporal store of a SIMD element of the vector.
index | Access index. The index must be smaller than the number of vector elements. |
value | The SIMD 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 dense vector.
rhs | The right-hand side dense vector 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 sparse vector.
rhs | The right-hand side sparse vector 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.