[ 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
|