template<typename V, typename Parent, int Dimension, typename RowMemory>
class Vc::Common::MemoryBase< V, Parent, Dimension, RowMemory >
Common interface to all Memory classes, independent of allocation on the stack or heap.
- Parameters
-
V | The vector type you want to operate on. (e.g. float_v or uint_v) |
Parent | This type is the complete type of the class that derives from MemoryBase. |
Dimension | The number of dimensions the implementation provides. |
RowMemory | Class to be used to work on a single row. |
Definition at line 367 of file memorybase.h.
Inherits MemoryDimensionBase< V, Parent, Dimension, RowMemory >.
|
size_t | entriesCount () const |
|
size_t | vectorsCount () const |
|
template<typename Flags = AlignedTag> |
MemoryVectorIterator< V, Flags > | begin (Flags flags=Flags()) |
| Return a (vectorized) iterator to the start of this memory object.
|
|
template<typename Flags = AlignedTag> |
MemoryVectorIterator< const V, Flags > | begin (Flags flags=Flags()) const |
| const overload of the above
|
|
template<typename Flags = AlignedTag> |
MemoryVectorIterator< V, Flags > | end (Flags flags=Flags()) |
| Return a (vectorized) iterator to the end of this memory object.
|
|
template<typename Flags = AlignedTag> |
MemoryVectorIterator< const V, Flags > | end (Flags flags=Flags()) const |
| const overload of the above
|
|
template<typename Flags = AlignedTag> |
std::enable_if<!std::is_convertible< Flags, int >::value, vector_reference< Flags > >::type | vector (size_t i, Flags=Flags()) |
|
template<typename Flags = AlignedTag> |
std::enable_if<!std::is_convertible< Flags, int >::value, const_vector_reference< Flags > >::type | vector (size_t i, Flags=Flags()) const |
| Const overload of the above function. More...
|
|
template<typename Flags = UnalignedTag> |
vector_reference< Flags > | vectorAt (size_t i, Flags flags=Flags()) |
|
template<typename Flags = UnalignedTag> |
const_vector_reference< Flags > | vectorAt (size_t i, Flags flags=Flags()) const |
| Const overload of the above function. More...
|
|
template<typename ShiftT , typename Flags = decltype(Unaligned)> |
std::enable_if< std::is_convertible< ShiftT, int >::value, vector_reference< decltype(std::declval< Flags >)|Unaligned)> >::type | vector (size_t i, ShiftT shift, Flags=Flags()) |
|
template<typename ShiftT , typename Flags = decltype(Unaligned)> |
std::enable_if< std::is_convertible< ShiftT, int >::value, const_vector_reference< decltype(std::declval< Flags >)|Unaligned)> >::type | vector (size_t i, ShiftT shift, Flags=Flags()) const |
| Const overload of the above function.
|
|
template<typename Flags = AlignedTag> |
vector_reference< Flags > | firstVector (Flags f=Flags()) |
|
template<typename Flags = AlignedTag> |
const_vector_reference< Flags > | firstVector (Flags f=Flags()) const |
| Const overload of the above function.
|
|
template<typename Flags = AlignedTag> |
vector_reference< Flags > | lastVector (Flags f=Flags()) |
|
template<typename Flags = AlignedTag> |
const_vector_reference< Flags > | lastVector (Flags f=Flags()) const |
| Const overload of the above function.
|
|
void | setZero () |
| Zero the whole memory area.
|
|
template<typename U > |
Parent & | operator= (U &&x) |
| Assign a value to all vectors in the array.
|
|
template<typename P2 , typename RM > |
Parent & | operator+= (const MemoryBase< V, P2, Dimension, RM > &rhs) |
| (Inefficient) shorthand to add up two arrays.
|
|
template<typename P2 , typename RM > |
Parent & | operator-= (const MemoryBase< V, P2, Dimension, RM > &rhs) |
| (Inefficient) shorthand to subtract two arrays.
|
|
template<typename P2 , typename RM > |
Parent & | operator*= (const MemoryBase< V, P2, Dimension, RM > &rhs) |
| (Inefficient) shorthand to multiply two arrays.
|
|
template<typename P2 , typename RM > |
Parent & | operator/= (const MemoryBase< V, P2, Dimension, RM > &rhs) |
| (Inefficient) shorthand to divide two arrays.
|
|
Parent & | operator+= (EntryType rhs) |
| (Inefficient) shorthand to add a value to an array.
|
|
Parent & | operator-= (EntryType rhs) |
| (Inefficient) shorthand to subtract a value from an array.
|
|
Parent & | operator*= (EntryType rhs) |
| (Inefficient) shorthand to multiply a value to an array.
|
|
Parent & | operator/= (EntryType rhs) |
| (Inefficient) shorthand to divide an array with a value.
|
|
template<typename P2 , typename RM > |
bool | operator== (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare equality of two arrays.
|
|
template<typename P2 , typename RM > |
bool | operator!= (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare two arrays.
|
|
template<typename P2 , typename RM > |
bool | operator< (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare two arrays.
|
|
template<typename P2 , typename RM > |
bool | operator<= (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare two arrays.
|
|
template<typename P2 , typename RM > |
bool | operator> (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare two arrays.
|
|
template<typename P2 , typename RM > |
bool | operator>= (const MemoryBase< V, P2, Dimension, RM > &rhs) const |
| (Inefficient) shorthand compare two arrays.
|
|