This file is indexed.

/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