SHOGUN  3.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
UAIFile.h
Go to the documentation of this file.
1 /*
2  * This program is free software; you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation; either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * Written (W) 2014 Abinash Panda
8  */
9 
10 #ifndef __UAIFILE_H__
11 #define __UAIFILE_H__
12 
13 #include <shogun/io/File.h>
14 
15 #include <shogun/io/LineReader.h>
16 #include <shogun/io/Parser.h>
18 #include <shogun/base/Parameter.h>
19 
20 namespace shogun
21 {
22 
27 class CUAIFile : public CFile
28 {
29 public:
31  CUAIFile();
32 
38  CUAIFile(FILE* f, const char* name=NULL);
39 
46  CUAIFile(int fd, const char* mode, const char* name=NULL);
47 
54  CUAIFile(const char* fname, char rw='r', const char* name=NULL);
55 
57  virtual ~CUAIFile();
58 
63  virtual void parse();
64 
70  virtual void set_net_type(const char* net_type);
71 
76  virtual void set_num_vars(int32_t num_vars);
77 
82  virtual void set_num_factors(int32_t num_vars);
83 
88  virtual void set_vars_card(SGVector<int32_t> vars_card);
89 
95  virtual void set_factors_scope(int32_t num_factors,
96  const SGVector<int32_t>* factors_scope);
97 
103  virtual void set_factors_table(int32_t num_factors,
104  const SGVector<float64_t>* factors_table);
105 
114  virtual void get_preamble(SGVector<char>& net_type,
115  int32_t& num_vars,
116  SGVector<int32_t>& vars_card,
117  int32_t& num_factors,
118  SGVector<int32_t>*& factors_scope);
119 
124  virtual void get_factors_table(SGVector<float64_t>*& factors_table);
125 
126 #ifndef SWIG // SWIG should skip this
127 
134  virtual void get_vector(int8_t*& vector, int32_t& len);
135  virtual void get_vector(uint8_t*& vector, int32_t& len);
136  virtual void get_vector(char*& vector, int32_t& len);
137  virtual void get_vector(int32_t*& vector, int32_t& len);
138  virtual void get_vector(uint32_t*& vector, int32_t& len);
139  virtual void get_vector(float64_t*& vector, int32_t& len);
140  virtual void get_vector(float32_t*& vector, int32_t& len);
141  virtual void get_vector(floatmax_t*& vector, int32_t& len);
142  virtual void get_vector(int16_t*& vector, int32_t& len);
143  virtual void get_vector(uint16_t*& vector, int32_t& len);
144  virtual void get_vector(int64_t*& vector, int32_t& len);
145  virtual void get_vector(uint64_t*& vector, int32_t& len);
147 
156  virtual void get_matrix(
157  uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
158  virtual void get_matrix(
159  int8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
160  virtual void get_matrix(
161  char*& matrix, int32_t& num_feat, int32_t& num_vec) { };
162  virtual void get_matrix(
163  int32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
164  virtual void get_matrix(
165  uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
166  virtual void get_matrix(
167  int64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
168  virtual void get_matrix(
169  uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
170  virtual void get_matrix(
171  float32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
172  virtual void get_matrix(
173  float64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
174  virtual void get_matrix(
175  floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
176  virtual void get_matrix(
177  int16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
178  virtual void get_matrix(
179  uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
181 
190  virtual void get_ndarray(
191  uint8_t*& array, int32_t*& dims, int32_t& num_dims) { };
192  virtual void get_ndarray(
193  char*& array, int32_t*& dims, int32_t& num_dims) { };
194  virtual void get_ndarray(
195  int32_t*& array, int32_t*& dims, int32_t& num_dims) { };
196  virtual void get_ndarray(
197  float32_t*& array, int32_t*& dims, int32_t& num_dims) { };
198  virtual void get_ndarray(
199  float64_t*& array, int32_t*& dims, int32_t& num_dims) { };
200  virtual void get_ndarray(
201  int16_t*& array, int32_t*& dims, int32_t& num_dims) { };
202  virtual void get_ndarray(
203  uint16_t*& array, int32_t*& dims, int32_t& num_dims) { };
205 
214  virtual void get_sparse_matrix(
215  SGSparseVector<bool>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
216  virtual void get_sparse_matrix(
217  SGSparseVector<uint8_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
218  virtual void get_sparse_matrix(
219  SGSparseVector<int8_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
220  virtual void get_sparse_matrix(
221  SGSparseVector<char>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
222  virtual void get_sparse_matrix(
223  SGSparseVector<int32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
224  virtual void get_sparse_matrix(
225  SGSparseVector<uint32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
226  virtual void get_sparse_matrix(
227  SGSparseVector<int64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
228  virtual void get_sparse_matrix(
229  SGSparseVector<uint64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
230  virtual void get_sparse_matrix(
231  SGSparseVector<int16_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
232  virtual void get_sparse_matrix(
233  SGSparseVector<uint16_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
234  virtual void get_sparse_matrix(
235  SGSparseVector<float32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
236  virtual void get_sparse_matrix(
237  SGSparseVector<float64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
238  virtual void get_sparse_matrix(
239  SGSparseVector<floatmax_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
241 
250  virtual void get_string_list(
251  SGString<uint8_t>*& strings, int32_t& num_str,
252  int32_t& max_string_len) { };
253  virtual void get_string_list(
254  SGString<int8_t>*& strings, int32_t& num_str,
255  int32_t& max_string_len) { };
256  virtual void get_string_list(
257  SGString<char>*& strings, int32_t& num_str,
258  int32_t& max_string_len) { };
259  virtual void get_string_list(
260  SGString<int32_t>*& strings, int32_t& num_str,
261  int32_t& max_string_len) { };
262  virtual void get_string_list(
263  SGString<uint32_t>*& strings, int32_t& num_str,
264  int32_t& max_string_len) { };
265  virtual void get_string_list(
266  SGString<int16_t>*& strings, int32_t& num_str,
267  int32_t& max_string_len) { };
268  virtual void get_string_list(
269  SGString<uint16_t>*& strings, int32_t& num_str,
270  int32_t& max_string_len) { };
271  virtual void get_string_list(
272  SGString<int64_t>*& strings, int32_t& num_str,
273  int32_t& max_string_len) { };
274  virtual void get_string_list(
275  SGString<uint64_t>*& strings, int32_t& num_str,
276  int32_t& max_string_len) { };
277  virtual void get_string_list(
278  SGString<float32_t>*& strings, int32_t& num_str,
279  int32_t& max_string_len) { };
280  virtual void get_string_list(
281  SGString<float64_t>*& strings, int32_t& num_str,
282  int32_t& max_string_len) { };
283  virtual void get_string_list(
284  SGString<floatmax_t>*& strings, int32_t& num_str,
285  int32_t& max_string_len) { };
287 
289  /*virtual void get_vector(void*& vector, int32_t& len, DataType& dtype);*/
290 
298  virtual void set_vector(const int8_t* vector, int32_t len);
299  virtual void set_vector(const uint8_t* vector, int32_t len);
300  virtual void set_vector(const char* vector, int32_t len);
301  virtual void set_vector(const int32_t* vector, int32_t len);
302  virtual void set_vector(const uint32_t* vector, int32_t len);
303  virtual void set_vector(const float32_t* vector, int32_t len);
304  virtual void set_vector(const float64_t* vector, int32_t len);
305  virtual void set_vector(const floatmax_t* vector, int32_t len);
306  virtual void set_vector(const int16_t* vector, int32_t len);
307  virtual void set_vector(const uint16_t* vector, int32_t len);
308  virtual void set_vector(const int64_t* vector, int32_t len);
309  virtual void set_vector(const uint64_t* vector, int32_t len);
311 
319  virtual void set_matrix(
320  const uint8_t* matrix, int32_t num_feat, int32_t num_vec) { };
321  virtual void set_matrix(
322  const int8_t* matrix, int32_t num_feat, int32_t num_vec) { };
323  virtual void set_matrix(
324  const char* matrix, int32_t num_feat, int32_t num_vec) { };
325  virtual void set_matrix(
326  const int32_t* matrix, int32_t num_feat, int32_t num_vec) { };
327  virtual void set_matrix(
328  const uint32_t* matrix, int32_t num_feat, int32_t num_vec) { };
329  virtual void set_matrix(
330  const int64_t* matrix, int32_t num_feat, int32_t num_vec) { };
331  virtual void set_matrix(
332  const uint64_t* matrix, int32_t num_feat, int32_t num_vec) { };
333  virtual void set_matrix(
334  const float32_t* matrix, int32_t num_feat, int32_t num_vec) { };
335  virtual void set_matrix(
336  const float64_t* matrix, int32_t num_feat, int32_t num_vec) { };
337  virtual void set_matrix(
338  const floatmax_t* matrix, int32_t num_feat, int32_t num_vec) { };
339  virtual void set_matrix(
340  const int16_t* matrix, int32_t num_feat, int32_t num_vec) { };
341  virtual void set_matrix(
342  const uint16_t* matrix, int32_t num_feat, int32_t num_vec) { };
344 
352  virtual void set_sparse_matrix(
353  const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec) { };
354  virtual void set_sparse_matrix(
355  const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec) { };
356  virtual void set_sparse_matrix(
357  const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec) { };
358  virtual void set_sparse_matrix(
359  const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec) { };
360  virtual void set_sparse_matrix(
361  const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
362  virtual void set_sparse_matrix(
363  const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
364  virtual void set_sparse_matrix(
365  const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
366  virtual void set_sparse_matrix(
367  const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
368  virtual void set_sparse_matrix(
369  const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec) { };
370  virtual void set_sparse_matrix(
371  const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec) { };
372  virtual void set_sparse_matrix(
373  const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
374  virtual void set_sparse_matrix(
375  const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
376  virtual void set_sparse_matrix(
377  const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec) { };
379 
388  virtual void set_string_list(
389  const SGString<uint8_t>* strings, int32_t num_str) { };
390  virtual void set_string_list(
391  const SGString<int8_t>* strings, int32_t num_str) { };
392  virtual void set_string_list(
393  const SGString<char>* strings, int32_t num_str) { };
394  virtual void set_string_list(
395  const SGString<int32_t>* strings, int32_t num_str) { };
396  virtual void set_string_list(
397  const SGString<uint32_t>* strings, int32_t num_str) { };
398  virtual void set_string_list(
399  const SGString<int16_t>* strings, int32_t num_str) { };
400  virtual void set_string_list(
401  const SGString<uint16_t>* strings, int32_t num_str) { };
402  virtual void set_string_list(
403  const SGString<int64_t>* strings, int32_t num_str) { };
404  virtual void set_string_list(
405  const SGString<uint64_t>* strings, int32_t num_str) { };
406  virtual void set_string_list(
407  const SGString<float32_t>* strings, int32_t num_str) { };
408  virtual void set_string_list(
409  const SGString<float64_t>* strings, int32_t num_str) { };
410  virtual void set_string_list(
411  const SGString<floatmax_t>* strings, int32_t num_str) { };
413 #endif // #ifndef SWIG // SWIG should skip this
414 
415  virtual const char* get_name() const { return "UAIFile"; }
416 
417 private:
419  void init();
420 
422  void init_with_defaults();
423 
424 protected:
427 
430 
433 
436 
439 
441  int32_t m_num_vars;
442 
444  int32_t m_num_factors;
445 
448 
451 
454 
457 };
458 
459 }
460 
461 #endif

SHOGUN Machine Learning Toolbox - Documentation