SHOGUN  v2.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MultidimensionalScaling.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) 2011 Sergey Lisitsyn
8  * Copyright (C) 2011 Berlin Institute of Technology and Max-Planck-Society
9  */
10 
11 #ifndef MULTIDIMENSIONALSCALING_H_
12 #define MULTIDIMENSIONALSCALING_H_
13 #include <shogun/lib/config.h>
14 #ifdef HAVE_LAPACK
18 
19 namespace shogun
20 {
21 
22 class CFeatures;
23 class CDistance;
24 
65 {
66 public:
67 
68  /* constructor */
70 
71  /* destructor */
72  virtual ~CMultidimensionalScaling();
73 
79 
85  virtual CFeatures* apply(CFeatures* features);
86 
88  const char* get_name() const;
89 
94 
100  void set_landmark_number(int32_t num);
101 
105  int32_t get_landmark_number() const;
106 
110  void set_landmark(bool landmark);
111 
115  bool get_landmark() const;
116 
118 protected:
119 
121  virtual void init();
122 
128 
134 
140 
142 protected:
143 
146 
149 
152 
154 protected:
155 
159  static void* run_triangulation_thread(void* p);
160 
167  static SGVector<int32_t> shuffle(int32_t count, int32_t total_count);
168 
169 };
170 
171 }
172 #endif /* HAVE_LAPACK */
173 #endif /* MULTIDIMENSIONALSCALING_H_ */

SHOGUN Machine Learning Toolbox - Documentation