SHOGUN  4.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
MMDKernelSelectionComb.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) 2012-2013 Heiko Strathmann
8  */
9 
10 #ifndef __MMDKERNELSELECTIONCOMB_H_
11 #define __MMDKERNELSELECTIONCOMB_H_
12 
13 #include <shogun/lib/config.h>
14 
15 #ifdef USE_GPL_SHOGUN
16 
18 #include <shogun/lib/SGMatrix.h>
19 #include <shogun/lib/external/libqp.h>
20 
21 namespace shogun
22 {
23 
24 class CLinearTimeMMD;
25 
30 class CMMDKernelSelectionComb: public CMMDKernelSelection
31 {
32 public:
33 
35  CMMDKernelSelectionComb();
36 
42  CMMDKernelSelectionComb(CKernelTwoSampleTest* mmd);
43 
45  virtual ~CMMDKernelSelectionComb();
46 
52  virtual CKernel* select_kernel();
53 
55  virtual const char* get_name() const=0;
56 
57 protected:
70  virtual SGVector<float64_t> solve_optimization(SGVector<float64_t> mmds);
71 
73  static const float64_t* get_Q_col(uint32_t i);
74 
76  static void print_state(libqp_state_T state);
77 
79  index_t m_opt_max_iterations;
80 
82  float64_t m_opt_epsilon;
83 
85  float64_t m_opt_low_cut;
86 
88  static SGMatrix<float64_t> m_Q;
89 
90 private:
92  void init();
93 };
94 
95 }
96 
97 #endif //USE_GPL_SHOGUN
98 #endif /* __MMDKERNELSELECTIONCOMB_H_ */
int32_t index_t
Definition: common.h:62
double float64_t
Definition: common.h:50
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18

SHOGUN Machine Learning Toolbox - Documentation