Public Types | Public Member Functions | Private Types | Private Attributes | List of all members
blaze::DVecTransposer< VT, TF > Class Template Reference

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  { vectorizable = VT::vectorizable }
 Compilation flag for intrinsic optimization. More...
 
enum  { smpAssignable = VT::smpAssignable }
 Compilation flag for SMP assignments. More...
 
typedef DVecTransposer< VT, TF > This
 Type of this DVecTransposer instance.
 
typedef VT::TransposeType ResultType
 Result type for expression template evaluations.
 
typedef VT::ResultType TransposeType
 Transpose type for expression template evaluations.
 
typedef VT::ElementType ElementType
 Type of the vector elements.
 
typedef IT::Type IntrinsicType
 Intrinsic type of the vector elements.
 
typedef VT::ReturnType ReturnType
 Return type for expression template evaluations.
 
typedef const ThisCompositeType
 Data type for composite expression templates.
 
typedef VT::Reference Reference
 Reference to a non-constant matrix value.
 
typedef VT::ConstReference ConstReference
 Reference to a constant matrix value.
 
typedef VT::Iterator Iterator
 Iterator over non-constant elements.
 
typedef VT::ConstIterator ConstIterator
 Iterator over constant elements.
 
typedef VT VectorType
 Type of the vector.
 

Public Member Functions

 DVecTransposer (VT &dv)
 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...
 
ElementTypedata ()
 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 >::Type & operator*= (Other rhs)
 Multiplication assignment operator for the multiplication between a vector and a scalar value ( $ \vec{a}*=s $). More...
 
template<typename Other >
EnableIf< IsNumeric< Other >, DVecTransposer >::Type & operator/= (Other rhs)
 Division assignment operator for the division of a vector by a scalar value ( $ \vec{a}/=s $). More...
 
size_t size () const
 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
 Returns whether the vector can alias with the given address alias. More...
 
template<typename Other >
bool isAliased (const Other *alias) const
 Returns whether the vector is aliased with the given address alias. More...
 
bool isAligned () const
 Returns whether the vector is properly aligned in memory. More...
 
bool canSMPAssign () const
 Returns whether the vector can be used in SMP assignments. More...
 
BLAZE_ALWAYS_INLINE IntrinsicType load (size_t index) const
 Aligned load of an intrinsic element of the vector. More...
 
BLAZE_ALWAYS_INLINE IntrinsicType loadu (size_t index) const
 Unaligned load of an intrinsic element of the vector. More...
 
BLAZE_ALWAYS_INLINE void store (size_t index, const IntrinsicType &value)
 Aligned store of an intrinsic element of the vector. More...
 
BLAZE_ALWAYS_INLINE void storeu (size_t index, const IntrinsicType &value)
 Unaligned store of an intrinsic element of the vector. More...
 
BLAZE_ALWAYS_INLINE void stream (size_t index, const IntrinsicType &value)
 Aligned, non-temporal store of an intrinsic 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...
 
BLAZE_ALWAYS_INLINE VectorTypeoperator~ ()
 Conversion operator for non-constant vectors. More...
 
BLAZE_ALWAYS_INLINE const VectorTypeoperator~ () const
 Conversion operator for constant vectors. More...
 

Private Types

typedef IntrinsicTrait< typename VT::ElementType > IT
 Intrinsic trait for the vector element type.
 

Private Attributes

VT & dv_
 The dense vector operand.
 

Detailed Description

template<typename VT, bool TF>
class blaze::DVecTransposer< VT, TF >

Expression object for the transposition of a dense vector.

The DVecTransposer class is a wrapper object for the temporary transposition of a dense vector.

Constructor & Destructor Documentation

template<typename VT, bool TF>
blaze::DVecTransposer< VT, TF >::DVecTransposer ( VT &  dv)
inlineexplicit

Constructor for the DVecTransposer class.

Parameters
dvThe dense vector operand.

