This file is indexed.

/usr/include/shogun/ui/GUIHMM.h is in libshogun-dev 3.1.1-1.

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
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
/*
 * 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-2008 Soeren Sonnenburg
 * Written (W) 1999-2008 Gunnar Raetsch
 * Copyright (C) 1999-2008 Fraunhofer Institute FIRST and Max-Planck-Society
 */

#ifndef __GUIHMM__H
#define __GUIHMM__H

#include <shogun/lib/config.h>
#include <shogun/base/SGObject.h>
#include <shogun/distributions/HMM.h>
#include <shogun/labels/Labels.h>
#include <shogun/labels/RegressionLabels.h>

namespace shogun
{
class CSGInterface;

/** @brief UI HMM (Hidden Markov Model) */
class CGUIHMM : public CSGObject
{
	public:
		/** constructor */
		CGUIHMM() { };
		/** constructor
		 * @param interface
		 */
		CGUIHMM(CSGInterface* interface);
		/** destructor */
		~CGUIHMM();

		/** create new HMM */
		bool new_hmm(int32_t n, int32_t m);
		/** load HMM from file */
		bool load(char* filename);
		/** save HMM to file */
		bool save(char* filename, bool is_binary=false);

		/** set num hmm tables
		 * @param param
		 */
		bool set_num_hmm_tables(char* param) ;
		/** train Baum-Welch */
		bool baum_welch_train();
		/** train Baum-Welch trans */
		bool baum_welch_trans_train();
		/** train Baum-Welch defined */
		bool baum_welch_train_defined();
		/** train Viterbi defined */
		bool viterbi_train_defined();
		/** train Viterbi */
		bool viterbi_train();
		/** linear train
		 * @param align
		 */
		bool linear_train(char align='l');
		/** linear train from file
		 * @param param
		 */
		bool linear_train_from_file(char* param);
		/** append HMM/model for CmdlineInterface */
		bool append_model(char* filename, int32_t base1=-1, int32_t base2=-1);
		/** add states to HMM */
		bool add_states(int32_t num_states=1, float64_t value=0);
		/** set HMM as POS/NEG/TEST */
		bool set_hmm_as(char* target);
		/** set HMM pseudo */
		bool set_pseudo(float64_t pseudo);
		/** set convergence criteria */
		bool convergence_criteria(
			int32_t num_iterations=100, float64_t epsilon=0.001);
		/** output HMM */
		bool output_hmm();
		/** output HMM defined */
		bool output_hmm_defined();
		/** print best path */
		bool best_path(int32_t from=0, int32_t to=100);
		/** normalize
		 * @param keep_dead_states
		 */
		bool normalize(bool keep_dead_states=false);
		/** save path
		 * @param filename
		 * @param is_binary
		 */
		bool save_path(char* filename, bool is_binary=false);
		/** save HMM likelihood  to file */
		bool save_likelihood(char* filename, bool is_binary=false);
		/** load definitions
		 * @param filename
		 * @param do_init
		 */
		bool load_definitions(char* filename, bool do_init=false);
		/** set max dim
		 * @param param
		 */
		bool set_max_dim(char* param);
		/** HMM likelihood */
		bool likelihood();
		/** chop HMM */
		bool chop(float64_t value);
		/** relative entropy
		 * @param values
		 * @param len
		 */
		bool relative_entropy(float64_t*& values, int32_t& len);
		/** entropy
		 * @param values
		 * @param len
		 */
		bool entropy(float64_t*& values, int32_t& len);
		/** define permutation entropy */
		bool permutation_entropy(int32_t width=0, int32_t seq_num=-1);
		/** get pos */
		inline CHMM* get_pos() { return pos; }
		/** get neg */
		inline CHMM* get_neg() { return neg; }
		/** get test */
		inline CHMM* get_test() { return test; }
		/** set current
		 * @param h
		 */
		inline void set_current(CHMM* h) { working=h; }
		/** get current */
		inline CHMM* get_current() { return working; }
		/** get pseudo */
		inline float64_t get_pseudo() { return PSEUDO; }

		/** classify
		 * @param output
		 */
		CRegressionLabels* classify(CRegressionLabels* output=NULL);
		/** classify example
		 * @param idx
		 */
		float64_t classify_example(int32_t idx);
		/** one class classify
		 * @param output
		 */
		CRegressionLabels* one_class_classify(CRegressionLabels* output=NULL);
		/** linear one class classify
		 * @param output
		 */
		CRegressionLabels* linear_one_class_classify(CRegressionLabels* output=NULL);
		/** one class classfiy example
		 * @param idx
		 */
		float64_t one_class_classify_example(int32_t idx);

		/** @return object name */
		virtual const char* get_name() const { return "GUIHMM"; }

	protected:
		/** converge
		 * @param x
		 * @param y
		 */
		bool converge(float64_t x, float64_t y);
		/** switch model
		 * @param m1
		 * @param m2
		 */
		void switch_model(CHMM** m1, CHMM** m2);

		/** working */
		CHMM* working;

		/** pos */
		CHMM* pos;
		/** neg */
		CHMM* neg;
		/** test */
		CHMM* test;

		/** pseudo */
		float64_t PSEUDO;
		/** M */
		int32_t M;

	protected:
		/** ui */
		CSGInterface* ui;
};
}
#endif