/usr/include/shogun/transfer/multitask/Task.h is in libshogun-dev 3.2.0-7.5.
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 | /*
* 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.
*
* Copyright (C) 2012 Sergey Lisitsyn
*/
#ifndef TASK_H_
#define TASK_H_
#include <shogun/lib/SGVector.h>
#include <shogun/lib/List.h>
namespace shogun
{
/** @brief class Task used to represent tasks in multitask learning.
* Essentially it represent a set of feature vector indices.
*
* @see CTaskGroup
* @see CTaskTree
*/
class CTask : public CSGObject
{
public:
/** default constructor */
CTask();
/** constructor from range
* @param min_index smallest index of the task
* @param max_index largest index of the task
* @param weight weight (optional)
* @param name name of task (optional)
*/
CTask(index_t min_index, index_t max_index,
float64_t weight=1.0, const char* name="task");
/** constructor from indices
* @param indices indices of the task
* @param weight weight (optional)
* @param name name of task (optional)
*/
CTask(SGVector<index_t> indices, float64_t weight=1.0, const char* name="task");
/** destructor */
virtual ~CTask();
/** is contiguous
*
* @return whether task is contiguous
*/
bool is_contiguous();
/** get indices
*
* @return indices
*/
SGVector<index_t> get_indices() const { return m_indices; }
/** set indices
*
* @param indices task vector indices to set
*/
void set_indices(SGVector<index_t> indices) { m_indices = indices; }
/** get weight of the task
*
* @return weight of the task
*/
float64_t get_weight() const { return m_weight; }
/** set weight of the task
*
* @param weight weight of the task
*/
void set_weight(float64_t weight) { m_weight = weight; }
/** get task name
*
* @return name of the task
*/
const char* get_task_name() const { return m_name; }
/** set task name
*
* @param name name of the task
*/
void set_task_name(const char* name) { m_name = name; }
/** add subtask
* should represent a subset of indices of the task
*
* @param sub_task subtask to add
*/
void add_subtask(CTask* sub_task);
/** get all subtasks of the task
*
* @return subtasks of the task
*/
CList* get_subtasks();
/** get number of subtasks
*
* @return number of subtasks
*/
int32_t get_num_subtasks();
/** get name
*
* @return name of object
*/
virtual const char* get_name() const { return "Task"; };
private:
/** init */
void init();
protected:
/** subtasks */
CList* m_subtasks;
/** name of the block */
const char* m_name;
/** indices */
SGVector<index_t> m_indices;
/** weight */
float64_t m_weight;
};
}
#endif
|