yat
0.8.3pre
|
This is the yat interface to gsl_vector_view. More...
#include <yat/utility/VectorView.h>
Classes | |
struct | proxy |
Public Types | |
typedef double & | reference |
typedef StrideIterator< double * > | iterator |
mutable iterator | |
typedef double | value_type |
typedef const double & | const_reference |
typedef StrideIterator< const double * > | const_iterator |
VectorBase::const_iterator. | |
Public Member Functions | |
VectorView (void) | |
Default constructor. | |
VectorView (VectorView &other) | |
The copy constructor. | |
VectorView (VectorMutable &other) | |
copy another VectorMutable | |
VectorView (VectorMutable &v, size_t offset, size_t n, size_t stride=1) | |
VectorView constructor. | |
VectorView (Matrix &m, size_t i, bool row=true) | |
~VectorView (void) | |
bool | isview (void) const |
const VectorView & | operator= (const VectorView &) |
The assignment operator. | |
const VectorView & | operator= (const VectorBase &) |
The assignment operator. | |
VectorView (proxy p) | |
create VectorView from proxy class | |
operator proxy () | |
void | all (double value) |
iterator | begin (void) |
const_iterator | begin (void) const |
void | div (const VectorBase &other) |
This function performs element-wise division, . | |
iterator | end (void) |
const_iterator | end (void) const |
gsl_vector * | gsl_vector_p (void) |
const gsl_vector * | gsl_vector_p (void) const |
void | mul (const VectorBase &other) |
This function performs element-wise multiplication, . | |
void | reverse (void) |
Reverse the order of elements in the VectorMutable. | |
void | swap (size_t i, size_t j) |
Exchange elements i and j. | |
double & | operator() (size_t i) |
Element access operator. | |
const double & | operator() (size_t i) const |
Element access operator. | |
const VectorMutable & | operator+= (const VectorBase &) |
Addition and assign operator. VectorBase addition, . | |
const VectorMutable & | operator+= (double d) |
Add a constant to a VectorBase, . | |
const VectorMutable & | operator-= (const VectorBase &) |
Subtract and assign operator. VectorBase subtraction, . | |
const VectorMutable & | operator-= (double d) |
Subtract a constant to a VectorBase, . | |
const VectorMutable & | operator*= (double d) |
Multiply with scalar and assign operator, . | |
bool | equal (const VectorBase &, const double precision=0) const |
Check whether VectorBases are equal within a user defined precision, set by precision. | |
size_t | size (void) const |
bool | operator== (const VectorBase &) const |
Comparison operator. Takes linear time. | |
bool | operator!= (const VectorBase &) const |
Comparison operator. Takes linear time. | |
double | operator* (const VectorBase &) const |
Protected Attributes | |
gsl_vector * | vec_ |
const gsl_vector * | const_vec_ |
pointer to underlying GSL vector | |
Related Functions | |
(Note that these are not member functions.) | |
Vector | operator* (const VectorBase &, const Matrix &) |
Matrix Vector multiplication. | |
bool | isnull (const VectorBase &) |
Check if all elements of the VectorBase are zero. | |
double | max (const VectorBase &) |
Get the maximum value of the VectorBase. | |
size_t | max_index (const VectorBase &) |
Locate the maximum value in the VectorBase. | |
double | min (const VectorBase &) |
Get the minimum value of the VectorBase. | |
size_t | min_index (const VectorBase &) |
Locate the minimum value in the VectorBase. | |
bool | nan (const VectorBase &templat, Vector &flag) |
Create a VectorBase flag indicating NaN's in another VectorBase templat. | |
void | sort_index (std::vector< size_t > &sort_index, const VectorBase &invec) |
void | sort_smallest_index (std::vector< size_t > &sort_index, size_t k, const VectorBase &invec) |
void | sort_largest_index (std::vector< size_t > &sort_index, size_t k, const VectorBase &invec) |
double | sum (const VectorBase &) |
Calculate the sum of all VectorBase elements. | |
std::ostream & | operator<< (std::ostream &s, const VectorBase &v) |
The output operator for the VectorBase class. |
This is the yat interface to gsl_vector_view.
This class can be used to create a vector view into a Matrix or a VectorMutable. Modifying a view will also modify the underlying data, i.e., the Matrix or VectorMutable that is viewed into. For that reason all constructors are taking non-const references to disallow mutable views into a const objects. The fact that there is no copy constructor with const argument, but only a so-called move constructor (copying a non-const reference), implies that temporary objects such as objects returned from functions can not be copied directly. Instead the copying is done via a proxy class. Also since we can not bind a temporary to a non-const reference, a VectorView returned from a function cannot be sent directly to a function. For example
Matrix m(10,10); sum(m.row_view(0));
but you need to create a dummie object
Matrix m(10,10); VectorView vv = m.row_view(0); sum(vv);
or since sum is a const function, you can use VectorConstView
Matrix m(10,10); sum(m.row_const_view(0));
Note that VectorView does not own underlying data, and a VectorView is not valid if Vector/Matrix owning the data is deallocated.
|
inherited |
const_reference type is const double&
|
inherited |
reference type is double&
|
inherited |
value_type is double
Default constructor.
Creates a view into nothing and behaves like an empty Vector.
The copy constructor.
Modifications to created VectorView will also modify other. Created VectorView is not dependent on other, but if underlying data (Vector or Matrix) is deallocated VectorView is invalid.
|
explicit |
copy another VectorMutable
theplu::yat::utility::VectorView::VectorView | ( | VectorMutable & | v, |
size_t | offset, | ||
size_t | n, | ||
size_t | stride = 1 |
||
) |
VectorView constructor.
Create a view of VectorMutable v, with starting index offset, size n, and an optional stride.
theplu::yat::utility::VectorView::VectorView | ( | Matrix & | m, |
size_t | i, | ||
bool | row = true |
||
) |
Matrix row/column view constructor.
Create a row/column VectorView view of matrix m, pointing at row/column i. The parameter row is used to set whether the view should be a row or column view. If row is set to true, the view will be a row view (default behaviour), and, naturally, a column view otherwise.
A VectorView view can be used as any VectorMutable with the difference that changes made to the view will also change the object that is viewed.
The destructor.
|
inherited |
Set all elements to value.
|
inherited |
|
inherited |
|
inherited |
This function performs element-wise division, .
GSL_error | if dimensions mis-match. |
|
inherited |
|
inherited |
|
inherited |
Check whether VectorBases are equal within a user defined precision, set by precision.
|
inherited |
|
inherited |
|
virtual |
Implements theplu::yat::utility::VectorMutable.
|
inherited |
This function performs element-wise multiplication, .
GSL_error | if dimensions mis-match. |
theplu::yat::utility::VectorView::operator proxy | ( | ) |
conversion operator to private proxy class.
|
inherited |
Comparison operator. Takes linear time.
Checks are performed with exact matching, i.e., rounding off effects may destroy comparison. Use the equal function for comparing elements within a user defined precision.
|
inherited |
Element access operator.
If | GSL range checks are enabled in the underlying GSL library a GSL_error exception is thrown if either index is out of range. |
|
inherited |
Element access operator.
If | GSL range checks are enabled in the underlying GSL library a GSL_error exception is thrown if either index is out of range. |
|
inherited |
|
inherited |
Multiply with scalar and assign operator, .
|
inherited |
Addition and assign operator. VectorBase addition, .
GSL_error | if dimensions mis-match. |
|
inherited |
Add a constant to a VectorBase, .
|
inherited |
Subtract and assign operator. VectorBase subtraction, .
GSL_error | if dimensions mis-match. |
|
inherited |
Subtract a constant to a VectorBase, .
const VectorView& theplu::yat::utility::VectorView::operator= | ( | const VectorView & | ) |
The assignment operator.
GSL_error | if dimensions mis-match or if assignment fails |
const VectorView& theplu::yat::utility::VectorView::operator= | ( | const VectorBase & | ) |
The assignment operator.
GSL_error | if dimensions mis-match or if assignment fails |
Reimplemented from theplu::yat::utility::VectorBase.
|
inherited |
Comparison operator. Takes linear time.
Checks are performed with exact matching, i.e., rounding off effects may destroy comparison. Use the equal function for comparing elements within a user defined precision.
|
inherited |
|
related |
Check if all elements of the VectorBase are zero.
|
related |
Get the maximum value of the VectorBase.
|
related |
Locate the maximum value in the VectorBase.
|
related |
Get the minimum value of the VectorBase.
|
related |
Locate the minimum value in the VectorBase.
|
related |
Create a VectorBase flag indicating NaN's in another VectorBase templat.
The flag VectorBase is changed to contain 1's and 0's only. A 1 means that the corresponding element in the templat VectorBase is valid and a zero means that the corresponding element is a NaN.
|
related |
The output operator for the VectorBase class.
Elements in VectorBase \a v are sent to ostream \a s and separated with the fill character of stream \a s, s.fill(). If you, for example, want to print the VectorBase \a v with the elements separated by a ':', you do so by:
s << setfill(':') << v;
|
related |
Create a vector sort_index containing the indeces of elements in a another VectorBase invec. The elements of sort_index give the index of the VectorBase element which would have been stored in that position if the VectorBase had been sorted in place. The first element of sort_index gives the index of the least element in invec, and the last element of sort_index gives the index of the greatest element in invec . The VectorBase invec is not changed.
|
related |
Similar to sort_index but creates a VectorBase with indices to the k largest elements in invec.
|
related |
Similar to sort_index but creates a VectorBase with indices to the k smallest elements in invec.
|
related |
Calculate the sum of all VectorBase elements.
|
protectedinherited |
pointer to underlying GSL vector. Should always point to same gsl_vector as const_vec_ in base class does. This pointer should by used for mutable operations. Do not use this in const functions; use const_vec_ inherited from BaseVector.