SHOGUN
v3.2.0
|
00001 /* 00002 * This program is free software; you can redistribute it and/or modify 00003 * it under the terms of the GNU General Public License as published by 00004 * the Free Software Foundation; either version 3 of the License, or 00005 * (at your option) any later version. 00006 * 00007 * Written (W) 2013 Soumyajit De 00008 */ 00009 00010 #ifndef LOG_RATIONAL_APPROXIMATION_INDIVIDUAL_H_ 00011 #define LOG_RATIONAL_APPROXIMATION_INDIVIDUAL_H_ 00012 00013 #include <shogun/lib/config.h> 00014 #include <shogun/mathematics/linalg/ratapprox/opfunc/RationalApproximation.h> 00015 00016 #ifdef HAVE_EIGEN3 00017 00018 namespace shogun 00019 { 00020 00021 template<class T> class SGVector; 00022 template<class T> class CMatrixOperator; 00023 template<class T, class ST> class CLinearSolver; 00024 class CJobResultAggregator; 00025 class CIndependentComputationEngine; 00026 00034 class CLogRationalApproximationIndividual : public CRationalApproximation 00035 { 00036 public: 00038 CLogRationalApproximationIndividual(); 00039 00052 CLogRationalApproximationIndividual( 00053 CMatrixOperator<float64_t>* linear_operator, 00054 CIndependentComputationEngine* computation_engine, 00055 CEigenSolver* eigen_solver, 00056 CLinearSolver<complex128_t, float64_t>* linear_solver, 00057 float64_t desired_accuracy); 00058 00060 virtual ~CLogRationalApproximationIndividual(); 00061 00071 virtual CJobResultAggregator* submit_jobs(SGVector<float64_t> sample); 00072 00074 virtual const char* get_name() const 00075 { 00076 return "LogRationalApproximationIndividual"; 00077 } 00078 00079 private: 00081 CLinearSolver<complex128_t, float64_t>* m_linear_solver; 00082 00084 void init(); 00085 }; 00086 00087 } 00088 00089 #endif // HAVE_EIGEN3 00090 #endif // LOG_RATIONAL_APPROXIMATION_INDIVIDUAL_H_