[ VIGRA Homepage | Function Index | Class Index | Namespaces | File List | Main Page ]

details TinyVector< T, SIZE > Class Template Reference VIGRA

Class for fixed size vectors.This class contains an array of size SIZE of the specified VALUETYPE. The interface conforms to STL vector, except that there are no functions that change the size of a TinyVector. More...

#include <vigra/tinyvector.hxx>

Inheritance diagram for TinyVector< T, SIZE >:
TinyVectorBase< T, SIZE, T[SIZE], TinyVector< T, SIZE > >

Public Member Functions

template<class U , int USIZE, class DATA , class DERIVED >
TinyVectorcopy (TinyVectorBase< U, USIZE, DATA, DERIVED > const &r)
 
TinyVectoroperator= (TinyVector const &r)
 
template<class U , class DATA , class DERIVED >
TinyVectoroperator= (TinyVectorBase< U, SIZE, DATA, DERIVED > const &r)
 
TinyVectoroperator= (Diff2D const &r)
 
TinyVectoroperator= (value_type const &v)
 
 TinyVector (value_type const &initial)
 
 TinyVector (lemon::Invalid const &)
 
 TinyVector (Diff2D const &initial)
 
 TinyVector (value_type const &i1, value_type const &i2)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3, value_type const &i4)
 
 TinyVector (value_type const &i1, value_type const &i2, value_type const &i3, value_type const &i4, value_type const &i5)
 
 TinyVector ()
 
 TinyVector (SkipInitializationTag)
 
 TinyVector (TinyVector const &r)
 
template<class U >
 TinyVector (U const *data)
 
 TinyVector (const_pointer data, ReverseCopyTag)
 
template<class U , class DATA , class DERIVED >
 TinyVector (TinyVectorBase< U, SIZE, DATA, DERIVED > const &r)
 
- Public Member Functions inherited from TinyVectorBase< T, SIZE, T[SIZE], TinyVector< T, SIZE > >
bool all () const
 
bool any () const
 
iterator begin ()
 
const_iterator begin () const
 
const_iterator cbegin () const
 
const_iterator cend () const
 
iterator end ()
 
const_iterator end () const
 
void init (Iterator i, Iterator end)
 
void init (value_type initial)
 
NormType magnitude () const
 
VALUETYPE const & maximum () const
 
VALUETYPE const & minimum () const
 
DERIVED & operator%= (TinyVectorBase< T1, SIZE, T, TinyVector< T, SIZE > > const &r)
 
DERIVED & operator*= (TinyVectorBase< T1, SIZE, T, TinyVector< T, SIZE > > const &r)
 
DERIVED & operator*= (double r)
 
DERIVED & operator+= (TinyVectorBase< T1, SIZE, T, TinyVector< T, SIZE > > const &r)
 
DERIVED & operator+= (double r)
 
DERIVED & operator-= (TinyVectorBase< T1, SIZE, T, TinyVector< T, SIZE > > const &r)
 
DERIVED & operator-= (double r)
 
DERIVED & operator/= (TinyVectorBase< T1, SIZE, T, TinyVector< T, SIZE > > const &r)
 
DERIVED & operator/= (double r)
 
reference operator[] (difference_type i)
 
const_reference operator[] (difference_type i) const
 
size_type size () const
 
SquaredNormType squaredMagnitude () const
 
TinyVectorView< VALUETYPE, TO-FROM > subarray () const
 

Additional Inherited Members

- Public Types inherited from TinyVectorBase< T, SIZE, T[SIZE], TinyVector< T, SIZE > >
enum  
 
typedef value_type const * const_iterator
 
typedef VALUETYPE const * const_pointer
 
typedef VALUETYPE const & const_reference
 
typedef std::ptrdiff_t difference_type
 
typedef value_typeiterator
 
typedef SquareRootTraits
< SquaredNormType >
::SquareRootResult 
NormType
 
typedef VALUETYPE * pointer
 
typedef VALUETYPE & reference
 
typedef double scalar_multiplier
 
typedef unsigned int size_type
 
