yat
0.14.5pre
|
This is the yat interface to gsl_vector_view. More...
#include <yat/utility/VectorView.h>
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. More... | |
VectorView (VectorView &other) | |
The copy constructor. More... | |
VectorView (VectorMutable &other) | |
copy another VectorMutable More... | |
VectorView (VectorMutable &v, size_t offset, size_t n, size_t stride=1) | |
VectorView constructor. More... | |
VectorView (Matrix &m, size_t i, bool row=true) | |
~VectorView (void) | |
bool | isview (void) const |
const VectorView & | operator= (const VectorView &) |
The assignment operator. More... | |
const VectorView & | operator= (const VectorBase &) |
The assignment operator. More... | |
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, . More... | |
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, . More... | |
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. More... | |
const double & | operator() (size_t i) const |
Element access operator. More... | |
const VectorMutable & | operator+= (const VectorBase &) |
Addition and assign operator. VectorBase addition, . More... | |
const VectorMutable & | operator+= (double d) |
Add a constant to a VectorBase, . More... | |
const VectorMutable & | operator-= (const VectorBase &) |
Subtract and assign operator. VectorBase subtraction, . More... | |
const VectorMutable & | operator-= (double d) |
Subtract a constant to a VectorBase, . More... | |
const VectorMutable & | operator*= (double d) |
Multiply with scalar and assign operator, . More... | |
bool | equal (const VectorBase &, const double precision=0) const |
Check whether VectorBases are equal within a user defined precision, set by precision. More... | |
size_t | size (void) const |
bool | operator== (const VectorBase &) const |
Comparison operator. Takes linear time. More... | |
bool | operator!= (const VectorBase &) const |
Comparison operator. Takes linear time. More... | |
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. More... | |
double | max (const VectorBase &) |
Get the maximum value of the VectorBase. More... | |
size_t | max_index (const VectorBase &) |
Locate the maximum value in the VectorBase. More... | |
double | min (const VectorBase &) |
Get the minimum value of the VectorBase. More... | |
size_t | min_index (const VectorBase &) |
Locate the minimum value in the VectorBase. More... | |
bool | nan (const VectorBase &templat, Vector &flag) |
Create a VectorBase flag indicating NaN's in another VectorBase templat. More... | |
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. More... | |
std::ostream & | operator<< (std::ostream &s, const VectorBase &v) |
The output operator for the VectorBase class. More... | |
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
but you need to create a dummie object
or since sum is a const function, you can use VectorConstView
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
theplu::yat::utility::VectorView::VectorView | ( | void | ) |
Default constructor.
Creates a view into nothing and behaves like an empty Vector.
theplu::yat::utility::VectorView::VectorView | ( | VectorView & | other | ) |
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.
theplu::yat::utility::VectorView::~VectorView | ( | void | ) |
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 |
|
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 v are sent to ostream s and separated with the fill character of stream s, s.fill(). If you, for example, want to print the VectorBase 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.