SHOGUN  v3.0.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
RationalApproximation.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) 2013 Soumyajit De
8  * Written (W) 2013 Heiko Strathmann
9  */
10 
11 #ifndef RATIONAL_APPROXIMATION_H_
12 #define RATIONAL_APPROXIMATION_H_
13 
14 #include <shogun/lib/config.h>
16 
17 namespace shogun
18 {
19 
20 template<class T> class SGVector;
21 template<class T> class CLinearOperator;
22 class CIndependentComputationEngine;
23 class CJobResultAggregator;
24 class CEigenSolver;
25 
63 class CRationalApproximation : public COperatorFunction<float64_t>
64 {
65 public:
68 
82  CLinearOperator<float64_t>* linear_operator,
83  CIndependentComputationEngine* computation_engine,
84  CEigenSolver* eigen_solver,
85  float64_t desired_accuracy,
86  EOperatorFunction function_type);
87 
89  virtual ~CRationalApproximation();
90 
99  virtual void precompute();
100 
113 
125 
128 
131 
134 
136  index_t get_num_shifts() const;
137 
139  void set_num_shifts(index_t num_shifts);
140 
142  virtual const char* get_name() const
143  {
144  return "RationalApproximation";
145  }
146 
147 protected:
150 
153 
156 
159 
161  int32_t m_num_shifts;
162 
165 
166 private:
168  void init();
169 
174  void compute_shifts_weights_const();
175 };
176 
177 }
178 
179 #endif // RATIONAL_APPROXIMATION_H_

SHOGUN Machine Learning Toolbox - Documentation