SHOGUN
v3.0.0
|
template class SGSparseVector The assumtion is that the stored SGSparseVectorEntry<T>* vector is ordered by SGSparseVectorEntry.feat_index in non-decreasing order. This has to be assured by the user of the class.
Definition at line 39 of file SGSparseVector.h.
Public Member Functions | |
SGSparseVector () | |
SGSparseVector (SGSparseVectorEntry< T > *feats, index_t num_entries, bool ref_counting=true) | |
SGSparseVector (index_t num_entries, bool ref_counting=true) | |
SGSparseVector (const SGSparseVector &orig) | |
virtual | ~SGSparseVector () |
T | dense_dot (T alpha, T *vec, int32_t dim, T b) |
template<typename ST > | |
T | dense_dot (SGVector< ST > vec) |
T | sparse_dot (const SGSparseVector< T > &v) |
SGSparseVector< T > | get () |
int32_t | get_num_dimensions () |
void | sort_features (bool stable_pointer=false) |
T | get_feature (int32_t index) |
SGVector< T > | get_dense (int32_t dimension) |
SGVector< T > | get_dense () |
SGSparseVector< T > | clone () const |
void | load (CFile *loader) |
void | save (CFile *saver) |
void | display_vector (const char *name="vector", const char *prefix="") |
template<> | |
void | load (CFile *loader) |
template<> | |
void | save (CFile *saver) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
template<> | |
void | display_vector (const char *name, const char *prefix) |
int32_t | ref_count () |
Static Public Member Functions | |
static T | sparse_dot (const SGSparseVector< T > &a, const SGSparseVector< T > &b) |
Public Attributes | |
index_t | num_feat_entries |
SGSparseVectorEntry< T > * | features |
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 () |
Static Protected Member Functions | |
static int32_t | cmp_dot_prod_symmetry_fast (index_t alen, index_t blen) |
static T | dot_prod_asymmetric (const SGSparseVector< T > &a, const SGSparseVector< T > &b) |
static T | dot_prod_symmetric (const SGSparseVector< T > &a, const SGSparseVector< T > &b) |
SGSparseVector | ( | ) |
default constructor
Definition at line 9 of file SGSparseVector.cpp.
SGSparseVector | ( | SGSparseVectorEntry< T > * | feats, |
index_t | num_entries, | ||
bool | ref_counting = true |
||
) |
constructor for setting params
feats | vector of SGSparseVectorEntry ordered by SGSparseVectorEntry.feat_index in non-decreasing order |
num_entries | number of elements in feats vector |
ref_counting | use reference counting |
Definition at line 15 of file SGSparseVector.cpp.
SGSparseVector | ( | index_t | num_entries, |
bool | ref_counting = true |
||
) |
constructor to create new vector in memory
Definition at line 23 of file SGSparseVector.cpp.
SGSparseVector | ( | const SGSparseVector< T > & | orig | ) |
copy constructor
Definition at line 31 of file SGSparseVector.cpp.
|
virtual |
Definition at line 38 of file SGSparseVector.cpp.
SGSparseVector< T > clone | ( | ) | const |
clone vector
Definition at line 269 of file SGSparseVector.cpp.
helper function to compute dot product
determines whether symmetric (similar number of non-zero elements in both sparse vectors) or asymetric (logarithmically more elements in one vector) dot product computation routine shall be taken
alen | length of vector a |
blen | length of vector b |
Definition at line 329 of file SGSparseVector.cpp.
|
protectedvirtual |
needs to be overridden to copy data
Implements SGReferencedData.
Definition at line 308 of file SGSparseVector.cpp.
|
protectedinherited |
copy refcount
Definition at line 58 of file SGReferencedData.cpp.
T dense_dot | ( | T | alpha, |
T * | vec, | ||
int32_t | dim, | ||
T | b | ||
) |
compute the dot product between dense weights and a sparse feature vector alpha * sparse^T * w + b
possible with subset
alpha | scalar to multiply with |
vec | dense vector to compute dot product with |
dim | length of the dense vector |
b | bias |
Definition at line 44 of file SGSparseVector.cpp.
T dense_dot | ( | SGVector< ST > | vec | ) |
compute the dot product between dense weights and a sparse feature vector sparse^T * w
vec | dense vector to compute dot product with |
Definition at line 63 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name = "vector" , |
const char * | prefix = "" |
||
) |
display vector
name | vector name in output |
prefix | prepend on every entry |
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 395 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 404 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 413 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 422 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 431 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 440 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 449 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 458 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 467 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 476 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 485 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 494 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 503 of file SGSparseVector.cpp.
void display_vector | ( | const char * | name, |
const char * | prefix | ||
) |
Definition at line 512 of file SGSparseVector.cpp.
|
staticprotected |
compute dot product between vectors a and b
particularly fast if len(a) << len(b)
a | vector a |
b | vector b |
Definition at line 342 of file SGSparseVector.cpp.
|
staticprotected |
compute dot product between vectors a and b
particularly fast if len(a) ~= len(b)
a | vector a |
b | vector b |
Definition at line 360 of file SGSparseVector.cpp.
|
protectedvirtual |
needs to be overridden to free data
Implements SGReferencedData.
Definition at line 322 of file SGSparseVector.cpp.
SGSparseVector<T> get | ( | ) |
get the sparse vector (no copying is done here)
Definition at line 106 of file SGSparseVector.h.
SGVector< T > get_dense | ( | int32_t | dimension | ) |
get dense representation of given size
dimension | of requested dense vector |
Definition at line 249 of file SGSparseVector.cpp.
SGVector< T > get_dense | ( | ) |
get shortet dense representation for sparse vector
Definition at line 230 of file SGSparseVector.cpp.
T get_feature | ( | int32_t | index | ) |
get feature value for index
index |
Definition at line 216 of file SGSparseVector.cpp.
int32_t get_num_dimensions | ( | ) |
get number of dimensions
Definition at line 114 of file SGSparseVector.cpp.
|
protectedvirtual |
needs to be overridden to initialize empty data
Implements SGReferencedData.
Definition at line 315 of file SGSparseVector.cpp.
void load | ( | CFile * | loader | ) |
load vector from file
loader | File object via which to load data |
Definition at line 276 of file SGSparseVector.cpp.
void load | ( | CFile * | loader | ) |
Definition at line 296 of file SGSparseVector.cpp.
|
protectedinherited |
increase reference counter
Definition at line 67 of file SGReferencedData.cpp.
|
inherited |
display reference counter
Definition at line 44 of file SGReferencedData.cpp.
void save | ( | CFile * | saver | ) |
save vector to file
saver | File object via which to save data |
Definition at line 286 of file SGSparseVector.cpp.
void save | ( | CFile * | saver | ) |
Definition at line 302 of file SGSparseVector.cpp.
void sort_features | ( | bool | stable_pointer = false | ) |
sort features by indices (Setting stable_pointer=true to guarantee that pointer features does not change. On the other hand, stable_pointer=false can shrink the vector if possible.)
stable_pointer | (default false) enforce stable pointer |
Definition at line 132 of file SGSparseVector.cpp.
T sparse_dot | ( | const SGSparseVector< T > & | v | ) |
compute the dot product between current sparse vector and a given sparse vector. sparse_a^T * sparse_b
v | sparse vector |
Definition at line 86 of file SGSparseVector.cpp.
|
static |
compute the dot product between two sparse vectors. sparse_a^T * sparse_b
a | sparse vector |
b | sparse vector |
Definition at line 92 of file SGSparseVector.cpp.
|
protectedinherited |
decrement reference counter and deallocate object if refcount is zero before or after decrementing it
Definition at line 87 of file SGReferencedData.cpp.
SGSparseVectorEntry<T>* features |
features
Definition at line 223 of file SGSparseVector.h.
index_t num_feat_entries |
number of feature entries
Definition at line 220 of file SGSparseVector.h.