/usr/include/shogun/features/CombinedFeatures.h is in libshogun-dev 1.1.0-4ubuntu2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | /*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3 of the License, or
* (at your option) any later version.
*
* Written (W) 1999-2009 Soeren Sonnenburg
* Written (W) 1999-2008 Gunnar Raetsch
* Copyright (C) 1999-2009 Fraunhofer Institute FIRST and Max-Planck-Society
*/
#ifndef _CCOMBINEDFEATURES__H__
#define _CCOMBINEDFEATURES__H__
#include <shogun/features/Features.h>
#include <shogun/lib/List.h>
namespace shogun
{
class CFeatures;
class CList;
class CListElement;
/** @brief The class CombinedFeatures is used to combine a number of of feature objects
* into a single CombinedFeatures object.
*
* It keeps pointers to the added sub-features and is especially useful to
* combine kernels working on different domains (c.f. CCombinedKernel) and to
* combine kernels looking at independent features.
*/
class CCombinedFeatures : public CFeatures
{
public:
/** default constructor */
CCombinedFeatures();
/** copy constructor */
CCombinedFeatures(const CCombinedFeatures& orig);
/** duplicate feature object
*
* @return feature object
*/
virtual CFeatures* duplicate() const;
/** destructor */
virtual ~CCombinedFeatures();
/** get feature type
*
* @return feature type UNKNOWN
*/
inline virtual EFeatureType get_feature_type()
{
return F_UNKNOWN;
}
/** get feature class
*
* @return feature class SIMPLE
*/
inline virtual EFeatureClass get_feature_class()
{
return C_COMBINED;
}
/** get number of feature vectors
*
* @return number of feature vectors
*/
inline virtual int32_t get_num_vectors() const
{
return num_vec;
}
/** get memory footprint of one feature
*
* @return memory footprint of one feature
*/
virtual int32_t get_size();
/** list feature objects */
void list_feature_objs();
/** check feature object compatibility
*
* @param comb_feat feature to check for compatibility
* @return if feature is compatible
*/
bool check_feature_obj_compatibility(CCombinedFeatures* comb_feat);
/** get first feature object
*
* @return first feature object
*/
CFeatures* get_first_feature_obj();
/** get first feature object
*
* @param current list of features
* @return first feature object
*/
CFeatures* get_first_feature_obj(CListElement*& current);
/** get next feature object
*
* @return next feature object
*/
CFeatures* get_next_feature_obj();
/** get next feature object
*
* @param current list of features
* @return next feature object
*/
CFeatures* get_next_feature_obj(CListElement*& current);
/** get last feature object
*
* @return last feature object
*/
CFeatures* get_last_feature_obj();
/** insert feature object
*
* @param obj feature object to insert
* @return if inserting was successful
*/
bool insert_feature_obj(CFeatures* obj);
/** append feature object
*
* @param obj feature object to append
* @return if appending was successful
*/
bool append_feature_obj(CFeatures* obj);
/** delete feature object
*
* @return if deleting was successful
*/
bool delete_feature_obj();
/** get number of feature objects
*
* @return number of feature objects
*/
int32_t get_num_feature_obj();
/** @return object name */
inline virtual const char* get_name() const { return "CombinedFeatures"; }
private:
void init();
protected:
/** feature list */
CList* feature_list;
/** number of vectors
* must match between sub features
*/
int32_t num_vec;
};
}
#endif
|