[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]
Main MultiArray class containing the memory management.
More...
#include <vigra/multi_array.hxx>
Main 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
| typedef A allocator_type |
the allocator type used to allocate the memory
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef MultiArrayView<N, T> view_type |
the view type associated with this array.
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef MultiArray<N, T, A> matrix_type |
the matrix type associated with this array.
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef view_type::value_type value_type |
the array's value type
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef view_type::pointer pointer |
pointer type
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
const pointer type
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef view_type::reference reference |
reference type (result of operator[])
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
const reference type (result of operator[] const)
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef view_type::size_type size_type |
size type
Reimplemented from MultiArrayView< N, T >.
difference type (used for multi-dimensional offsets and indices)
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
difference and index type for a single dimension
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| typedef vigra::detail::MultiIteratorChooser< UnstridedArrayTag>::template Traverser<N, T, T &, T *>::type traverser |
traverser type
Reimplemented from MultiArrayView< N, 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 >.
| typedef T* iterator |
sequential (random access) iterator type
| typedef T* const_iterator |
sequential (random access) const iterator type
| 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, |
| 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.
| 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, |
| 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 deallocate | ( | pointer & | ptr, |
| difference_type_1 | s | ||
| ) | [protected] |
deallocate the memory (of length s) starting at the given address.
| 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.
| 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 MultiArrayView< N, U, C > & | rhs | ) |
Add-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| 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 MultiArrayView< N, U, C > & | rhs | ) |
Multiply-assignment from arbitrary MultiArrayView. Fails with PreconditionViolation exception when the shapes do not match.
| 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 T & | rhs | ) |
Add-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator-= | ( | const T & | rhs | ) |
Subtract-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator*= | ( | const T & | rhs | ) |
Multiply-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& operator/= | ( | const T & | rhs | ) |
Divide-assignment of a scalar.
Reimplemented from MultiArrayView< N, T >.
| MultiArray& init | ( | const U & | init | ) |
init elements with a constant
Reimplemented from MultiArrayView< N, T >.
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| 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)
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| 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)
Reimplemented in Matrix< T, ALLOC >, and Matrix< T >.
| 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)
| const_iterator begin | ( | ) | const |
sequential const iterator pointing to the first array element.
| const_iterator end | ( | ) | const |
sequential const iterator pointing beyond the last array element.
| allocator_type const& allocator | ( | ) | const |
get the allocator.
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
|