[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
|
MultiArray | ![]() |
Main MultiArray class containing the memory management.
More...
#include <vigra/multi_array.hxx>

Public Types | |
| typedef A | allocator_type |
| typedef T * | const_iterator |
| typedef view_type::const_pointer | const_pointer |
| typedef view_type::const_reference | const_reference |
| typedef vigra::detail::MultiIteratorChooser < UnstridedArrayTag > ::template Traverser< N, T, T const &, T const * >::type | const_traverser |
| typedef view_type::difference_type | difference_type |
| typedef view_type::difference_type_1 | difference_type_1 |
| typedef T * | iterator |
| typedef MultiArray< N, T, A > | matrix_type |
| typedef view_type::pointer | pointer |
| typedef view_type::reference | reference |
| typedef view_type::size_type | size_type |
| typedef vigra::detail::MultiIteratorChooser < UnstridedArrayTag > ::template Traverser< N, T, T &, T * >::type | traverser |
| typedef view_type::value_type | value_type |
| typedef MultiArrayView< N, T > | view_type |
Public Member Functions | |
| allocator_type const & | allocator () const |
| const_iterator | begin () const |
| iterator | begin () |
| const_iterator | end () const |
| iterator | end () |
| template<class U> | |
| MultiArray & | init (const U &init) |
| template<class U, class C> | |
| MultiArray (const MultiArrayView< N, U, C > &rhs, allocator_type const &alloc=allocator_type()) | |
| MultiArray (const MultiArray &rhs) | |
| MultiArray (const difference_type &shape, const_pointer init, allocator_type const &alloc=allocator_type()) | |
| MultiArray (const difference_type &shape, const_reference init, allocator_type const &alloc=allocator_type()) | |
| MultiArray (const difference_type &shape, allocator_type const &alloc=allocator_type()) | |
| MultiArray (allocator_type const &alloc) | |
| MultiArray () | |
| MultiArray & | operator*= (const T &rhs) |
| template<class U, class C> | |
| MultiArray & | operator*= (const MultiArrayView< N, U, C > &rhs) |
| MultiArray & | operator+= (const T &rhs) |
| template<class U, class C> | |
| MultiArray & | operator+= (const MultiArrayView< N, U, C > &rhs) |
| MultiArray & | operator-= (const T &rhs) |
| template<class U, class C> | |
| MultiArray & | operator-= (const MultiArrayView< N, U, C > &rhs) |
| MultiArray & | operator/= (const T &rhs) |
| template<class U, class C> | |
| MultiArray & | operator/= (const MultiArrayView< N, U, C > &rhs) |
| template<class U, class C> | |
| MultiArray & | operator= (const MultiArrayView< N, U, C > &rhs) |
| MultiArray & | operator= (const MultiArray &rhs) |
| void | reshape (const difference_type &shape, const_reference init) |
| void | reshape (const difference_type &shape) |
| void | swap (MultiArray &other) |
| ~MultiArray () | |
Protected Member Functions | |
| template<class U, class C> | |
| void | allocate (pointer &ptr, MultiArrayView< N, U, C > const &init) |
| template<class U> | |
| void | allocate (pointer &ptr, difference_type_1 s, U const *init) |
| void | allocate (pointer &ptr, difference_type_1 s, const_reference init) |
| void | deallocate (pointer &ptr, difference_type_1 s) |
Protected Attributes | |
| allocator_type | m_alloc |
MultiArray class containing the memory management.
This class inherits the interface of MultiArrayView, and implements the memory ownership. MultiArray's are always unstrided, striding them creates a MultiArrayView.
The template parameters are as follows
N: the array dimension
T: the type of the array elements
A: the allocator used for internal storage management
(default: std::allocator<T>)
#include <vigra/multi_array.hxx>
Namespace: vigra
| template<class U, class C> | |||
| typedef A allocator_type | |||
the allocator type used to allocate the memory
Reimplemented in Matrix, and Matrix< T >.
| typedef T* const_iterator |
sequential (random access) const iterator type
const pointer type
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
const reference type (result of operator[] const)
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| typedef vigra::detail::MultiIteratorChooser< UnstridedArrayTag>::template Traverser<N, T, T const &, T const *>::type const_traverser |
traverser type to const data
Reimplemented from MultiArrayView< N, T >.
difference type (used for multi-dimensional offsets and indices)
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| template<class U> | |||
| typedef view_type::difference_type_1 difference_type_1 | |||
difference and index type for a single dimension
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| typedef T* iterator |
sequential (random access) iterator type
| typedef MultiArray<N, T, A> matrix_type |
the matrix type associated with this array.
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| template<class U, class C> | |||
| typedef view_type::pointer pointer | |||
| typedef view_type::reference reference |
reference type (result of operator[])
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| typedef view_type::size_type size_type |
size type
Reimplemented from MultiArrayView< N, T >.
| typedef vigra::detail::MultiIteratorChooser< UnstridedArrayTag>::template Traverser<N, T, T &, T *>::type traverser |
traverser type
Reimplemented from MultiArrayView< N, T >.
| typedef view_type::value_type value_type |
the array's value type
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| typedef MultiArrayView<N, T> view_type |
the view type associated with this array.
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| MultiArray | ( | ) |
default constructor
| MultiArray | ( | allocator_type const & | alloc | ) |
construct with given allocator
| MultiArray | ( | const difference_type & | shape, | |
| allocator_type const & | alloc = allocator_type() | |||
| ) | [explicit] |
construct with given shape
| MultiArray | ( | const difference_type & | shape, | |
| const_reference | init, | |||
| allocator_type const & | alloc = allocator_type() | |||
| ) |
construct from shape with an initial value
| MultiArray | ( | const difference_type & | shape, | |
| const_pointer | init, | |||
| allocator_type const & | alloc = allocator_type() | |||
| ) |
construct from shape and copy values from the given array
| MultiArray | ( | const MultiArray< N, T, A > & | rhs | ) |
copy constructor
| MultiArray | ( | const MultiArrayView< N, U, C > & | rhs, | |
| allocator_type const & | alloc = allocator_type() | |||
| ) |
construct by copying from a MultiArrayView
| ~MultiArray | ( | ) |
destructor
| void allocate | ( | pointer & | ptr, | |
| MultiArrayView< N, U, C > const & | init | |||
| ) | [protected] |
allocate memory, write its address into the given pointer and initialize it by copying the data from the given MultiArrayView.
| void allocate | ( | pointer & | ptr, | |
| difference_type_1 | s, | |||
| U const * | init | |||
| ) | [protected] |
allocate memory for s pixels, write its address into the given pointer and initialize the linearized pixels to the values of init.
| void allocate | ( | pointer & | ptr, | |
| difference_type_1 | s, | |||
| const_reference | init | |||
| ) | [protected] |
allocate memory for s pixels, write its address into the given pointer and initialize the pixels with init.
| allocator_type const& allocator | ( | ) | const |
get the allocator.
| const_iterator begin | ( | ) | const |
sequential const iterator pointing to the first array element.
| iterator begin | ( | ) |
sequential iterator pointing to the first array element.
| void deallocate | ( | pointer & | ptr, | |
| difference_type_1 | s | |||
| ) | [protected] |
deallocate the memory (of length s) starting at the given address.
| const_iterator end | ( | ) | const |
sequential const iterator pointing beyond the last array element.
| iterator end | ( | ) |
sequential iterator pointing beyond the last array element.
| MultiArray& init | ( | const U & | init | ) |
init elements with a constant
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix, and Matrix< T >.
| MultiArray& operator*= | ( | const T & | rhs | ) |
Multiply-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator*= | ( | const MultiArrayView< N, U, C > & | rhs | ) |
Multiply-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| MultiArray& operator+= | ( | const T & | rhs | ) |
Add-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator+= | ( | const MultiArrayView< N, U, C > & | rhs | ) |
Add-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| MultiArray& operator-= | ( | const T & | rhs | ) |
Subtract-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator-= | ( | const MultiArrayView< N, U, C > & | rhs | ) |
Subtract-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| MultiArray& operator/= | ( | const T & | rhs | ) |
Divide-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator/= | ( | const MultiArrayView< N, U, C > & | rhs | ) |
Divide-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| MultiArray& operator= | ( | const MultiArrayView< N, U, C > & | rhs | ) |
assignment from arbitrary MultiArrayView.
If the size of rhs is the same as the left-hand side arrays's old size, only the data are copied. Otherwise, new storage is allocated, which invalidates all objects (array views, iterators) depending on the lhs array.
| MultiArray& operator= | ( | const MultiArray< N, T, A > & | rhs | ) |
assignment.
If the size of rhs is the same as the left-hand side arrays's old size, only the data are copied. Otherwise, new storage is allocated, which invalidates all objects (array views, iterators) depending on the lhs array.
| void reshape | ( | const difference_type & | shape, | |
| const_reference | init | |||
| ) |
Allocate new memory with the given shape and initialize it with the given value.
Note: this operation invalidates all dependent objects (array views and iterators)
| void reshape | ( | const difference_type & | shape | ) |
Allocate new memory with the given shape and initialize with zeros.
Note: this operation invalidates all dependent objects (array views and iterators)
| void swap | ( | MultiArray< N, T, A > & | other | ) |
Swap the contents with another MultiArray. This is fast, because no data are copied, but only pointers and shapes swapped. Note: this operation invalidates all dependent objects (array views and iterators)
allocator_type m_alloc [protected] |
the allocator used to allocate the memory
|
© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de) |
html generated using doxygen and Python
|