Member Function Documentation

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::addAssign ( const DenseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose addition assignment of a dense vector.

Parameters
rhsThe right-hand side dense vector to be added.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::addAssign ( const SparseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose addition assignment of a sparse vector.

Parameters
rhsThe right-hand side sparse vector to be added.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::assign ( const DenseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose assignment of a dense vector.

Parameters
rhsThe right-hand side dense vector to be assigned.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::assign ( const SparseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose assignment of a sparse vector.

Parameters
rhsThe right-hand side sparse vector to be assigned.
Returns
void

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.

template<typename VT, bool TF>
Iterator blaze::DVecTransposer< VT, TF >::begin ( )
inline

Returns an iterator to the first element of the dense vector.

Returns
Iterator to the first element of the dense vector.
template<typename VT, bool TF>
ConstIterator blaze::DVecTransposer< VT, TF >::begin ( ) const
inline

Returns an iterator to the first element of the dense vector.

Returns
Iterator to the first element of the dense vector.
template<typename VT, bool TF>
template<typename Other >
bool blaze::DVecTransposer< VT, TF >::canAlias ( const Other *  alias) const
inline

Returns whether the vector can alias with the given address alias.

Parameters
aliasThe alias to be checked.
Returns
true in case the alias corresponds to this vector, false if not.
template<typename VT, bool TF>
bool blaze::DVecTransposer< VT, TF >::canSMPAssign ( ) const
inline

Returns whether the vector can be used in SMP assignments.

Returns
true in case the vector can be used in SMP assignments, false if not.
template<typename VT, bool TF>
ConstIterator blaze::DVecTransposer< VT, TF >::cbegin ( ) const
inline

Returns an iterator to the first element of the dense vector.

Returns
Iterator to the first element of the dense vector.
template<typename VT, bool TF>
ConstIterator blaze::DVecTransposer< VT, TF >::cend ( ) const
inline

Returns an iterator just past the last element of the dense vector.

Returns
Iterator just past the last element of the dense vector.
template<typename VT, bool TF>
ElementType* blaze::DVecTransposer< VT, TF >::data ( )
inline

Low-level data access to the vector elements.

Returns
Pointer to the internal element storage.
template<typename VT, bool TF>
Iterator blaze::DVecTransposer< VT, TF >::end ( )
inline

Returns an iterator just past the last element of the dense vector.

Returns
Iterator just past the last element of the dense vector.
template<typename VT, bool TF>
ConstIterator blaze::DVecTransposer< VT, TF >::end ( ) const
inline

Returns an iterator just past the last element of the dense vector.

Returns
Iterator just past the last element of the dense vector.
template<typename VT, bool TF>
template<typename Other >
bool blaze::DVecTransposer< VT, TF >::isAliased ( const Other *  alias) const
inline

Returns whether the vector is aliased with the given address alias.

Parameters
aliasThe alias to be checked.
Returns
true in case the alias corresponds to this vector, false if not.
template<typename VT, bool TF>
bool blaze::DVecTransposer< VT, TF >::isAligned ( ) const
inline

Returns whether the vector is properly aligned in memory.

Returns
true in case the vector is aligned, false if not.
template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE IntrinsicType blaze::DVecTransposer< VT, TF >::load ( size_t  index) const
inline

Aligned load of an intrinsic element of the vector.

Parameters
indexAccess index. The index must be smaller than the number of vector elements.
Returns
The loaded intrinsic element.

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.

template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE IntrinsicType blaze::DVecTransposer< VT, TF >::loadu ( size_t  index) const
inline

Unaligned load of an intrinsic element of the vector.

Parameters
indexAccess index. The index must be smaller than the number of vector elements.
Returns
The loaded intrinsic element.

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::multAssign ( const DenseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose multiplication assignment of a dense vector.

Parameters
rhsThe right-hand side dense vector to be multiplied.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::multAssign ( const SparseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose multiplication assignment of a sparse vector.

Parameters
rhsThe right-hand side sparse vector to be multiplied.
Returns
void

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.

template<typename VT, bool TF>
template<typename Other >
EnableIf< IsNumeric<Other>, DVecTransposer >::Type& blaze::DVecTransposer< VT, TF >::operator*= ( Other  rhs)
inline

Multiplication assignment operator for the multiplication between a vector and a scalar value ( $ \vec{a}*=s $).

Parameters
rhsThe right-hand side scalar value for the multiplication.
Returns
Reference to this DVecTransposer.
template<typename VT, bool TF>
template<typename Other >
EnableIf< IsNumeric<Other>, DVecTransposer >::Type& blaze::DVecTransposer< VT, TF >::operator/= ( Other  rhs)
inline

Division assignment operator for the division of a vector by a scalar value ( $ \vec{a}/=s $).

Parameters
rhsThe right-hand side scalar value for the division.
Returns
Reference to this DVecTransposer.

Note: A division by zero is only checked by an user assert.

template<typename VT, bool TF>
Reference blaze::DVecTransposer< VT, TF >::operator[] ( size_t  index)
inline

Subscript operator for the direct access to the vector elements.

Parameters
indexAccess index. The index has to be in the range $[0..N-1]$.
Returns
Reference to the accessed value.
template<typename VT, bool TF>
ConstReference blaze::DVecTransposer< VT, TF >::operator[] ( size_t  index) const
inline

Subscript operator for the direct access to the vector elements.

Parameters
indexAccess index. The index has to be in the range $[0..N-1]$.
Returns
Reference to the accessed value.
template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE VectorType& blaze::Vector< VT, TF >::operator~ ( )
inlineinherited

Conversion operator for non-constant vectors.

Returns
Reference of the actual type of the vector.
template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE const VectorType& blaze::Vector< VT, TF >::operator~ ( ) const
inlineinherited

Conversion operator for constant vectors.

Returns
Const reference of the actual type of the vector.
template<typename VT, bool TF>
void blaze::DVecTransposer< VT, TF >::reset ( )
inline

Resets the vector elements.

Returns
void
template<typename VT, bool TF>
size_t blaze::DVecTransposer< VT, TF >::size ( ) const
inline

Returns the current size/dimension of the vector.

Returns
The size of the vector.
template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE void blaze::DVecTransposer< VT, TF >::store ( size_t  index,
const IntrinsicType value 
)
inline

Aligned store of an intrinsic element of the vector.

Parameters
indexAccess index. The index must be smaller than the number of vector elements.
valueThe intrinsic element to be stored.
Returns
void

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.

template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE void blaze::DVecTransposer< VT, TF >::storeu ( size_t  index,
const IntrinsicType value 
)
inline

Unaligned store of an intrinsic element of the vector.

Parameters
indexAccess index. The index must be smaller than the number of vector elements.
valueThe intrinsic element to be stored.
Returns
void

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.

template<typename VT, bool TF>
BLAZE_ALWAYS_INLINE void blaze::DVecTransposer< VT, TF >::stream ( size_t  index,
const IntrinsicType value 
)
inline

Aligned, non-temporal store of an intrinsic element of the vector.

Parameters
indexAccess index. The index must be smaller than the number of vector elements.
valueThe intrinsic element to be stored.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::subAssign ( const DenseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose subtraction assignment of a dense vector.

Parameters
rhsThe right-hand side dense vector to be subtracted.
Returns
void

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.

template<typename VT, bool TF>
template<typename VT2 >
void blaze::DVecTransposer< VT, TF >::subAssign ( const SparseVector< VT2, TF > &  rhs)
inline

Implementation of the transpose subtraction assignment of a sparse vector.

Parameters
rhsThe right-hand side sparse vector to be subtracted.
Returns
void

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.


The documentation for this class was generated from the following file: