SHOGUN  4.1.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
LogRationalApproximationCGM.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  */
9 
10 #ifndef LOG_RATIONAL_APPROXIMATION_CGM_H_
11 #define LOG_RATIONAL_APPROXIMATION_CGM_H_
12 
13 #include <shogun/lib/config.h>
15 
16 #ifdef HAVE_EIGEN3
17 
18 namespace shogun
19 {
20 
21 template<class T> class SGVector;
22 template<class RetType, class OperandType> class CLinearOperator;
23 class CCGMShiftedFamilySolver;
24 class CJobResultAggregator;
25 class CIndependentComputationEngine;
26 
34 {
35 public:
38 
53  CIndependentComputationEngine* computation_engine,
54  CEigenSolver* eigen_solver,
55  CCGMShiftedFamilySolver* linear_solver,
56  float64_t desired_accuracy);
57 
60 
70 
72  virtual const char* get_name() const
73  {
74  return "LogRationalApproximationCGM";
75  }
76 
77 private:
79  CCGMShiftedFamilySolver* m_linear_solver;
80 
82  SGVector<complex128_t> m_negated_shifts;
83 
85  void init();
86 };
87 
88 }
89 
90 #endif // HAVE_EIGEN3
91 #endif // LOG_RATIONAL_APPROXIMATION_CGM_H_
Implementaion of rational approximation of a operator-function times vector where the operator functi...
class that uses conjugate gradient method for solving a shifted linear system family where the linear...
double float64_t
Definition: common.h:50
Abstract base class of the rational approximation of a function of a linear operator (A) times vector...
virtual CJobResultAggregator * submit_jobs(SGVector< float64_t > sample)
Abstract base class that provides an interface for computing an aggeregation of the job results of in...
Abstract base class that provides an abstract compute method for computing eigenvalues of a real valu...
Definition: EigenSolver.h:24
all of classes and functions are contained in the shogun namespace
Definition: class_list.h:18
Abstract template base class that represents a linear operator, e.g. a matrix.
Abstract base class for solving multiple independent instances of CIndependentJob. It has one method, submit_job, which may add the job to an internal queue and might block if there is yet not space in the queue. After jobs are submitted, it might not yet be ready. wait_for_all waits until all jobs are completed, which must be called to guarantee that all jobs are finished.

SHOGUN Machine Learning Toolbox - Documentation