12 #ifndef __LIBSVMFILE_H__
13 #define __LIBSVMFILE_H__
22 class CDelimiterTokenizer;
25 template <
class ST>
class SGString;
26 template <
class T>
class SGSparseVector;
54 CLibSVMFile(
const char* fname,
char rw=
'r',
const char* name=NULL);
66 virtual void get_vector(int8_t*& vector, int32_t& len) { };
67 virtual void get_vector(uint8_t*& vector, int32_t& len) { };
68 virtual void get_vector(
char*& vector, int32_t& len) { };
69 virtual void get_vector(int32_t*& vector, int32_t& len) { };
70 virtual void get_vector(uint32_t*& vector, int32_t& len) { };
74 virtual void get_vector(int16_t*& vector, int32_t& len) { };
75 virtual void get_vector(uint16_t*& vector, int32_t& len) { };
76 virtual void get_vector(int64_t*& vector, int32_t& len) { };
77 virtual void get_vector(uint64_t*& vector, int32_t& len) { };
89 uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
91 int8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
93 char*& matrix, int32_t& num_feat, int32_t& num_vec) { };
95 int32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
97 uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
99 int64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
101 uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
103 float32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
105 float64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
107 floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
109 int16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
111 uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
123 uint8_t*& array, int32_t*& dims, int32_t& num_dims) { };
125 char*& array, int32_t*& dims, int32_t& num_dims) { };
127 int32_t*& array, int32_t*& dims, int32_t& num_dims) { };
129 float32_t*& array, int32_t*& dims, int32_t& num_dims) { };
131 float64_t*& array, int32_t*& dims, int32_t& num_dims){ };
133 int16_t*& array, int32_t*& dims, int32_t& num_dims){ };
135 uint16_t*& array, int32_t*& dims, int32_t& num_dims){ };
184 float64_t*& labels,
bool load_labels=
true);
187 float64_t*& labels,
bool load_labels=
true);
190 float64_t*& labels,
bool load_labels=
true);
193 float64_t*& labels,
bool load_labels=
true);
196 float64_t*& labels,
bool load_labels=
true);
199 float64_t*& labels,
bool load_labels=
true);
202 float64_t*& labels,
bool load_labels=
true);
205 float64_t*& labels,
bool load_labels=
true);
208 float64_t*& labels,
bool load_labels=
true);
211 float64_t*& labels,
bool load_labels=
true);
214 float64_t*& labels,
bool load_labels=
true);
217 float64_t*& labels,
bool load_labels=
true);
220 float64_t*& labels,
bool load_labels=
true);
232 int32_t& max_string_len) { };
235 int32_t& max_string_len) { };
238 int32_t& max_string_len) { };
241 int32_t& max_string_len) { };
244 int32_t& max_string_len) { };
247 int32_t& max_string_len) { };
250 int32_t& max_string_len) { };
253 int32_t& max_string_len) { };
256 int32_t& max_string_len) { };
259 int32_t& max_string_len) { };
262 int32_t& max_string_len) { };
265 int32_t& max_string_len) { };
327 virtual void set_vector(
const int8_t* vector, int32_t len) { };
328 virtual void set_vector(
const uint8_t* vector, int32_t len) { };
329 virtual void set_vector(
const char* vector, int32_t len) { };
330 virtual void set_vector(
const int32_t* vector, int32_t len) { };
331 virtual void set_vector(
const uint32_t* vector, int32_t len) { };
335 virtual void set_vector(
const int16_t* vector, int32_t len) { };
336 virtual void set_vector(
const uint16_t* vector, int32_t len) { };
337 virtual void set_vector(
const int64_t* vector, int32_t len) { };
338 virtual void set_vector(
const uint64_t* vector, int32_t len) { };
349 const uint8_t* matrix, int32_t num_feat, int32_t num_vec) { };
351 const int8_t* matrix, int32_t num_feat, int32_t num_vec) { };
353 const char* matrix, int32_t num_feat, int32_t num_vec) { };
355 const int32_t* matrix, int32_t num_feat, int32_t num_vec) { };
357 const uint32_t* matrix, int32_t num_feat, int32_t num_vec) { };
359 const int64_t* matrix, int32_t num_feat, int32_t num_vec) { };
361 const uint64_t* matrix, int32_t num_feat, int32_t num_vec) { };
363 const float32_t* matrix, int32_t num_feat, int32_t num_vec) { };
365 const float64_t* matrix, int32_t num_feat, int32_t num_vec) { };
367 const floatmax_t* matrix, int32_t num_feat, int32_t num_vec) { };
369 const int16_t* matrix, int32_t num_feat, int32_t num_vec) { };
371 const uint16_t* matrix, int32_t num_feat, int32_t num_vec) { };
539 virtual const char*
get_name()
const {
return "LibSVMFile"; }
546 void init_with_defaults();
549 int32_t get_num_lines();
555 char m_delimiter_feat;
558 char m_delimiter_label;
virtual void get_string_list(SGString< char > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void set_vector(const int16_t *vector, int32_t len)
virtual void get_matrix(int8_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_ndarray(float32_t *&array, int32_t *&dims, int32_t &num_dims)
virtual void get_vector(char *&vector, int32_t &len)
virtual const char * get_name() const
virtual void set_vector(const floatmax_t *vector, int32_t len)
virtual void get_vector(float64_t *&vector, int32_t &len)
virtual void set_string_list(const SGString< int32_t > *strings, int32_t num_str)
virtual void get_string_list(SGString< uint16_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void set_string_list(const SGString< float32_t > *strings, int32_t num_str)
virtual void set_vector(const float64_t *vector, int32_t len)
virtual void get_matrix(int16_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_ndarray(char *&array, int32_t *&dims, int32_t &num_dims)
virtual void set_matrix(const float64_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_string_list(SGString< uint64_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_string_list(SGString< int64_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void set_matrix(const int32_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_string_list(const SGString< int16_t > *strings, int32_t num_str)
virtual void set_vector(const int8_t *vector, int32_t len)
virtual void get_matrix(uint16_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void set_matrix(const int16_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_matrix(int64_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void set_sparse_matrix(const SGSparseVector< bool > *matrix, int32_t num_feat, int32_t num_vec)
Class for buffered reading from a ascii file.
virtual void set_matrix(const int8_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_string_list(const SGString< float64_t > *strings, int32_t num_str)
virtual void set_matrix(const uint16_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_string_list(const SGString< int64_t > *strings, int32_t num_str)
virtual void set_vector(const uint8_t *vector, int32_t len)
virtual void get_matrix(floatmax_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_matrix(int32_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_vector(int8_t *&vector, int32_t &len)
virtual void get_vector(int32_t *&vector, int32_t &len)
template class SGSparseVector The assumtion is that the stored SGSparseVectorEntry* vector is orde...
virtual void set_vector(const int64_t *vector, int32_t len)
virtual void set_vector(const float32_t *vector, int32_t len)
virtual void get_vector(int16_t *&vector, int32_t &len)
virtual void set_vector(const int32_t *vector, int32_t len)
virtual void get_string_list(SGString< float64_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_ndarray(int16_t *&array, int32_t *&dims, int32_t &num_dims)
virtual void set_vector(const uint64_t *vector, int32_t len)
virtual void get_matrix(uint64_t *&matrix, int32_t &num_feat, int32_t &num_vec)
Class for reading from a string.
virtual void get_matrix(float64_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void set_matrix(const uint8_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_vector(uint16_t *&vector, int32_t &len)
virtual void get_matrix(float32_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void set_vector(const char *vector, int32_t len)
virtual void get_matrix(uint8_t *&matrix, int32_t &num_feat, int32_t &num_vec)
A File access base class.
virtual void get_string_list(SGString< int32_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_vector(uint32_t *&vector, int32_t &len)
virtual void set_matrix(const int64_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_string_list(SGString< float32_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_vector(int64_t *&vector, int32_t &len)
virtual void set_string_list(const SGString< char > *strings, int32_t num_str)
virtual void get_vector(floatmax_t *&vector, int32_t &len)
virtual void set_matrix(const floatmax_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_string_list(const SGString< floatmax_t > *strings, int32_t num_str)
virtual void get_ndarray(uint8_t *&array, int32_t *&dims, int32_t &num_dims)
The class CDelimiterTokenizer is used to tokenize a SGVector into tokens using custom chars as ...
read sparse real valued features in svm light format e.g. -1 1:10.0 2:100.2 1000:1.3 with -1 == (optional) label and dim 1 - value 10.0 dim 2 - value 100.2 dim 1000 - value 1.3
virtual void get_matrix(uint32_t *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_matrix(char *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void get_ndarray(int32_t *&array, int32_t *&dims, int32_t &num_dims)
virtual void set_vector(const uint32_t *vector, int32_t len)
virtual void get_vector(uint8_t *&vector, int32_t &len)
virtual void set_matrix(const float32_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_matrix(const char *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_vector(float32_t *&vector, int32_t &len)
virtual void set_string_list(const SGString< uint64_t > *strings, int32_t num_str)
virtual void get_string_list(SGString< int8_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_ndarray(uint16_t *&array, int32_t *&dims, int32_t &num_dims)
virtual void set_string_list(const SGString< uint8_t > *strings, int32_t num_str)
virtual void set_matrix(const uint32_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_ndarray(float64_t *&array, int32_t *&dims, int32_t &num_dims)
virtual void get_vector(uint64_t *&vector, int32_t &len)
virtual void get_string_list(SGString< uint32_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void set_vector(const uint16_t *vector, int32_t len)
virtual void get_string_list(SGString< int16_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_string_list(SGString< floatmax_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_sparse_matrix(SGSparseVector< bool > *&matrix, int32_t &num_feat, int32_t &num_vec)
virtual void set_string_list(const SGString< uint16_t > *strings, int32_t num_str)
virtual void set_matrix(const uint64_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void set_string_list(const SGString< int8_t > *strings, int32_t num_str)
virtual void get_string_list(SGString< uint8_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void set_string_list(const SGString< uint32_t > *strings, int32_t num_str)