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

| TinyVectorBase< VALUETYPE, SIZE, DATA, DERIVED > Class Template Reference |

Base class for fixed size vectors. More...

`#include <vigra/tinyvector.hxx>`

## Public Types

enum |
typedef const value_type * | const_iterator
typedef const VALUETYPE * | const_pointer
typedef const VALUETYPE & | const_reference
typedef std::ptrdiff_t | difference_type
typedef value_type * | iterator
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

## Public Member Functions

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
template<class Iterator >
void | init (Iterator i, Iterator end)
void | init (value_type initial)
NormType | magnitude () const
const VALUETYPE & | maximum () const
const VALUETYPE & | minimum () const
template<class T1 , class D1 , class D2 >
DERIVED & | operator%= (TinyVectorBase< T1, SIZE, D1, D2 > const &r)
DERIVED & | operator*= (double r)
template<class T1 , class D1 , class D2 >
DERIVED & | operator*= (TinyVectorBase< T1, SIZE, D1, D2 > const &r)
DERIVED & | operator+= (double r)
template<class T1 , class D1 , class D2 >
DERIVED & | operator+= (TinyVectorBase< T1, SIZE, D1, D2 > const &r)
DERIVED & | operator-= (double r)
template<class T1 , class D1 , class D2 >
DERIVED & | operator-= (TinyVectorBase< T1, SIZE, D1, D2 > const &r)
DERIVED & | operator/= (double r)
template<class T1 , class D1 , class D2 >
DERIVED & | operator/= (TinyVectorBase< T1, SIZE, D1, D2 > const &r)
reference | operator[] (difference_type i)
const_reference | operator[] (difference_type i) const
size_type | size () const
SquaredNormType | squaredMagnitude () const
template<int FROM, int TO>
TinyVectorView< VALUETYPE, TO-FROM > | subarray () const

## Static Public Member Functions

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 VALUETYPE, int SIZE, class DATA, class DERIVED>
class vigra::TinyVectorBase< VALUETYPE, SIZE, DATA, DERIVED >

Base class for fixed size vectors.

This class contains functionality shared by TinyVector and TinyVectorView, and enables these classes to be freely mixed within expressions. It is typically not used directly.

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

## Member Typedef Documentation

## ◆ value_type

typedef VALUETYPE value_type

STL-compatible definition of valuetype

## ◆ reference

typedef VALUETYPE& reference

reference (return of operator[]).

## ◆ const_reference

typedef const VALUETYPE& const_reference

const reference (return of operator[] const).

## ◆ pointer

typedef VALUETYPE* pointer

pointer (return of operator->).

## ◆ const_pointer

typedef const VALUETYPE* const_pointer

const pointer (return of operator-> const).

## ◆ iterator

typedef value_type* iterator

STL-compatible definition of iterator

## ◆ const_iterator

typedef const value_type* const_iterator

STL-compatible definition of const iterator

## ◆ size_type

typedef unsigned int size_type

STL-compatible definition of size_type

## ◆ difference_type

typedef std::ptrdiff_t difference_type

STL-compatible definition of difference_type

## ◆ scalar_multiplier

typedef double scalar_multiplier

the scalar type for the outer product

## ◆ SquaredNormType

typedef NormTraits<VALUETYPE>::SquaredNormType SquaredNormType

the vector's squared norm type

## ◆ NormType

typedef SquareRootTraits<SquaredNormType>::SquareRootResult NormType

the vector's norm type

## Member Enumeration Documentation

## ◆ anonymous enum

anonymous enum

the vector's size

## Member Function Documentation

## ◆ init() [1/2]

void init | ( | Iterator | i,
|  | Iterator | end
| ) |  |

Initialize from another sequence (must have length SIZE!)

## ◆ init() [2/2]

void init | ( | value_type | initial | ) |

Initialize with constant value

## ◆ operator+=() [1/2]

DERIVED& operator+= | ( | TinyVectorBase< T1, SIZE, D1, D2 > const & | r | ) |

