| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
| 7.1 Template parameters and types | ||
| 7.2 Constructors | ||
| 7.3 Member functions | ||
| 7.4 Assignment operators | ||
| 7.5 Expressions | ||
| 7.6 Global functions | ||
| 7.7 Arrays of TinyVector | ||
| 7.8 Input/output |
The TinyVector class provides a small, lightweight vector object
whose size is known at compile time. It is included via the header
<blitz/tinyvec.h>.
Note that TinyVector lives in the blitz namespace, so you will
need to refer to it as blitz::TinyVector, or use the directive
using namespace blitz;.
The Blitz++ Array object uses TinyVector internally, so if you
include <blitz/array.h>, the TinyVector header is automatically
included. However, to use TinyVector expressions, you will
need to include <blitz/tinyvec-et.h>.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The TinyVector<T,N> class has two template parameters:
Tis the numeric type of the vector (float, double, int,
complex<float>, etc.;
N is the number of elements in the vector.
Inside the TinyVector class, these types are declared:
T_numtypeis the numeric type stored in the vector (the template parameter T)
T_vectoris the vector type TinyVector<T,N>.
iteratoris an STL-style iterator.
constIteratoris an STL-style const iterator.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TinyVector(); |
The elements of the vector are left uninitialized.
TinyVector(const TinyVector<T,N>& x); |
The elements of vector x are copied.
TinyVector(T value); |
All elements are initialized to value.
TinyVector(T value1, T value2, ...); |
The vector is initialized with the list of values given. These constructors are provided for up to N=11.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TinyVector<T,N>::iterator begin(); TinyVector<T,N>::const_iterator begin() const; |
Returns an STL-style iterator for the vector, positioned at the beginning of the data.
TinyVector<T,N>::iterator end(); TinyVector<T,N>::const_iterator end() const; |
Returns an STL-style iterator for the vector, positioned at the end of the data.
T_numtype* [restrict] data(); const T_numtype* [restrict] data() const; |
Returns a pointer to the first element in the vector.
int length() const; |
Returns the length of the vector (the template parameter N).
T_numtype operator()(int i) const; T_numtype& operator()(int i); T_numtype operator[](int i) const; T_numtype& operator[](int i); |
Returns the ith element of the vector. If the code is compiled with
debugging enabled (-DBZ_DEBUG), bounds checking is performed.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
The assignment operators =, +=, -=, *=, /=, %=, ^=, &=, |=, >>= and <<= are
all provided. The right hand side of an assignment may be a scalar of type
T_numtype, a TinyVector of any type but the same size, or a
vector expression.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
Expressions involving tiny vectors may contain any combination of the operators
+ - * / % ^ & | >> << |
with operands of type TinyVector, scalar, or vector expressions.
The usual math functions (see the Array documentation) are supported
on TinyVector. Please note that to use TinyVector expressions,
you will need to include header <blitz/tinyvec-et.h> in your code.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
dot(TinyVector, TinyVector); dot(vector-expr, TinyVector); dot(TinyVector, vector-expr); dot(vector-expr, vector-expr); |
These functions calculate a dot product between TinyVectors
(or vector expressions). The result is a scalar; the type
of the scalar follows the usual type promotion rules.
product(TinyVector); |
Returns the product of all the elements in the vector.
sum(TinyVector); |
Returns the sum of the elements in the vector.
TinyVector<T,3> cross(TinyVector<T,3> x, TinyVector<T,3> y); |
Returns the cross product of x and y.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
TinyVectors may be used as an Array element type, just like any other concrete
numerical data type such as the built-in type double. Such an Array
of TinyVector elements constitutes a multicomponent Array, with the number of
Array components being equal to the length of the TinyVectors. Please see
Multicomponent and complex arrays for further information.
| [ < ] | [ > ] | [ << ] | [ Up ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
ostream& operator<<(ostream&, const TinyVector<T,N>& x); |
This function outputs a TinyVector onto a stream. Here’s
an illustration of the format for a length 3 vector:
[ 0.5 0.2 0.9 ] |
| [ << ] | [ >> ] | [Top] | [Contents] | [Index] | [ ? ] |
This document was generated by Autobuild on October 15, 2014 using texi2html 1.82.