10 #ifndef __BINARY_FILE_H__
11 #define __BINARY_FILE_H__
21 template <
class ST>
class SGString;
22 template <
class T>
class SGSparseVector;
49 CBinaryFile(
const char* fname,
char rw=
'r',
const char* name=NULL);
54 #ifndef SWIG // SWIG should skip this
62 virtual void get_vector(int8_t*& vector, int32_t& len);
63 virtual void get_vector(uint8_t*& vector, int32_t& len);
64 virtual void get_vector(
char*& vector, int32_t& len);
65 virtual void get_vector(int32_t*& vector, int32_t& len);
66 virtual void get_vector(uint32_t*& vector, int32_t& len);
70 virtual void get_vector(int16_t*& vector, int32_t& len);
71 virtual void get_vector(uint16_t*& vector, int32_t& len);
72 virtual void get_vector(int64_t*& vector, int32_t& len);
73 virtual void get_vector(uint64_t*& vector, int32_t& len);
85 uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
87 int8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
89 char*& matrix, int32_t& num_feat, int32_t& num_vec);
91 int32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
93 uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
95 int64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
97 uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
99 float32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
101 float64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
103 floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec);
105 int16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
107 uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
119 uint8_t*& array, int32_t*& dims, int32_t& num_dims);
121 char*& array, int32_t*& dims, int32_t& num_dims);
123 int32_t*& array, int32_t*& dims, int32_t& num_dims);
125 float32_t*& array, int32_t*& dims, int32_t& num_dims);
127 float64_t*& array, int32_t*& dims, int32_t& num_dims);
129 int16_t*& array, int32_t*& dims, int32_t& num_dims);
131 uint16_t*& array, int32_t*& dims, int32_t& num_dims);
181 int32_t& max_string_len);
184 int32_t& max_string_len);
187 int32_t& max_string_len);
190 int32_t& max_string_len);
193 int32_t& max_string_len);
196 int32_t& max_string_len);
199 int32_t& max_string_len);
202 int32_t& max_string_len);
205 int32_t& max_string_len);
208 int32_t& max_string_len);
211 int32_t& max_string_len);
214 int32_t& max_string_len);
224 virtual void set_vector(
const int8_t* vector, int32_t len);
225 virtual void set_vector(
const uint8_t* vector, int32_t len);
226 virtual void set_vector(
const char* vector, int32_t len);
227 virtual void set_vector(
const int32_t* vector, int32_t len);
228 virtual void set_vector(
const uint32_t* vector, int32_t len);
232 virtual void set_vector(
const int16_t* vector, int32_t len);
233 virtual void set_vector(
const uint16_t* vector, int32_t len);
234 virtual void set_vector(
const int64_t* vector, int32_t len);
235 virtual void set_vector(
const uint64_t* vector, int32_t len);
247 const uint8_t* matrix, int32_t num_feat, int32_t num_vec);
249 const int8_t* matrix, int32_t num_feat, int32_t num_vec);
251 const char* matrix, int32_t num_feat, int32_t num_vec);
253 const int32_t* matrix, int32_t num_feat, int32_t num_vec);
255 const uint32_t* matrix, int32_t num_feat, int32_t num_vec);
257 const int64_t* matrix, int32_t num_feat, int32_t num_vec);
259 const uint64_t* matrix, int32_t num_feat, int32_t num_vec);
261 const float32_t* matrix, int32_t num_feat, int32_t num_vec);
263 const float64_t* matrix, int32_t num_feat, int32_t num_vec);
265 const floatmax_t* matrix, int32_t num_feat, int32_t num_vec);
267 const int16_t* matrix, int32_t num_feat, int32_t num_vec);
269 const uint16_t* matrix, int32_t num_feat, int32_t num_vec);
280 const uint8_t* array, int32_t* dims, int32_t num_dims);
282 const char* array, int32_t* dims, int32_t num_dims);
284 const int32_t* array, int32_t* dims, int32_t num_dims);
286 const float32_t* array, int32_t* dims, int32_t num_dims);
288 const float64_t* array, int32_t* dims, int32_t num_dims);
290 const int16_t* array, int32_t* dims, int32_t num_dims);
292 const uint16_t* array, int32_t* dims, int32_t num_dims);
364 #endif // #ifndef SWIG
367 virtual const char*
get_name()
const {
return "BinaryFile"; }
403 template <
class DT> DT* load_data(DT* target, int64_t& num)
406 return f.load(target, num);
415 template <
class DT>
bool save_data(DT* src, int64_t num)
418 return f.save(src, num);
422 #endif //__BINARY_FILE_H__
virtual void set_vector(const int8_t *vector, int32_t len)
virtual void get_sparse_matrix(SGSparseVector< bool > *&matrix, int32_t &num_feat, int32_t &num_vec)
Template class SimpleFile to read and write from files.
Datatypes that shogun supports.
int32_t parse_next_header(TSGDataType &type)
virtual const char * get_name() const
A File access base class.
virtual void set_matrix(const uint8_t *matrix, int32_t num_feat, int32_t num_vec)
virtual void get_ndarray(uint8_t *&array, int32_t *&dims, int32_t &num_dims)
A Binary file access class.
int32_t parse_first_header(TSGDataType &type)
virtual void get_vector(int8_t *&vector, int32_t &len)
void read_header(TSGDataType *dest)
virtual void set_ndarray(const uint8_t *array, int32_t *dims, int32_t num_dims)
all of classes and functions are contained in the shogun namespace
virtual void get_string_list(SGString< uint8_t > *&strings, int32_t &num_str, int32_t &max_string_len)
virtual void get_matrix(uint8_t *&matrix, int32_t &num_feat, int32_t &num_vec)
template class SGSparseVector The assumtion is that the stored SGSparseVectorEntry* vector is orde...
virtual void set_string_list(const SGString< uint8_t > *strings, int32_t num_str)
void write_header(const TSGDataType *datatype)
virtual void set_sparse_matrix(const SGSparseVector< bool > *matrix, int32_t num_feat, int32_t num_vec)