SHOGUN  3.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Static Protected Member Functions
SGSparseVector< T > Class Template Reference

Detailed Description

template<class T>
class shogun::SGSparseVector< T >

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 40 of file SGSparseVector.h.

Inheritance diagram for SGSparseVector< T >:
Inheritance graph
[legend]

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 ()
dense_dot (T alpha, T *vec, int32_t dim, T b)
template<typename ST >
dense_dot (SGVector< ST > vec)
sparse_dot (const SGSparseVector< T > &v)
SGSparseVector< T > get ()
int32_t get_num_dimensions ()
void sort_features (bool stable_pointer=false)
bool is_sorted () const
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 add_to_dense (T alpha, T *vec, int32_t dim, bool abs_val=false)
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 T dot_prod_expensive_unsorted (const SGSparseVector< T > &a, const SGSparseVector< T > &b)

Constructor & Destructor Documentation

default constructor

Definition at line 23 of file SGSparseVector.cpp.

SGSparseVector ( SGSparseVectorEntry< T > *  feats,
index_t  num_entries,
bool  ref_counting = true 
)

constructor for setting params

Parameters
featsvector of SGSparseVectorEntry ordered by SGSparseVectorEntry.feat_index in non-decreasing order
num_entriesnumber of elements in feats vector
ref_countinguse reference counting

Definition at line 29 of file SGSparseVector.cpp.

SGSparseVector ( index_t  num_entries,
bool  ref_counting = true 
)

constructor to create new vector in memory

Definition at line 37 of file SGSparseVector.cpp.

SGSparseVector ( const SGSparseVector< T > &  orig)

copy constructor

Definition at line 45 of file SGSparseVector.cpp.

~SGSparseVector ( )
virtual

Definition at line 52 of file SGSparseVector.cpp.

Member Function Documentation

void add_to_dense ( alpha,
T *  vec,
int32_t  dim,
bool  abs_val = false 
)

add a sparse feature vector onto a dense one dense += alpha*sparse

Parameters
alphascalar to multiply with
vecdense vector
dimlength of the dense vector
abs_valif true, do dense+=alpha*abs(sparse)

Definition at line 78 of file SGSparseVector.cpp.

SGSparseVector< T > clone ( ) const

clone vector

Definition at line 354 of file SGSparseVector.cpp.

void copy_data ( const SGReferencedData orig)
protectedvirtual

needs to be overridden to copy data

Implements SGReferencedData.

Definition at line 393 of file SGSparseVector.cpp.

void copy_refcount ( const SGReferencedData orig)
protectedinherited

copy refcount

Definition at line 55 of file SGReferencedData.cpp.

T dense_dot ( alpha,
T *  vec,
int32_t  dim,
b 
)

compute the dot product between dense weights and a sparse feature vector alpha * sparse^T * w + b

possible with subset

Parameters
alphascalar to multiply with
vecdense vector to compute dot product with
dimlength of the dense vector
bbias
Returns
dot product between dense weights and a sparse feature vector

Definition at line 58 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

Parameters
vecdense vector to compute dot product with
Returns
dot product between dense weights and a sparse feature vector

Definition at line 100 of file SGSparseVector.cpp.

void display_vector ( const char *  name = "vector",
const char *  prefix = "" 
)

display vector

Parameters
namevector name in output
prefixprepend on every entry
void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 438 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 451 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 464 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 477 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 490 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 516 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 529 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 542 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 555 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 568 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 581 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 594 of file SGSparseVector.cpp.

void display_vector ( const char *  name,
const char *  prefix 
)

Definition at line 607 of file SGSparseVector.cpp.

T dot_prod_expensive_unsorted ( const SGSparseVector< T > &  a,
const SGSparseVector< T > &  b 
)
staticprotected

helper function to compute dot product for unsorted sparse vectors

You should not use this at all, since computational complexity is in O(n^2)

Parameters
avector a
bvector b
Returns
dot product

Definition at line 414 of file SGSparseVector.cpp.

void free_data ( )
protectedvirtual

needs to be overridden to free data

Implements SGReferencedData.

Definition at line 407 of file SGSparseVector.cpp.

SGSparseVector<T> get ( )

get the sparse vector (no copying is done here)

Returns
the refcount increased vector

Definition at line 107 of file SGSparseVector.h.

SGVector< T > get_dense ( int32_t  dimension)

get dense representation of given size

Parameters
dimensionof requested dense vector
Returns
SGVector<T>

Definition at line 334 of file SGSparseVector.cpp.

SGVector< T > get_dense ( )

get shortet dense representation for sparse vector

Returns
SGVector<T>

Definition at line 315 of file SGSparseVector.cpp.

T get_feature ( int32_t  index)

get feature value for index

Parameters
index
Returns
value

Definition at line 298 of file SGSparseVector.cpp.

int32_t get_num_dimensions ( )

get number of dimensions

Returns
largest feature index

Definition at line 167 of file SGSparseVector.cpp.

void init_data ( )
protectedvirtual

needs to be overridden to initialize empty data

Implements SGReferencedData.

Definition at line 400 of file SGSparseVector.cpp.

bool is_sorted ( ) const

Utility function to tell if feature indices are sorted

Returns
bool (true if sorted, else false)

Definition at line 279 of file SGSparseVector.cpp.

void load ( CFile loader)

load vector from file

Parameters
loaderFile object via which to load data

Definition at line 361 of file SGSparseVector.cpp.

void load ( CFile loader)

Definition at line 381 of file SGSparseVector.cpp.

int32_t ref ( )
protectedinherited

increase reference counter

Returns
reference count

Definition at line 64 of file SGReferencedData.cpp.

int32_t ref_count ( )
inherited

display reference counter

Returns
reference count

Definition at line 41 of file SGReferencedData.cpp.

void save ( CFile saver)

save vector to file

Parameters
saverFile object via which to save data

Definition at line 371 of file SGSparseVector.cpp.

void save ( CFile saver)

Definition at line 387 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.)

Parameters
stable_pointer(default false) enforce stable pointer

Definition at line 188 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

Parameters
vsparse vector
Returns
dot product between the current sparse vector and v sparse vector

Definition at line 123 of file SGSparseVector.cpp.

T sparse_dot ( const SGSparseVector< T > &  a,
const SGSparseVector< T > &  b 
)
static

compute the dot product between two sparse vectors. sparse_a^T * sparse_b

Parameters
asparse vector
bsparse vector
Returns
dot product between a and b

Definition at line 129 of file SGSparseVector.cpp.

int32_t unref ( )
protectedinherited

decrement reference counter and deallocate object if refcount is zero before or after decrementing it

Returns
reference count

Definition at line 84 of file SGReferencedData.cpp.

Member Data Documentation

SGSparseVectorEntry<T>* features

features

Definition at line 215 of file SGSparseVector.h.

index_t num_feat_entries

number of feature entries

Definition at line 212 of file SGSparseVector.h.


The documentation for this class was generated from the following files:

SHOGUN Machine Learning Toolbox - Documentation