SHOGUN  3.2.1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ProtobufFile.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) 2013 Evgeniy Andreev (gsomix)
8  */
9 
10 #ifdef HAVE_PROTOBUF
11 
12 #ifndef __PROTOBUFFILE_H__
13 #define __PROTOBUFFILE_H__
14 
15 #include <shogun/io/File.h>
16 
17 #include <google/protobuf/message.h>
18 
22 
23 namespace shogun
24 {
25 
38 class CProtobufFile : public CFile
39 {
40 public:
42  CProtobufFile();
43 
49  CProtobufFile(FILE* f, const char* name=NULL);
50 
57  CProtobufFile(const char* fname, char rw='r', const char* name=NULL);
58 
60  virtual ~CProtobufFile();
61 
69  virtual void get_vector(int8_t*& vector, int32_t& len);
70  virtual void get_vector(uint8_t*& vector, int32_t& len);
71  virtual void get_vector(char*& vector, int32_t& len);
72  virtual void get_vector(int32_t*& vector, int32_t& len);
73  virtual void get_vector(uint32_t*& vector, int32_t& len);
74  virtual void get_vector(float64_t*& vector, int32_t& len);
75  virtual void get_vector(float32_t*& vector, int32_t& len);
76  virtual void get_vector(floatmax_t*& vector, int32_t& len);
77  virtual void get_vector(int16_t*& vector, int32_t& len);
78  virtual void get_vector(uint16_t*& vector, int32_t& len);
79  virtual void get_vector(int64_t*& vector, int32_t& len);
80  virtual void get_vector(uint64_t*& vector, int32_t& len);
82 
91  virtual void get_matrix(
92  uint8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
93  virtual void get_matrix(
94  int8_t*& matrix, int32_t& num_feat, int32_t& num_vec);
95  virtual void get_matrix(
96  char*& matrix, int32_t& num_feat, int32_t& num_vec);
97  virtual void get_matrix(
98  int32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
99  virtual void get_matrix(
100  uint32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
101  virtual void get_matrix(
102  int64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
103  virtual void get_matrix(
104  uint64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
105  virtual void get_matrix(
106  float32_t*& matrix, int32_t& num_feat, int32_t& num_vec);
107  virtual void get_matrix(
108  float64_t*& matrix, int32_t& num_feat, int32_t& num_vec);
109  virtual void get_matrix(
110  floatmax_t*& matrix, int32_t& num_feat, int32_t& num_vec);
111  virtual void get_matrix(
112  int16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
113  virtual void get_matrix(
114  uint16_t*& matrix, int32_t& num_feat, int32_t& num_vec);
116 
125  virtual void get_ndarray(
126  uint8_t*& array, int32_t*& dims, int32_t& num_dims);
127  virtual void get_ndarray(
128  char*& array, int32_t*& dims, int32_t& num_dims);
129  virtual void get_ndarray(
130  int32_t*& array, int32_t*& dims, int32_t& num_dims);
131  virtual void get_ndarray(
132  float32_t*& array, int32_t*& dims, int32_t& num_dims);
133  virtual void get_ndarray(
134  float64_t*& array, int32_t*& dims, int32_t& num_dims);
135  virtual void get_ndarray(
136  int16_t*& array, int32_t*& dims, int32_t& num_dims);
137  virtual void get_ndarray(
138  uint16_t*& array, int32_t*& dims, int32_t& num_dims);
140 
149  virtual void get_sparse_matrix(
150  SGSparseVector<bool>*& matrix, int32_t& num_feat, int32_t& num_vec);
151  virtual void get_sparse_matrix(
152  SGSparseVector<uint8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
153  virtual void get_sparse_matrix(
154  SGSparseVector<int8_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
155  virtual void get_sparse_matrix(
156  SGSparseVector<char>*& matrix, int32_t& num_feat, int32_t& num_vec);
157  virtual void get_sparse_matrix(
158  SGSparseVector<int32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
159  virtual void get_sparse_matrix(
160  SGSparseVector<uint32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
161  virtual void get_sparse_matrix(
162  SGSparseVector<int64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
163  virtual void get_sparse_matrix(
164  SGSparseVector<uint64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
165  virtual void get_sparse_matrix(
166  SGSparseVector<int16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
167  virtual void get_sparse_matrix(
168  SGSparseVector<uint16_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
169  virtual void get_sparse_matrix(
170  SGSparseVector<float32_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
171  virtual void get_sparse_matrix(
172  SGSparseVector<float64_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
173  virtual void get_sparse_matrix(
174  SGSparseVector<floatmax_t>*& matrix, int32_t& num_feat, int32_t& num_vec);
176 
185  virtual void get_string_list(
186  SGString<uint8_t>*& strings, int32_t& num_str,
187  int32_t& max_string_len);
188  virtual void get_string_list(
189  SGString<int8_t>*& strings, int32_t& num_str,
190  int32_t& max_string_len);
191  virtual void get_string_list(
192  SGString<char>*& strings, int32_t& num_str,
193  int32_t& max_string_len);
194  virtual void get_string_list(
195  SGString<int32_t>*& strings, int32_t& num_str,
196  int32_t& max_string_len);
197  virtual void get_string_list(
198  SGString<uint32_t>*& strings, int32_t& num_str,
199  int32_t& max_string_len);
200  virtual void get_string_list(
201  SGString<int16_t>*& strings, int32_t& num_str,
202  int32_t& max_string_len);
203  virtual void get_string_list(
204  SGString<uint16_t>*& strings, int32_t& num_str,
205  int32_t& max_string_len);
206  virtual void get_string_list(
207  SGString<int64_t>*& strings, int32_t& num_str,
208  int32_t& max_string_len);
209  virtual void get_string_list(
210  SGString<uint64_t>*& strings, int32_t& num_str,
211  int32_t& max_string_len);
212  virtual void get_string_list(
213  SGString<float32_t>*& strings, int32_t& num_str,
214  int32_t& max_string_len);
215  virtual void get_string_list(
216  SGString<float64_t>*& strings, int32_t& num_str,
217  int32_t& max_string_len);
218  virtual void get_string_list(
219  SGString<floatmax_t>*& strings, int32_t& num_str,
220  int32_t& max_string_len);
222 
224  /*virtual void get_vector(void*& vector, int32_t& len, DataType& dtype);*/
225 
233  virtual void set_vector(const int8_t* vector, int32_t len);
234  virtual void set_vector(const uint8_t* vector, int32_t len);
235  virtual void set_vector(const char* vector, int32_t len);
236  virtual void set_vector(const int32_t* vector, int32_t len);
237  virtual void set_vector(const uint32_t* vector, int32_t len);
238  virtual void set_vector(const float32_t* vector, int32_t len);
239  virtual void set_vector(const float64_t* vector, int32_t len);
240  virtual void set_vector(const floatmax_t* vector, int32_t len);
241  virtual void set_vector(const int16_t* vector, int32_t len);
242  virtual void set_vector(const uint16_t* vector, int32_t len);
243  virtual void set_vector(const int64_t* vector, int32_t len);
244  virtual void set_vector(const uint64_t* vector, int32_t len);
246 
254  virtual void set_matrix(
255  const uint8_t* matrix, int32_t num_feat, int32_t num_vec);
256  virtual void set_matrix(
257  const int8_t* matrix, int32_t num_feat, int32_t num_vec);
258  virtual void set_matrix(
259  const char* matrix, int32_t num_feat, int32_t num_vec);
260  virtual void set_matrix(
261  const int32_t* matrix, int32_t num_feat, int32_t num_vec);
262  virtual void set_matrix(
263  const uint32_t* matrix, int32_t num_feat, int32_t num_vec);
264  virtual void set_matrix(
265  const int64_t* matrix, int32_t num_feat, int32_t num_vec);
266  virtual void set_matrix(
267  const uint64_t* matrix, int32_t num_feat, int32_t num_vec);
268  virtual void set_matrix(
269  const float32_t* matrix, int32_t num_feat, int32_t num_vec);
270  virtual void set_matrix(
271  const float64_t* matrix, int32_t num_feat, int32_t num_vec);
272  virtual void set_matrix(
273  const floatmax_t* matrix, int32_t num_feat, int32_t num_vec);
274  virtual void set_matrix(
275  const int16_t* matrix, int32_t num_feat, int32_t num_vec);
276  virtual void set_matrix(
277  const uint16_t* matrix, int32_t num_feat, int32_t num_vec);
279 
287  virtual void set_sparse_matrix(
288  const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec);
289  virtual void set_sparse_matrix(
290  const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec);
291  virtual void set_sparse_matrix(
292  const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec);
293  virtual void set_sparse_matrix(
294  const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec);
295  virtual void set_sparse_matrix(
296  const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec);
297  virtual void set_sparse_matrix(
298  const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec);
299  virtual void set_sparse_matrix(
300  const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec);
301  virtual void set_sparse_matrix(
302  const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec);
303  virtual void set_sparse_matrix(
304  const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec);
305  virtual void set_sparse_matrix(
306  const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec);
307  virtual void set_sparse_matrix(
308  const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec);
309  virtual void set_sparse_matrix(
310  const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec);
311  virtual void set_sparse_matrix(
312  const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec);
314 
323  virtual void set_string_list(
324  const SGString<uint8_t>* strings, int32_t num_str);
325  virtual void set_string_list(
326  const SGString<int8_t>* strings, int32_t num_str);
327  virtual void set_string_list(
328  const SGString<char>* strings, int32_t num_str);
329  virtual void set_string_list(
330  const SGString<int32_t>* strings, int32_t num_str);
331  virtual void set_string_list(
332  const SGString<uint32_t>* strings, int32_t num_str);
333  virtual void set_string_list(
334  const SGString<int16_t>* strings, int32_t num_str);
335  virtual void set_string_list(
336  const SGString<uint16_t>* strings, int32_t num_str);
337  virtual void set_string_list(
338  const SGString<int64_t>* strings, int32_t num_str);
339  virtual void set_string_list(
340  const SGString<uint64_t>* strings, int32_t num_str);
341  virtual void set_string_list(
342  const SGString<float32_t>* strings, int32_t num_str);
343  virtual void set_string_list(
344  const SGString<float64_t>* strings, int32_t num_str);
345  virtual void set_string_list(
346  const SGString<floatmax_t>* strings, int32_t num_str);
348 
349  virtual const char* get_name() const { return "ProtobufFile"; }
350 
351 private:
353  void init();
354 
356  void write_big_endian_uint(uint32_t number, uint8_t* array, uint32_t size);
357 
359  uint32_t read_big_endian_uint(uint8_t* array, uint32_t size);
360 
362  int32_t compute_num_messages(uint64_t len, int32_t sizeof_type) const;
363 
365  void read_and_validate_global_header(ShogunVersion_SGDataType type);
366 
368  void write_global_header(ShogunVersion_SGDataType type);
369 
372  VectorHeader read_vector_header();
373  MatrixHeader read_matrix_header();
374  SparseMatrixHeader read_sparse_matrix_header();
375  StringListHeader read_string_list_header();
377 
380  void write_vector_header(int32_t len, int32_t num_messages);
381  void write_matrix_header(int32_t num_feat, int32_t num_vec, int32_t num_messages);
383 
388  void write_sparse_matrix_header(
389  const SGSparseVector<bool>* matrix, int32_t num_feat, int32_t num_vec);
390  void write_sparse_matrix_header(
391  const SGSparseVector<uint8_t>* matrix, int32_t num_feat, int32_t num_vec);
392  void write_sparse_matrix_header(
393  const SGSparseVector<int8_t>* matrix, int32_t num_feat, int32_t num_vec);
394  void write_sparse_matrix_header(
395  const SGSparseVector<char>* matrix, int32_t num_feat, int32_t num_vec);
396  void write_sparse_matrix_header(
397  const SGSparseVector<int32_t>* matrix, int32_t num_feat, int32_t num_vec);
398  void write_sparse_matrix_header(
399  const SGSparseVector<uint32_t>* matrix, int32_t num_feat, int32_t num_vec);
400  void write_sparse_matrix_header(
401  const SGSparseVector<float64_t>* matrix, int32_t num_feat, int32_t num_vec);
402  void write_sparse_matrix_header(
403  const SGSparseVector<float32_t>* matrix, int32_t num_feat, int32_t num_vec);
404  void write_sparse_matrix_header(
405  const SGSparseVector<floatmax_t>* matrix, int32_t num_feat, int32_t num_vec);
406  void write_sparse_matrix_header(
407  const SGSparseVector<int16_t>* matrix, int32_t num_feat, int32_t num_vec);
408  void write_sparse_matrix_header(
409  const SGSparseVector<uint16_t>* matrix, int32_t num_feat, int32_t num_vec);
410  void write_sparse_matrix_header(
411  const SGSparseVector<int64_t>* matrix, int32_t num_feat, int32_t num_vec);
412  void write_sparse_matrix_header(
413  const SGSparseVector<uint64_t>* matrix, int32_t num_feat, int32_t num_vec);
415 
420  void write_string_list_header(
421  const SGString<uint8_t>* strings, int32_t num_str);
422  void write_string_list_header(
423  const SGString<int8_t>* strings, int32_t num_str);
424  void write_string_list_header(
425  const SGString<char>* strings, int32_t num_str);
426  void write_string_list_header(
427  const SGString<int32_t>* strings, int32_t num_str);
428  void write_string_list_header(
429  const SGString<uint32_t>* strings, int32_t num_str);
430  void write_string_list_header(
431  const SGString<float64_t>* strings, int32_t num_str);
432  void write_string_list_header(
433  const SGString<float32_t>* strings, int32_t num_str);
434  void write_string_list_header(
435  const SGString<floatmax_t>* strings, int32_t num_str);
436  void write_string_list_header(
437  const SGString<int16_t>* strings, int32_t num_str);
438  void write_string_list_header(
439  const SGString<uint16_t>* strings, int32_t num_str);
440  void write_string_list_header(
441  const SGString<int64_t>* strings, int32_t num_str);
442  void write_string_list_header(
443  const SGString<uint64_t>* strings, int32_t num_str);
445 
447  void read_message(google::protobuf::Message& message);
448 
450  void write_message(const google::protobuf::Message& message);
451 
457  void read_memory_block(uint8_t*& vector, uint64_t len, int32_t num_messages);
458  void read_memory_block(int8_t*& vector, uint64_t len, int32_t num_messages);
459  void read_memory_block(char*& vector, uint64_t len, int32_t num_messages);
460  void read_memory_block(int32_t*& vector, uint64_t len, int32_t num_messages);
461  void read_memory_block(uint32_t*& vector, uint64_t len, int32_t num_messages);
462  void read_memory_block(float64_t*& vector, uint64_t len, int32_t num_messages);
463  void read_memory_block(float32_t*& vector, uint64_t len, int32_t num_messages);
464  void read_memory_block(floatmax_t*& vector, uint64_t len, int32_t num_messages);
465  void read_memory_block(int16_t*& vector, uint64_t len, int32_t num_messages);
466  void read_memory_block(uint16_t*& vector, uint64_t len, int32_t num_messages);
467  void read_memory_block(int64_t*& vector, uint64_t len, int32_t num_messages);
468  void read_memory_block(uint64_t*& vector, uint64_t len, int32_t num_messages);
470 
476  void write_memory_block(const int8_t* vector, uint64_t len, int32_t num_messages);
477  void write_memory_block(const uint8_t* vector, uint64_t len, int32_t num_messages);
478  void write_memory_block(const char* vector, uint64_t len, int32_t num_messages);
479  void write_memory_block(const int32_t* vector, uint64_t len, int32_t num_messages);
480  void write_memory_block(const uint32_t* vector, uint64_t len, int32_t num_messages);
481  void write_memory_block(const float32_t* vector, uint64_t len, int32_t num_messages);
482  void write_memory_block(const float64_t* vector, uint64_t len, int32_t num_messages);
483  void write_memory_block(const floatmax_t* vector, uint64_t len, int32_t num_messages);
484  void write_memory_block(const int16_t* vector, uint64_t len, int32_t num_messages);
485  void write_memory_block(const uint16_t* vector, uint64_t len, int32_t num_messages);
486  void write_memory_block(const int64_t* vector, uint64_t len, int32_t num_messages);
487  void write_memory_block(const uint64_t* vector, uint64_t len, int32_t num_messages);
489 
491  void read_sparse_matrix(SGSparseVector<bool>*& matrix,
492  const SparseMatrixHeader& data_header);
493  void read_sparse_matrix(SGSparseVector<uint8_t>*& matrix,
494  const SparseMatrixHeader& data_header);
495  void read_sparse_matrix(SGSparseVector<int8_t>*& matrix,
496  const SparseMatrixHeader& data_header);
497  void read_sparse_matrix(SGSparseVector<char>*& matrix,
498  const SparseMatrixHeader& data_header);
499  void read_sparse_matrix(SGSparseVector<int32_t>*& matrix,
500  const SparseMatrixHeader& data_header);
501  void read_sparse_matrix(SGSparseVector<uint32_t>*& matrix,
502  const SparseMatrixHeader& data_header);
503  void read_sparse_matrix(SGSparseVector<int16_t>*& matrix,
504  const SparseMatrixHeader& data_header);
505  void read_sparse_matrix(SGSparseVector<uint16_t>*& matrix,
506  const SparseMatrixHeader& data_header);
507  void read_sparse_matrix(SGSparseVector<int64_t>*& matrix,
508  const SparseMatrixHeader& data_header);
509  void read_sparse_matrix(SGSparseVector<uint64_t>*& matrix,
510  const SparseMatrixHeader& data_header);
511  void read_sparse_matrix(SGSparseVector<float32_t>*& matrix,
512  const SparseMatrixHeader& data_header);
513  void read_sparse_matrix(SGSparseVector<float64_t>*& matrix,
514  const SparseMatrixHeader& data_header);
515  void read_sparse_matrix(SGSparseVector<floatmax_t>*& matrix,
516  const SparseMatrixHeader& data_header);
518 
522  void write_sparse_matrix(
523  const SGSparseVector<bool>* matrix, int32_t num_vec);
524  void write_sparse_matrix(
525  const SGSparseVector<uint8_t>* matrix, int32_t num_vec);
526  void write_sparse_matrix(
527  const SGSparseVector<int8_t>* matrix, int32_t num_vec);
528  void write_sparse_matrix(
529  const SGSparseVector<char>* matrix, int32_t num_vec);
530  void write_sparse_matrix(
531  const SGSparseVector<int32_t>* matrix, int32_t num_vec);
532  void write_sparse_matrix(
533  const SGSparseVector<uint32_t>* matrix, int32_t num_vec);
534  void write_sparse_matrix(
535  const SGSparseVector<int16_t>* matrix, int32_t num_vec);
536  void write_sparse_matrix(
537  const SGSparseVector<uint16_t>* matrix, int32_t num_vec);
538  void write_sparse_matrix(
539  const SGSparseVector<int64_t>* matrix, int32_t num_vec);
540  void write_sparse_matrix(
541  const SGSparseVector<uint64_t>* matrix, int32_t num_vec);
542  void write_sparse_matrix(
543  const SGSparseVector<float32_t>* matrix, int32_t num_vec);
544  void write_sparse_matrix(
545  const SGSparseVector<float64_t>* matrix, int32_t num_vec);
546  void write_sparse_matrix(
547  const SGSparseVector<floatmax_t>* matrix, int32_t num_vec);
549 
551  void read_string_list(SGString<uint8_t>*& strings,
552  const StringListHeader& data_header);
553  void read_string_list(SGString<int8_t>*& strings,
554  const StringListHeader& data_header);
555  void read_string_list(SGString<char>*& strings,
556  const StringListHeader& data_header);
557  void read_string_list(SGString<int32_t>*& strings,
558  const StringListHeader& data_header);
559  void read_string_list(SGString<uint32_t>*& strings,
560  const StringListHeader& data_header);
561  void read_string_list(SGString<int16_t>*& strings,
562  const StringListHeader& data_header);
563  void read_string_list(SGString<uint16_t>*& strings,
564  const StringListHeader& data_header);
565  void read_string_list(SGString<int64_t>*& strings,
566  const StringListHeader& data_header);
567  void read_string_list(SGString<uint64_t>*& strings,
568  const StringListHeader& data_header);
569  void read_string_list(SGString<float32_t>*& strings,
570  const StringListHeader& data_header);
571  void read_string_list(SGString<float64_t>*& strings,
572  const StringListHeader& data_header);
573  void read_string_list(SGString<floatmax_t>*& strings,
574  const StringListHeader& data_header);
576 
580  void write_string_list(
581  const SGString<uint8_t>* strings, int32_t num_str);
582  void write_string_list(
583  const SGString<int8_t>* strings, int32_t num_str);
584  void write_string_list(
585  const SGString<char>* strings, int32_t num_str);
586  void write_string_list(
587  const SGString<int32_t>* strings, int32_t num_str);
588  void write_string_list(
589  const SGString<uint32_t>* strings, int32_t num_str);
590  void write_string_list(
591  const SGString<int16_t>* strings, int32_t num_str);
592  void write_string_list(
593  const SGString<uint16_t>* strings, int32_t num_str);
594  void write_string_list(
595  const SGString<int64_t>* strings, int32_t num_str);
596  void write_string_list(
597  const SGString<uint64_t>* strings, int32_t num_str);
598  void write_string_list(
599  const SGString<float32_t>* strings, int32_t num_str);
600  void write_string_list(
601  const SGString<float64_t>* strings, int32_t num_str);
602  void write_string_list(
603  const SGString<floatmax_t>* strings, int32_t num_str);
605 
606 private:
608  int32_t version;
609 
611  int32_t message_size;
612 
614  uint8_t* buffer;
615 
617  uint8_t uint_buffer[4];
618 };
619 
620 }
621 
622 #endif
624 #endif
virtual void set_string_list(const SGString< uint8_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 get_ndarray(uint8_t *&array, int32_t *&dims, int32_t &num_dims)
template class SGSparseVector The assumtion is that the stored SGSparseVectorEntry<T>* vector is orde...
virtual void get_vector(int8_t *&vector, int32_t &len)
virtual void get_matrix(uint8_t *&matrix, int32_t &num_feat, int32_t &num_vec)
double float64_t
Definition: common.h:48
long double floatmax_t
Definition: common.h:49
virtual void set_sparse_matrix(const SGSparseVector< bool > *matrix, int32_t num_feat, int32_t num_vec)
A File access base class.
Definition: File.h:34
virtual void set_vector(const int8_t *vector, int32_t len)
float float32_t
Definition: common.h:47
virtual void get_sparse_matrix(SGSparseVector< bool > *&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)
Class for work with binary file in protobuf format.
Definition: ProtobufFile.h:38
ShogunVersion_SGDataType
virtual const char * get_name() const
Definition: ProtobufFile.h:349

SHOGUN Machine Learning Toolbox - Documentation