typedef NormTraits< VALUETYPE >
::SquaredNormType 
SquaredNormType
 
typedef VALUETYPE value_type
 
- Static Public Member Functions inherited from TinyVectorBase< T, SIZE, T[SIZE], TinyVector< T, SIZE > >
static TinyVector< VALUETYPE,
SIZE > 
linearSequence (VALUETYPE start=VALUETYPE(), VALUETYPE step=VALUETYPE(1))
 Factory function for a linear sequence. More...
 
static TinyVector< VALUETYPE,
SIZE > 
unitVector (int k)
 Factory function for a unit vector for dimension k.
 

Detailed Description

template<class T, int SIZE>
class vigra::TinyVector< T, SIZE >

Class for fixed size vectors.

This class contains an array of size SIZE of the specified VALUETYPE. The interface conforms to STL vector, except that there are no functions that change the size of a TinyVector.

Arithmetic operations on TinyVectors are defined as component-wise applications of these operations. Addition and subtraction of two TinyVectors (+=, -=, +, -, unary -), multiplication and division of an TinyVector with a double, and NumericTraits/PromoteTraits are defined, so that TinyVector fulfills the requirements of Linear Algebra.

VIGRA algorithms typically use vigra::VectorAccessor to access TinyVectors as a whole, or specific components of them.

See also:

#include <vigra/tinyvector.hxx>
Namespace: vigra

Examples:
transpose.cxx.

Constructor & Destructor Documentation

TinyVector ( value_type const &  initial)
explicit

Construction with constant value.

Initializes all vector elements with the given value.

TinyVector ( lemon::Invalid const &  )

Construction from lemon::Invalid.

Initializes all vector elements with -1.

TinyVector ( Diff2D const &  initial)
explicit

Construction with Diff2D.

Use only when SIZE == 2.

TinyVector ( value_type const &  i1,
value_type const &  i2 
)

Construction with explicit values. Call only if SIZE == 2

TinyVector ( value_type const &  i1,
value_type const &  i2,
value_type const &  i3 
)

Construction with explicit values. Call only if SIZE == 3

TinyVector ( value_type const &  i1,
value_type const &  i2,
value_type const &  i3,
value_type const &  i4 
)

Construction with explicit values. Call only if SIZE == 4

TinyVector ( value_type const &  i1,
value_type const &  i2,
value_type const &  i3,
value_type const &  i4,
value_type const &  i5 
)

Construction with explicit values. Call only if SIZE == 5

Default constructor (initializes all elements with zero).

TinyVector ( SkipInitializationTag  )
explicit

Construct without initializing the vector elements.

TinyVector ( TinyVector< T, SIZE > const &  r)

Copy constructor.

TinyVector ( U const *  data)
explicit

Constructor from C array.

TinyVector ( const_pointer  data,
ReverseCopyTag   
)
explicit

Constructor by reverse copy from C array.

Usage:

TinyVector<int, 3> v(1,2,3);
TinyVector<int, 3> reversed(v.begin(), TinyVector<int, 3>::ReverseCopy);
TinyVector ( TinyVectorBase< U, SIZE, DATA, DERIVED > const &  r)

Copy with type conversion.

Member Function Documentation

TinyVector& operator= ( TinyVector< T, SIZE > const &  r)

Copy assignment.

TinyVector& operator= ( TinyVectorBase< U, SIZE, DATA, DERIVED > const &  r)

Copy assignment with type conversion.

TinyVector& operator= ( Diff2D const &  r)

Assignment from Diff2D.

Use only when SIZE == 2.

TinyVector& operator= ( value_type const &  v)

Assignment from scalar. Will set all entries to the given value.

TinyVector& copy ( TinyVectorBase< U, USIZE, DATA, DERIVED > const &  r)

Copy from a TinyVector with a different number of elements.

Only the first min(SIZE, USIZE) elements are copied.


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

© Ullrich Köthe (ullrich.koethe@iwr.uni-heidelberg.de)
Heidelberg Collaboratory for Image Processing, University of Heidelberg, Germany

html generated using doxygen and Python
vigra 1.11.1 (Fri May 19 2017)