Component-wise add-assignment

## ◆ operator-=() [1/2]

DERIVED& operator-= | ( | TinyVectorBase< T1, SIZE, D1, D2 > const & | r | ) |

Component-wise subtract-assignment

## ◆ operator*=() [1/2]

DERIVED& operator*= | ( | TinyVectorBase< T1, SIZE, D1, D2 > const & | r | ) |

Component-wise multiply-assignment

## ◆ operator/=() [1/2]

DERIVED& operator/= | ( | TinyVectorBase< T1, SIZE, D1, D2 > const & | r | ) |

Component-wise divide-assignment

## ◆ operator%=()

DERIVED& operator%= | ( | TinyVectorBase< T1, SIZE, D1, D2 > const & | r | ) |

Component-wise modulo-assignment

## ◆ operator+=() [2/2]

DERIVED& operator+= | ( | double | r | ) |

Component-wise scalar multiply-assignment

## ◆ operator-=() [2/2]

DERIVED& operator-= | ( | double | r | ) |

Component-wise scalar divide-assignment

## ◆ operator*=() [2/2]

DERIVED& operator*= | ( | double | r | ) |

Component-wise scalar multiply-assignment

## ◆ operator/=() [2/2]

DERIVED& operator/= | ( | double | r | ) |

Component-wise scalar divide-assignment

## ◆ magnitude()

NormType magnitude | ( |  | ) | const

Calculate magnitude (i.e. 2-norm / Euclidean norm / length).

See also
  squaredMagnitude()

## ◆ squaredMagnitude()

SquaredNormType squaredMagnitude | ( |  | ) | const

Calculate squared magnitude (i.e. sum of squared elements).

## ◆ minimum()

const VALUETYPE& minimum | ( |  | ) | const

Return the minimal element.

## ◆ maximum()

const VALUETYPE& maximum | ( |  | ) | const

Return the maximal element.

## ◆ all()

bool all | ( |  | ) | const

Check that all elements of this vector are non-zero (or 'true' if T is bool).

## ◆ any()

bool any | ( |  | ) | const

Check that at least one element of this vector is non-zero (or 'true' if T is bool).

## ◆ operator[]() [1/2]

reference operator[] | ( | difference_type | i | ) |

Access component by index.

## ◆ operator[]() [2/2]

const_reference operator[] | ( | difference_type | i | ) | const

Get component by index.

## ◆ begin() [1/2]

iterator begin | ( |  | ) |

Get random access iterator to begin of vector.

## ◆ end() [1/2]

iterator end | ( |  | ) |

Get random access iterator past-the-end of vector.

## ◆ begin() [2/2]

const_iterator begin | ( |  | ) | const

Get const random access iterator to begin of vector.

## ◆ end() [2/2]

const_iterator end | ( |  | ) | const

Get const random access iterator past-the-end of vector.

## ◆ cbegin()

const_iterator cbegin | ( |  | ) | const

Get const random access iterator to begin of vector.

## ◆ cend()

const_iterator cend | ( |  | ) | const

Get const random access iterator past-the-end of vector.

## ◆ subarray()

TinyVectorView<VALUETYPE, TO-FROM> subarray | ( |  | ) | const

Get a view to the subarray with length `(TO-FROM)` starting at `FROM`. The bounds must fullfill `0 <= FROM < TO <= SIZE`, but this is only checked when `VIGRA_CHECK_BOUNDS` is #define'd.

## ◆ size()

size_type size | ( |  | ) | const

Size of TinyVector vector always equals the template parameter SIZE.

## ◆ linearSequence()

static TinyVector<VALUETYPE, SIZE> linearSequence | ( | VALUETYPE | start = `VALUETYPE()`,
|  | VALUETYPE | step = `VALUETYPE(1)`
| ) |  |

static

Factory function for a linear sequence.

The result will be initialized as `res[k] = start + k*step`.

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

- vigra/tinyvector.hxx

© 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