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 
133  virtual void get_vector(int8_t*& vector, int32_t& len);
134  virtual void get_vector(uint8_t*& vector, int32_t& len);
135  virtual void get_vector(char*& vector, int32_t& len);
136  virtual void get_vector(int32_t*& vector, int32_t& len);
137  virtual void get_vector(uint32_t*& vector, int32_t& len);
138  virtual void get_vector(float64_t*& vector, int32_t& len);
139  virtual void get_vector(float32_t*& vector, int32_t& len);
140  virtual void get_vector(floatmax_t*& vector, int32_t& len);
141  virtual void get_vector(int16_t*& vector, int32_t& len);
142  virtual void get_vector(uint16_t*& vector, int32_t& len);
143  virtual void get_vector(int64_t*& vector, int32_t& len);
144  virtual void get_vector(uint64_t*& vector, int32_t& len);
146 
155  virtual void get_matrix(
156  uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
157  virtual void get_matrix(
158  int8_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
159  virtual void get_matrix(
160  char*& matrix, int32_t& num_feat, int32_t& num_vec) { };
161  virtual void get_matrix(
162  int32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
163  virtual void get_matrix(
164  uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
165  virtual void get_matrix(
166  int64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
167  virtual void get_matrix(
168  uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
169  virtual void get_matrix(
170  float32_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
171  virtual void get_matrix(
172  float64_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
173  virtual void get_matrix(
174  floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
175  virtual void get_matrix(
176  int16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
177  virtual void get_matrix(
178  uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec) { };
180 
189  virtual void get_ndarray(
190  uint8_t*& array, int32_t*& dims, int32_t& num_dims) { };
191  virtual void get_ndarray(
192  char*& array, int32_t*& dims, int32_t& num_dims) { };
193  virtual void get_ndarray(
194  int32_t*& array, int32_t*& dims, int32_t& num_dims) { };
195  virtual void get_ndarray(
196  float32_t*& array, int32_t*& dims, int32_t& num_dims) { };
197  virtual void get_ndarray(
198  float64_t*& array, int32_t*& dims, int32_t& num_dims) { };
199  virtual void get_ndarray(
200  int16_t*& array, int32_t*& dims, int32_t& num_dims) { };
201  virtual void get_ndarray(
202  uint16_t*& array, int32_t*& dims, int32_t& num_dims) { };
204 
213  virtual void get_sparse_matrix(
214  SGSparseVector<bool>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
215  virtual void get_sparse_matrix(
216  SGSparseVector<uint8_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
217  virtual void get_sparse_matrix(
218  SGSparseVector<int8_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
219  virtual void get_sparse_matrix(
220  SGSparseVector<char>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
221  virtual void get_sparse_matrix(
222  SGSparseVector<int32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
223  virtual void get_sparse_matrix(
224  SGSparseVector<uint32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
225  virtual void get_sparse_matrix(
226  SGSparseVector<int64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
227  virtual void get_sparse_matrix(
228  SGSparseVector<uint64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
229  virtual void get_sparse_matrix(
230  SGSparseVector<int16_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
231  virtual void get_sparse_matrix(
232  SGSparseVector<uint16_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
233  virtual void get_sparse_matrix(
234  SGSparseVector<float32_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
235  virtual void get_sparse_matrix(
236  SGSparseVector<float64_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
237  virtual void get_sparse_matrix(
238  SGSparseVector<floatmax_t>*& matrix, int32_t& num_feat, int32_t& num_vec) { };
240 
249  virtual void get_string_list(
250  SGString<uint8_t>*& strings, int32_t& num_str,
251  int32_t& max_string_len) { };
252  virtual void get_string_list(
253  SGString<int8_t>*& strings, int32_t& num_str,
254  int32_t& max_string_len) { };
255  virtual void get_string_list(
256  SGString<char>*& strings, int32_t& num_str,
257  int32_t& max_string_len) { };
258  virtual void get_string_list(
259  SGString<int32_t>*& strings, int32_t& num_str,
260  int32_t& max_string_len) { };
261  virtual void get_string_list(
262  SGString<uint32_t>*& strings, int32_t& num_str,
263  int32_t& max_string_len) { };
264  virtual void get_string_list(
265  SGString<int16_t>*& strings, int32_t& num_str,
266  int32_t& max_string_len) { };
267  virtual void get_string_list(
268  SGString<uint16_t>*& strings, int32_t& num_str,
269  int32_t& max_string_len) { };
270  virtual void get_string_list(
271  SGString<int64_t>*& strings, int32_t& num_str,
272  int32_t& max_string_len) { };
273  virtual void get_string_list(
274  SGString<uint64_t>*& strings, int32_t& num_str,
275  int32_t& max_string_len) { };
276  virtual void get_string_list(
277  SGString<float32_t>*& strings, int32_t& num_str,
278  int32_t& max_string_len) { };
279  virtual void get_string_list(
280  SGString<float64_t>*& strings, int32_t& num_str,
281  int32_t& max_string_len) { };
282  virtual void get_string_list(
283  SGString<floatmax_t>*& strings, int32_t& num_str,
284  int32_t& max_string_len) { };
286 
288  /*virtual void get_vector(void*& vector, int32_t& len, DataType& dtype);*/
289 
297  virtual void set_vector(const int8_t* vector, int32_t len);
298  virtual void set_vector(const uint8_t* vector, int32_t len);
299  virtual void set_vector(const char* vector, int32_t len);
300  virtual void set_vector(const int32_t* vector, int32_t len);
301  virtual void set_vector(const uint32_t* vector, int32_t len);
302  virtual void set_vector(const float32_t* vector, int32_t len);
303  virtual void set_vector(const float64_t* vector, int32_t len);
304  virtual void set_vector(const floatmax_t* vector, int32_t len);
305  virtual void set_vector(const int16_t* vector, int32_t len);
306  virtual void set_vector(const uint16_t* vector, int32_t len);
307  virtual void set_vector(const int64_t* vector, int32_t len);
308  virtual void set_vector(const uint64_t* vector, int32_t len);
310 
318  virtual void set_matrix(
319  const uint8_t* matrix, int32_t num_feat, int32_t num_vec) { };
320  virtual void set_matrix(
321  const int8_t* matrix, int32_t num_feat, int32_t num_vec) { };
322  virtual void set_matrix(
323  const char* matrix, int32_t num_feat, int32_t num_vec) { };
324  virtual void set_matrix(
325  const int32_t* matrix, int32_t num_feat, int32_t num_vec) { };
326  virtual void set_matrix(
327  const uint32_t* matrix, int32_t num_feat, int32_t num_vec) { };
328  virtual void set_matrix(
329  const int64_t* matrix, int32_t num_feat, int32_t num_vec) { };
330  virtual void set_matrix(
331  const uint64_t* matrix, int32_t num_feat, int32_t num_vec) { };
332  virtual void set_matrix(
333  const float32_t* matrix, int32_t num_feat, int32_t num_vec) { };
334  virtual void set_matrix(
335  const float64_t* matrix, int32_t num_feat, int32_t num_vec) { };
336  virtual void set_matrix(
337  const floatmax_t* matrix, int32_t num_feat, int32_t num_vec) { };
338  virtual void set_matrix(
339  const int16_t* matrix, int32_t num_feat, int32_t num_vec) { };
340  virtual void set_matrix(
341  const uint16_t* matrix, int32_t num_feat, int32_t num_vec) { };
343 
351  virtual void set_sparse_matrix(
352  const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec) { };
353  virtual void set_sparse_matrix(
354  const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec) { };
355  virtual void set_sparse_matrix(
356  const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec) { };
357  virtual void set_sparse_matrix(
358  const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec) { };
359  virtual void set_sparse_matrix(
360  const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
361  virtual void set_sparse_matrix(
362  const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
363  virtual void set_sparse_matrix(
364  const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
365  virtual void set_sparse_matrix(
366  const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
367  virtual void set_sparse_matrix(
368  const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec) { };
369  virtual void set_sparse_matrix(
370  const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec) { };
371  virtual void set_sparse_matrix(
372  const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec) { };
373  virtual void set_sparse_matrix(
374  const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec) { };
375  virtual void set_sparse_matrix(
376  const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec) { };
378 
387  virtual void set_string_list(
388  const SGString<uint8_t>* strings, int32_t num_str) { };
389  virtual void set_string_list(
390  const SGString<int8_t>* strings, int32_t num_str) { };
391  virtual void set_string_list(
392  const SGString<char>* strings, int32_t num_str) { };
393  virtual void set_string_list(
394  const SGString<int32_t>* strings, int32_t num_str) { };
395  virtual void set_string_list(
396  const SGString<uint32_t>* strings, int32_t num_str) { };
397  virtual void set_string_list(
398  const SGString<int16_t>* strings, int32_t num_str) { };
399  virtual void set_string_list(
400  const SGString<uint16_t>* strings, int32_t num_str) { };
401  virtual void set_string_list(
402  const SGString<int64_t>* strings, int32_t num_str) { };
403  virtual void set_string_list(
404  const SGString<uint64_t>* strings, int32_t num_str) { };
405  virtual void set_string_list(
406  const SGString<float32_t>* strings, int32_t num_str) { };
407  virtual void set_string_list(
408  const SGString<float64_t>* strings, int32_t num_str) { };
409  virtual void set_string_list(
410  const SGString<floatmax_t>* strings, int32_t num_str) { };
412 
413  virtual const char* get_name() const { return "UAIFile"; }
414 
415 private:
417  void init();
418 
420  void init_with_defaults();
421 
422 protected:
425 
428 
431 
434 
437 
439  int32_t m_num_vars;
440 
442  int32_t m_num_factors;
443 
446 
449 
452 
455 };
456 
457 }
458 
459 #endif

SHOGUN Machine Learning Toolbox - Documentation