SHOGUN
v2.0.0
|
shogun vector
Definition at line 24 of file SGVector.h.
Classes | |
struct | IndexSorter |
Public Member Functions | |
SGVector () | |
SGVector (T *v, index_t len, bool ref_counting=true) | |
SGVector (index_t len, bool ref_counting=true) | |
SGVector (const SGVector &orig) | |
virtual | ~SGVector () |
int32_t | size () const |
operator T * () | |
void | zero () |
void | set_const (T const_elem) |
void | range_fill (T start=0) |
void | random (T min_value, T max_value) |
void | randperm () |
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[] (index_t index) const |
T & | operator[] (index_t index) |
void | add (const SGVector< T > x) |
void | add (const T x) |
SGVector< T > | operator+ (SGVector< T > x) |
SGVector< T > | operator+= (SGVector< T > x) |
void | permute () |
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) |
SGVector< index_t > | sorted_index () |
void | scale (T alpha) |
scale vector inplace | |
float64_t | mean () const |
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<> | |
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) |
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 void | randperm (T *perm, int32_t n) |
static void | permute (T *vec, int32_t n) |
static void | permute_vector (SGVector< T > vec) |
static void | resize (T *&data, int64_t old_size, int64_t new_size) |
static T | twonorm (const T *x, int32_t len) |
|| x ||_2 | |
static float64_t | onenorm (T *x, int32_t len) |
|| x ||_1 | |
static T | qsq (T *x, int32_t len, float64_t q) |
|| x ||_q^q | |
static T | qnorm (T *x, int32_t len, float64_t q) |
|| x ||_q | |
static void | vec1_plus_scalar_times_vec2 (float64_t *vec1, const float64_t scalar, const float64_t *vec2, int32_t n) |
x=x+alpha*y (blas optimized) | |
static void | vec1_plus_scalar_times_vec2 (float32_t *vec1, const float32_t scalar, const float32_t *vec2, int32_t n) |
x=x+alpha*y (blas optimized) | |
static float64_t | dot (const bool *v1, const bool *v2, int32_t n) |
compute dot product between v1 and v2 (blas optimized) | |
static floatmax_t | dot (const floatmax_t *v1, const floatmax_t *v2, int32_t n) |
compute dot product between v1 and v2 (blas optimized) | |
static float64_t | dot (const float64_t *v1, const float64_t *v2, int32_t n) |
compute dot product between v1 and v2 (blas optimized) | |
static float32_t | dot (const float32_t *v1, const float32_t *v2, int32_t n) |
compute dot product between v1 and v2 (blas optimized) | |
static float64_t | dot (const uint64_t *v1, const uint64_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 64bit unsigned ints) | |
static float64_t | dot (const int64_t *v1, const int64_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 64bit ints) | |
static float64_t | dot (const int32_t *v1, const int32_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 32bit ints) | |
static float64_t | dot (const uint32_t *v1, const uint32_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 32bit unsigned ints) | |
static float64_t | dot (const uint16_t *v1, const uint16_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 16bit unsigned ints) | |
static float64_t | dot (const int16_t *v1, const int16_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 16bit unsigned ints) | |
static float64_t | dot (const char *v1, const char *v2, int32_t n) |
compute dot product between v1 and v2 (for 8bit (un)signed ints) | |
static float64_t | dot (const uint8_t *v1, const uint8_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 8bit (un)signed ints) | |
static float64_t | dot (const int8_t *v1, const int8_t *v2, int32_t n) |
compute dot product between v1 and v2 (for 8bit (un)signed ints) | |
static float64_t | dot (const float64_t *v1, const char *v2, int32_t n) |
compute dot product between v1 and v2 | |
static void | vector_multiply (T *target, const T *v1, const T *v2, int32_t len) |
compute vector multiplication | |
static void | add (T *target, T alpha, const T *v1, T beta, const T *v2, int32_t len) |
target=alpha*vec1 + beta*vec2 | |
static void | add_scalar (T alpha, T *vec, int32_t len) |
add scalar to vector inplace | |
static void | scale_vector (T alpha, T *vec, int32_t len) |
scale vector inplace | |
static T | sum (T *vec, int32_t len) |
return sum(vec) | |
static T | sum (SGVector< T > vec) |
return sum(vec) | |
static T | min (T *vec, int32_t len) |
static T | max (T *vec, int32_t len) |
static int32_t | arg_max (T *vec, int32_t inc, int32_t len, T *maxv_ptr=NULL) |
return arg_max(vec) | |
static int32_t | arg_min (T *vec, int32_t inc, int32_t len, T *minv_ptr=NULL) |
return arg_min(vec) | |
static T | sum_abs (T *vec, int32_t len) |
return sum(abs(vec)) | |
static bool | fequal (T x, T y, float64_t precision=1e-6) |
return sum(abs(vec)) | |
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) | |
static void | display_vector (const SGVector< T >, const char *name="vector", const char *prefix="") |
display vector (useful for debugging) |
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 () |
SGVector | ( | ) |
default constructor
Definition at line 24 of file SGVector.cpp.
constructor for setting params
Definition at line 29 of file SGVector.cpp.
constructor to create new vector in memory
Definition at line 34 of file SGVector.cpp.
copy constructor
Definition at line 40 of file SGVector.cpp.
|
virtual |
empty destructor
Definition at line 45 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 103 of file SGVector.cpp.
void add | ( | const T | x | ) |
add scalar to current vector
x | add vector x to current vector |
Definition at line 112 of file SGVector.cpp.
|
static |
target=alpha*vec1 + beta*vec2
Definition at line 368 of file SGVector.h.
|
static |
add scalar to vector inplace
Definition at line 377 of file SGVector.h.
|
static |
return arg_max(vec)
Definition at line 414 of file SGVector.h.
|
static |
return arg_min(vec)
Definition at line 434 of file SGVector.h.
SGVector< T > clone | ( | ) | const |
clone vector
Definition at line 77 of file SGVector.cpp.
|
static |
clone vector
Definition at line 77 of file SGVector.h.
|
protectedvirtual |
needs to be overridden to copy data
Implements SGReferencedData.
Definition at line 125 of file SGVector.cpp.
|
protectedinherited |
copy refcount
Definition at line 102 of file SGReferencedData.h.
void display_size | ( | ) | const |
display array size
Definition at line 120 of file SGVector.cpp.
void display_vector | ( | const bool * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 158 of file SGVector.cpp.
void display_vector | ( | const char * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 169 of file SGVector.cpp.
void display_vector | ( | const uint8_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 180 of file SGVector.cpp.
void display_vector | ( | const int8_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 191 of file SGVector.cpp.
void display_vector | ( | const uint16_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 202 of file SGVector.cpp.
void display_vector | ( | const int16_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 213 of file SGVector.cpp.
void display_vector | ( | const int32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 224 of file SGVector.cpp.
void display_vector | ( | const uint32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 235 of file SGVector.cpp.
void display_vector | ( | const int64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 247 of file SGVector.cpp.
void display_vector | ( | const uint64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 258 of file SGVector.cpp.
void display_vector | ( | const float32_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 269 of file SGVector.cpp.
void display_vector | ( | const float64_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 280 of file SGVector.cpp.
void display_vector | ( | const floatmax_t * | vector, |
int32_t | n, | ||
const char * | name, | ||
const char * | prefix | ||
) |
Definition at line 291 of file SGVector.cpp.
void display_vector | ( | const char * | name = "vector" , |
const char * | prefix = "" |
||
) | const |
display vector
Definition at line 144 of file SGVector.cpp.
|
static |
display vector (useful for debugging)
|
static |
display vector (useful for debugging)
Definition at line 151 of file SGVector.cpp.
|
static |
compute dot product between v1 and v2 (blas optimized)
Definition at line 225 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (blas optimized)
Definition at line 234 of file SGVector.h.
compute dot product between v1 and v2 (blas optimized)
Definition at line 331 of file SGVector.cpp.
compute dot product between v1 and v2 (blas optimized)
Definition at line 351 of file SGVector.cpp.
|
static |
compute dot product between v1 and v2 (for 64bit unsigned ints)
Definition at line 250 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 64bit ints)
Definition at line 260 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 32bit ints)
Definition at line 271 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 32bit unsigned ints)
Definition at line 282 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 16bit unsigned ints)
Definition at line 293 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 16bit unsigned ints)
Definition at line 304 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 8bit (un)signed ints)
Definition at line 315 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 8bit (un)signed ints)
Definition at line 326 of file SGVector.h.
|
static |
compute dot product between v1 and v2 (for 8bit (un)signed ints)
Definition at line 337 of file SGVector.h.
compute dot product between v1 and v2
Definition at line 348 of file SGVector.h.
|
static |
return sum(abs(vec))
Definition at line 605 of file SGVector.cpp.
|
static |
fill vector
Definition at line 85 of file SGVector.h.
find index for occurance of an element
elem | the element to find |
Definition at line 625 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 490 of file SGVector.h.
|
protectedvirtual |
needs to be overridden to free data
Implements SGReferencedData.
Definition at line 137 of file SGVector.cpp.
const T & get_element | ( | index_t | index | ) |
get vector element at index
index | index |
Definition at line 82 of file SGVector.cpp.
|
protectedvirtual |
needs to be overridden to initialize empty data
Implements SGReferencedData.
Definition at line 131 of file SGVector.cpp.
|
static |
Definition at line 581 of file SGVector.cpp.
float64_t mean | ( | ) | const |
compute the mean value of the vector
Definition at line 642 of file SGVector.cpp.
|
static |
Definition at line 568 of file SGVector.cpp.
|
static |
|| x ||_1
Definition at line 538 of file SGVector.cpp.
operator T * | ( | ) |
cast to pointer
Definition at line 46 of file SGVector.h.
addition operator
Definition at line 162 of file SGVector.h.
inplace addition operator
Definition at line 173 of file SGVector.h.
const T& operator[] | ( | index_t | index | ) | const |
operator overload for vector read only access
index | dimension to access |
Definition at line 134 of file SGVector.h.
T& operator[] | ( | index_t | index | ) |
operator overload for vector r/w access
index | dimension to access |
Definition at line 144 of file SGVector.h.
|
static |
permute
Definition at line 389 of file SGVector.cpp.
void permute | ( | ) |
create a random permutation in place
Definition at line 395 of file SGVector.cpp.
|
static |
permute vector
Definition at line 401 of file SGVector.cpp.
|
static |
|| x ||_q
Definition at line 560 of file SGVector.cpp.
|
static |
|| x ||_q^q
Definition at line 549 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 67 of file SGVector.cpp.
|
static |
random vector
Definition at line 372 of file SGVector.cpp.
void randperm | ( | ) |
random permutate
Definition at line 72 of file SGVector.cpp.
|
static |
random permatutaion
Definition at line 380 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 62 of file SGVector.cpp.
|
static |
range fill vector
Definition at line 92 of file SGVector.h.
|
protectedinherited |
increase reference counter
Definition at line 111 of file SGReferencedData.h.
|
inherited |
|
static |
resize array from old_size to new_size (keeping as much array content as possible intact)
Definition at line 188 of file SGVector.h.
void resize_vector | ( | int32_t | n | ) |
resize vector
n | new size |
Definition at line 94 of file SGVector.cpp.
void scale | ( | T | alpha | ) |
scale vector inplace
Definition at line 637 of file SGVector.cpp.
|
static |
scale vector inplace
Definition at line 384 of file SGVector.h.
void set_const | ( | T | const_elem | ) |
set vector to a constant
const_elem | - value to set vector to |
Definition at line 56 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 88 of file SGVector.cpp.
int32_t size | ( | ) | const |
size
Definition at line 43 of file SGVector.h.
get sorted index.
idx = v.sorted_index() is similar to Matlab [~, idx] = sort(v)
Definition at line 524 of file SGVector.h.
|
static |
return sum(vec)
Definition at line 391 of file SGVector.h.
|
static |
return sum(vec)
Definition at line 401 of file SGVector.h.
|
static |
return sum(abs(vec))
Definition at line 594 of file SGVector.cpp.
|
static |
|| x ||_2
bool twonorm | ( | const bool * | x, |
int32_t | len | ||
) |
Definition at line 411 of file SGVector.cpp.
char twonorm | ( | const char * | x, |
int32_t | len | ||
) |
Definition at line 418 of file SGVector.cpp.
int8_t twonorm | ( | const int8_t * | x, |
int32_t | len | ||
) |
Definition at line 425 of file SGVector.cpp.
uint8_t twonorm | ( | const uint8_t * | x, |
int32_t | len | ||
) |
Definition at line 435 of file SGVector.cpp.
int16_t twonorm | ( | const int16_t * | x, |
int32_t | len | ||
) |
Definition at line 445 of file SGVector.cpp.
uint16_t twonorm | ( | const uint16_t * | x, |
int32_t | len | ||
) |
Definition at line 455 of file SGVector.cpp.
int32_t twonorm | ( | const int32_t * | x, |
int32_t | len | ||
) |
Definition at line 465 of file SGVector.cpp.
uint32_t twonorm | ( | const uint32_t * | x, |
int32_t | len | ||
) |
Definition at line 475 of file SGVector.cpp.
int64_t twonorm | ( | const int64_t * | x, |
int32_t | len | ||
) |
Definition at line 485 of file SGVector.cpp.
uint64_t twonorm | ( | const uint64_t * | x, |
int32_t | len | ||
) |
Definition at line 495 of file SGVector.cpp.
Definition at line 505 of file SGVector.cpp.
Definition at line 515 of file SGVector.cpp.
floatmax_t twonorm | ( | const floatmax_t * | x, |
int32_t | len | ||
) |
Definition at line 527 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 611 of file SGVector.cpp.
|
protectedinherited |
decrement reference counter and deallocate object if refcount is zero before or after decrementing it
Definition at line 136 of file SGReferencedData.h.
|
static |
x=x+alpha*y (blas optimized)
Definition at line 305 of file SGVector.cpp.
|
static |
x=x+alpha*y (blas optimized)
Definition at line 318 of file SGVector.cpp.
|
static |
compute vector multiplication
Definition at line 359 of file SGVector.h.
void zero | ( | ) |
fill vector with zeros
Definition at line 50 of file SGVector.cpp.
T* vector |
vector
Definition at line 557 of file SGVector.h.
index_t vlen |
length of vector
Definition at line 559 of file SGVector.h.