SHOGUN
4.0.0
|
shogun vector
Definition at line 28 of file Parameter.h.
Public Types | |
typedef T | Scalar |
Public Member Functions | |
SGVector () | |
SGVector (T *v, index_t len, bool ref_counting=true) | |
SGVector (T *m, index_t len, index_t offset) | |
SGVector (index_t len, bool ref_counting=true) | |
SGVector (const SGVector &orig) | |
SGVector (EigenVectorXt &vec) | |
SGVector (EigenRowVectorXt &vec) | |
operator EigenVectorXtMap () const | |
operator EigenRowVectorXtMap () const | |
void | set_const (T const_elem) |
SGVector< T > | get () |
void | set (SGVector< T > orig) |
virtual | ~SGVector () |
int32_t | size () const |
operator T * () | |
void | zero () |
void | range_fill (T start=0) |
void | random (T min_value, T max_value) |
index_t | find_position_to_insert (T element) |
SGVector< T > | clone () const |
const T & | get_element (index_t index) |
void | set_element (const T &p_element, index_t index) |
void | resize_vector (int32_t n) |
const T & | operator[] (uint64_t index) const |
const T & | operator[] (int64_t index) const |
const T & | operator[] (uint32_t index) const |
const T & | operator[] (int32_t index) const |
T & | operator[] (uint64_t index) |
T & | operator[] (int64_t index) |
T & | operator[] (uint32_t index) |
T & | operator[] (int32_t index) |
void | add (const SGVector< T > x) |
void | add (const SGSparseVector< T > &x) |
void | add (const T x) |
SGVector< T > | operator+ (SGVector< T > x) |
SGVector< T > | operator+= (SGVector< T > x) |
SGVector< T > | operator+= (SGSparseVector< T > &x) |
bool | equals (SGVector< T > &other) |
T | product () |
Return product(vec) More... | |
void | display_size () const |
void | display_vector (const char *name="vector", const char *prefix="") const |
SGVector< index_t > | find (T elem) |
template<typename Predicate > | |
SGVector< index_t > | find_if (Predicate p) |
void | scale (T alpha) |
Scale vector inplace. More... | |
void | load (CFile *loader) |
void | save (CFile *saver) |
SGVector< float64_t > | get_real () |
SGVector< float64_t > | get_imag () |
template<> | |
void | zero () |
template<> | |
index_t | find_position_to_insert (complex128_t element) |
template<> | |
void | range_fill_vector (complex128_t *vec, int32_t len, complex128_t start) |
template<> | |
void | display_vector (const bool *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const uint8_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const int8_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const uint16_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const int16_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const int32_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const uint32_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const int64_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const uint64_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const float32_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const float64_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const floatmax_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | display_vector (const complex128_t *vector, int32_t n, const char *name, const char *prefix) |
template<> | |
void | vec1_plus_scalar_times_vec2 (float64_t *vec1, float64_t scalar, const float64_t *vec2, int32_t n) |
template<> | |
void | vec1_plus_scalar_times_vec2 (float32_t *vec1, float32_t scalar, const float32_t *vec2, int32_t n) |
template<> | |
void | random_vector (complex128_t *vec, int32_t len, complex128_t min_value, complex128_t max_value) |
template<> | |
bool | twonorm (const bool *x, int32_t len) |
template<> | |
char | twonorm (const char *x, int32_t len) |
template<> | |
int8_t | twonorm (const int8_t *x, int32_t len) |
template<> | |
uint8_t | twonorm (const uint8_t *x, int32_t len) |
template<> | |
int16_t | twonorm (const int16_t *x, int32_t len) |
template<> | |
uint16_t | twonorm (const uint16_t *x, int32_t len) |
template<> | |
int32_t | twonorm (const int32_t *x, int32_t len) |
template<> | |
uint32_t | twonorm (const uint32_t *x, int32_t len) |
template<> | |
int64_t | twonorm (const int64_t *x, int32_t len) |
template<> | |
uint64_t | twonorm (const uint64_t *x, int32_t len) |
template<> | |
float32_t | twonorm (const float32_t *x, int32_t len) |
template<> | |
float64_t | twonorm (const float64_t *v, int32_t n) |
template<> | |
floatmax_t | twonorm (const floatmax_t *x, int32_t len) |
template<> | |
complex128_t | twonorm (const complex128_t *x, int32_t len) |
template<> | |
complex128_t | qsq (complex128_t *x, int32_t len, float64_t q) |
template<> | |
complex128_t | qnorm (complex128_t *x, int32_t len, float64_t q) |
template<> | |
float64_t | sum_abs (float64_t *vec, int32_t len) |
template<> | |
float32_t | sum_abs (float32_t *vec, int32_t len) |
template<> | |
int32_t | unique (complex128_t *output, int32_t size) |
template<> | |
void | scale_vector (float64_t alpha, float64_t *vec, int32_t len) |
template<> | |
void | scale_vector (float32_t alpha, float32_t *vec, int32_t len) |
template<> | |
void | load (CFile *loader) |
template<> | |
void | save (CFile *saver) |
int32_t | ref_count () |
Static Public Member Functions | |
static T * | clone_vector (const T *vec, int32_t len) |
static void | fill_vector (T *vec, int32_t len, T value) |
static void | range_fill_vector (T *vec, int32_t len, T start=0) |
static void | random_vector (T *vec, int32_t len, T min_value, T max_value) |
static T | twonorm (const T *x, int32_t len) |
|| x ||_2 More... | |
static float64_t | onenorm (T *x, int32_t len) |
|| x ||_1 More... | |
static T | qsq (T *x, int32_t len, float64_t q) |
|| x ||_q^q More... | |
static T | qnorm (T *x, int32_t len, float64_t q) |
|| x ||_q More... | |
static void | vec1_plus_scalar_times_vec2 (T *vec1, const T scalar, const T *vec2, int32_t n) |
x=x+alpha*y More... | |
static void | vector_multiply (T *target, const T *v1, const T *v2, int32_t len) |
Compute vector multiplication. More... | |
static void | add (T *target, T alpha, const T *v1, T beta, const T *v2, int32_t len) |
target=alpha*vec1 + beta*vec2 More... | |
static void | add_scalar (T alpha, T *vec, int32_t len) |
Add scalar to vector inplace. More... | |
static void | scale_vector (T alpha, T *vec, int32_t len) |
Scale vector inplace. More... | |
static T | sum (T *vec, int32_t len) |
Return sum(vec) More... | |
static T | sum (SGVector< T > vec) |
Return sum(vec) More... | |
static T | product (T *vec, int32_t len) |
Return the product of the vectors elements. More... | |
static T | sum_abs (T *vec, int32_t len) |
return sum(abs(vec)) More... | |
static int32_t | unique (T *output, int32_t size) |
static void | display_vector (const T *vector, int32_t n, const char *name="vector", const char *prefix="") |
Display vector (useful for debugging) More... | |
static void | display_vector (const SGVector< T >, const char *name="vector", const char *prefix="") |
Display vector (useful for debugging) More... | |
static SGMatrix< T > | convert_to_matrix (SGVector< T > vector, index_t nrows, index_t ncols, bool fortran_order) |
static void | convert_to_matrix (T *&matrix, index_t nrows, index_t ncols, const T *vector, int32_t vlen, bool fortran_order) |
Public Attributes | |
T * | vector |
index_t | vlen |
Protected Member Functions | |
virtual void | copy_data (const SGReferencedData &orig) |
virtual void | init_data () |
virtual void | free_data () |
void | copy_refcount (const SGReferencedData &orig) |
int32_t | ref () |
int32_t | unref () |
typedef T Scalar |
The scalar type of the vector
Definition at line 47 of file SGVector.h.
SGVector | ( | ) |
Default constructor
Definition at line 73 of file SGVector.cpp.
Constructor for setting params
Definition at line 79 of file SGVector.cpp.
Wraps a vector around an existing memory segment with an offset
Definition at line 56 of file SGVector.h.
Constructor to create new vector in memory
Definition at line 85 of file SGVector.cpp.
Copy constructor
Definition at line 92 of file SGVector.cpp.
SGVector | ( | EigenVectorXt & | vec | ) |
Wraps a matrix around the data of an Eigen3 column vector
Definition at line 111 of file SGVector.cpp.
SGVector | ( | EigenRowVectorXt & | vec | ) |
Wraps a matrix around the data of an Eigen3 row vector
Definition at line 118 of file SGVector.cpp.
|
virtual |
Empty destructor
Definition at line 104 of file SGVector.cpp.
void add | ( | const SGVector< T > | x | ) |
Add vector to current vector
x | add vector x to current vector |
Definition at line 281 of file SGVector.cpp.
void add | ( | const SGSparseVector< T > & | x | ) |
Add sparse vector to current vector
x | add sparse vector x to current vector |
Definition at line 300 of file SGVector.cpp.
void add | ( | const T | x | ) |
Add scalar to current vector
x | add vector x to current vector |
Definition at line 291 of file SGVector.cpp.
|
static |
target=alpha*vec1 + beta*vec2
Definition at line 322 of file SGVector.h.
|
static |
Add scalar to vector inplace.
Definition at line 331 of file SGVector.h.
SGVector< T > clone | ( | ) | const |
Clone vector
Definition at line 209 of file SGVector.cpp.
|
static |
Clone vector
Definition at line 215 of file SGVector.cpp.
|
static |
Create SGMatrix from linear vector
vector | source vector |
nrows | number of rows |
ncols | number of cols |
fortran_order | order of stroing matrix in linear vector true - column-major order (FORTRAN, MATLAB, R) false - row-major order (C, Python) |
Definition at line 901 of file SGVector.cpp.
|
static |
Create matrix from linear vector
matrix | destination memory |
nrows | number of rows |
ncols | number of cols |
vector | source vector |
vlen | lenght of source vector |
fortran_order | order of stroing matrix in linear vector true - column-major order (FORTRAN, MATLAB, R) false - row-major order (C, Python) |
Definition at line 915 of file SGVector.cpp.
|
protectedvirtual |
needs to be overridden to copy data
Implements SGReferencedData.
Definition at line 320 of file SGVector.cpp.
|
protectedinherited |
copy refcount
Definition at line 55 of file SGReferencedData.cpp.
void display_size | ( | ) | const |
Display array size
Definition at line 314 of file SGVector.cpp.
void display_vector | ( | const bool * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 371 of file SGVector.cpp.
void display_vector | ( | const char * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 382 of file SGVector.cpp.
void display_vector | ( | const char * | name = "vector" , |
const char * | prefix = "" |
||
) | const |
Display vector
Definition at line 357 of file SGVector.cpp.
|
static |
Display vector (useful for debugging)
void display_vector | ( | const uint8_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 393 of file SGVector.cpp.
|
static |
Display vector (useful for debugging)
Definition at line 364 of file SGVector.cpp.
void display_vector | ( | const int8_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 404 of file SGVector.cpp.
void display_vector | ( | const uint16_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 415 of file SGVector.cpp.
void display_vector | ( | const int16_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 426 of file SGVector.cpp.
void display_vector | ( | const int32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 437 of file SGVector.cpp.
void display_vector | ( | const uint32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 448 of file SGVector.cpp.
void display_vector | ( | const int64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 460 of file SGVector.cpp.
void display_vector | ( | const uint64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 471 of file SGVector.cpp.
void display_vector | ( | const float32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 482 of file SGVector.cpp.
void display_vector | ( | const float64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 493 of file SGVector.cpp.
void display_vector | ( | const floatmax_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 504 of file SGVector.cpp.
void display_vector | ( | const complex128_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 518 of file SGVector.cpp.
bool equals | ( | SGVector< T > & | other | ) |
Equals method up to precision for vectors (element-wise)
other | vector to compare with |
Definition at line 342 of file SGVector.cpp.
|
static |
Fill vector
Definition at line 223 of file SGVector.cpp.
Find index for occurance of an element
elem | the element to find |
Definition at line 810 of file SGVector.cpp.
Find index for elements where the predicate returns true
p | the predicate, it should accept the value of the element and return a bool |
Definition at line 406 of file SGVector.h.
index_t find_position_to_insert | ( | T | element | ) |
For a sorted (ascending) vector, gets the index after the first element that is smaller than the given one
element | element to find index for |
Definition at line 189 of file SGVector.cpp.
index_t find_position_to_insert | ( | complex128_t | element | ) |
Definition at line 201 of file SGVector.cpp.
|
protectedvirtual |
needs to be overridden to free data
Implements SGReferencedData.
Definition at line 334 of file SGVector.cpp.
SGVector<T> get | ( | ) |
Get the vector (no copying is done here)
Definition at line 92 of file SGVector.h.
const T & get_element | ( | index_t | index | ) |
Get vector element at index
index | index |
Definition at line 245 of file SGVector.cpp.
Imag part of a complex128_t vector
Definition at line 892 of file SGVector.cpp.
Real part of a complex128_t vector
Definition at line 884 of file SGVector.cpp.
|
protectedvirtual |
needs to be overridden to initialize empty data
Implements SGReferencedData.
Definition at line 327 of file SGVector.cpp.
void load | ( | CFile * | loader | ) |
Load vector from file
loader | File object via which to load data |
Definition at line 849 of file SGVector.cpp.
void load | ( | CFile * | loader | ) |
Definition at line 864 of file SGVector.cpp.
|
static |
|| x ||_1
Definition at line 716 of file SGVector.cpp.
operator EigenRowVectorXtMap | ( | ) | const |
Wraps an Eigen3 row vector around the data of this matrix
Definition at line 131 of file SGVector.cpp.
operator EigenVectorXtMap | ( | ) | const |
Wraps an Eigen3 column vector around the data of this matrix
Definition at line 125 of file SGVector.cpp.
operator T * | ( | ) |
Cast to pointer
Definition at line 111 of file SGVector.h.
Inplace addition operator
Definition at line 276 of file SGVector.h.
SGVector<T> operator+= | ( | SGSparseVector< T > & | x | ) |
Inplace addition operator for sparse vector
Definition at line 283 of file SGVector.h.
const T& operator[] | ( | uint64_t | index | ) | const |
Operator overload for vector read only access
index | dimension to access |
Definition at line 179 of file SGVector.h.
const T& operator[] | ( | int64_t | index | ) | const |
Operator overload for vector read only access
index | dimension to access |
Definition at line 189 of file SGVector.h.
const T& operator[] | ( | uint32_t | index | ) | const |
Operator overload for vector read only access
index | dimension to access |
Definition at line 199 of file SGVector.h.
const T& operator[] | ( | int32_t | index | ) | const |
Operator overload for vector read only access
index | dimension to access |
Definition at line 209 of file SGVector.h.
T& operator[] | ( | uint64_t | index | ) |
Operator overload for vector r/w access
index | dimension to access |
Definition at line 219 of file SGVector.h.
T& operator[] | ( | int64_t | index | ) |
Operator overload for vector r/w access
index | dimension to access |
Definition at line 229 of file SGVector.h.
T& operator[] | ( | uint32_t | index | ) |
Operator overload for vector r/w access
index | dimension to access |
Definition at line 239 of file SGVector.h.
T& operator[] | ( | int32_t | index | ) |
Operator overload for vector r/w access
index | dimension to access |
Definition at line 249 of file SGVector.h.
|
static |
Return the product of the vectors elements.
Definition at line 357 of file SGVector.h.
T product | ( | ) |
Return product(vec)
Definition at line 367 of file SGVector.h.
|
static |
|| x ||_q
Definition at line 745 of file SGVector.cpp.
complex128_t qnorm | ( | complex128_t * | x, |
int32_t | len, | ||
float64_t | q | ||
) |
Definition at line 752 of file SGVector.cpp.
|
static |
|| x ||_q^q
Definition at line 727 of file SGVector.cpp.
complex128_t qsq | ( | complex128_t * | x, |
int32_t | len, | ||
float64_t | q | ||
) |
Definition at line 737 of file SGVector.cpp.
void random | ( | T | min_value, |
T | max_value | ||
) |
Create random vector
min_value | [min_value,max_value] |
max_value |
Definition at line 181 of file SGVector.cpp.
|
static |
Random vector
Definition at line 566 of file SGVector.cpp.
void random_vector | ( | complex128_t * | vec, |
int32_t | len, | ||
complex128_t | min_value, | ||
complex128_t | max_value | ||
) |
Definition at line 573 of file SGVector.cpp.
void range_fill | ( | T | start = 0 | ) |
Range fill a vector with start...start+len-1
start | - value to be assigned to first element of vector |
Definition at line 173 of file SGVector.cpp.
|
static |
Range fill vector
Definition at line 230 of file SGVector.cpp.
void range_fill_vector | ( | complex128_t * | vec, |
int32_t | len, | ||
complex128_t | start | ||
) |
Definition at line 237 of file SGVector.cpp.
|
protectedinherited |
increase reference counter
Definition at line 64 of file SGReferencedData.cpp.
|
inherited |
display reference counter
Definition at line 41 of file SGReferencedData.cpp.
void resize_vector | ( | int32_t | n | ) |
Resize vector
n | new size |
Definition at line 259 of file SGVector.cpp.
void save | ( | CFile * | saver | ) |
Save vector to file
saver | File object via which to save data |
Definition at line 869 of file SGVector.cpp.
void save | ( | CFile * | saver | ) |
Definition at line 879 of file SGVector.cpp.
void scale | ( | T | alpha | ) |
Scale vector inplace.
Definition at line 844 of file SGVector.cpp.
|
static |
Scale vector inplace.
Definition at line 823 of file SGVector.cpp.
Definition at line 831 of file SGVector.cpp.
Definition at line 837 of file SGVector.cpp.
void set | ( | SGVector< T > | orig | ) |
Wrapper for the copy constructor useful for SWIG interfaces
orig | vector to set |
Definition at line 98 of file SGVector.cpp.
void set_const | ( | T | const_elem | ) |
Set vector to a constant
const_elem | - value to set vector to |
Definition at line 152 of file SGVector.cpp.
void set_element | ( | const T & | p_element, |
index_t | index | ||
) |
Set vector element at index 'index' return false in case of trouble
p_element | vector element to set |
index | index |
Definition at line 252 of file SGVector.cpp.
int32_t size | ( | ) | const |
Size
Definition at line 108 of file SGVector.h.
|
static |
Return sum(vec)
Definition at line 341 of file SGVector.h.
|
static |
Return sum(vec)
Definition at line 351 of file SGVector.h.
|
static |
Definition at line 771 of file SGVector.cpp.
Definition at line 779 of file SGVector.cpp.
|
static |
|| x ||_2
bool twonorm | ( | const bool * | x, |
int32_t | len | ||
) |
Definition at line 580 of file SGVector.cpp.
char twonorm | ( | const char * | x, |
int32_t | len | ||
) |
Definition at line 587 of file SGVector.cpp.
int8_t twonorm | ( | const int8_t * | x, |
int32_t | len | ||
) |
Definition at line 594 of file SGVector.cpp.
uint8_t twonorm | ( | const uint8_t * | x, |
int32_t | len | ||
) |
Definition at line 604 of file SGVector.cpp.
int16_t twonorm | ( | const int16_t * | x, |
int32_t | len | ||
) |
Definition at line 614 of file SGVector.cpp.
uint16_t twonorm | ( | const uint16_t * | x, |
int32_t | len | ||
) |
Definition at line 624 of file SGVector.cpp.
int32_t twonorm | ( | const int32_t * | x, |
int32_t | len | ||
) |
Definition at line 634 of file SGVector.cpp.
uint32_t twonorm | ( | const uint32_t * | x, |
int32_t | len | ||
) |
Definition at line 644 of file SGVector.cpp.
int64_t twonorm | ( | const int64_t * | x, |
int32_t | len | ||
) |
Definition at line 654 of file SGVector.cpp.
uint64_t twonorm | ( | const uint64_t * | x, |
int32_t | len | ||
) |
Definition at line 664 of file SGVector.cpp.
Definition at line 674 of file SGVector.cpp.
Definition at line 684 of file SGVector.cpp.
floatmax_t twonorm | ( | const floatmax_t * | x, |
int32_t | len | ||
) |
Definition at line 696 of file SGVector.cpp.
complex128_t twonorm | ( | const complex128_t * | x, |
int32_t | len | ||
) |
Definition at line 706 of file SGVector.cpp.
|
static |
Performs a inplace unique of a vector of type T using quicksort returns the new number of elements
Definition at line 788 of file SGVector.cpp.
int32_t unique | ( | complex128_t * | output, |
int32_t | size | ||
) |
Definition at line 802 of file SGVector.cpp.
|
protectedinherited |
decrement reference counter and deallocate object if refcount is zero before or after decrementing it
Definition at line 84 of file SGReferencedData.cpp.
|
static |
x=x+alpha*y
Definition at line 532 of file SGVector.cpp.
void vec1_plus_scalar_times_vec2 | ( | float64_t * | vec1, |
float64_t | scalar, | ||
const float64_t * | vec2, | ||
int32_t | n | ||
) |
Definition at line 540 of file SGVector.cpp.
void vec1_plus_scalar_times_vec2 | ( | float32_t * | vec1, |
float32_t | scalar, | ||
const float32_t * | vec2, | ||
int32_t | n | ||
) |
Definition at line 553 of file SGVector.cpp.
|
static |
Compute vector multiplication.
Definition at line 313 of file SGVector.h.
void zero | ( | ) |
Fill vector with zeros
Definition at line 138 of file SGVector.cpp.
void zero | ( | ) |
Definition at line 145 of file SGVector.cpp.
T* vector |
vector
Definition at line 479 of file SGVector.h.
index_t vlen |
length of vector
Definition at line 481 of file SGVector.h.