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 RATIONAL_APPROXIMATION_INDIVIDUAL_JOB_H_ 00011 #define RATIONAL_APPROXIMATION_INDIVIDUAL_JOB_H_ 00012 00013 #include <shogun/lib/config.h> 00014 00015 #ifdef HAVE_EIGEN3 00016 #include <shogun/lib/computation/job/IndependentJob.h> 00017 00018 namespace shogun 00019 { 00020 template<class T> class SGVector; 00021 template<class T> class CLinearOperator; 00022 template<class T, class ST> class CLinearSolver; 00023 00031 class CRationalApproximationIndividualJob : public CIndependentJob 00032 { 00033 public: 00035 CRationalApproximationIndividualJob(); 00036 00047 CRationalApproximationIndividualJob(CJobResultAggregator* aggregator, 00048 CLinearSolver<complex128_t, float64_t>* linear_solver, 00049 CLinearOperator<complex128_t>* linear_operator, 00050 SGVector<float64_t> vector, complex128_t weight); 00051 00053 virtual ~CRationalApproximationIndividualJob(); 00054 00056 virtual void compute(); 00057 00059 virtual const char* get_name() const 00060 { 00061 return "RationalApproximationIndividualJob"; 00062 } 00063 00064 private: 00066 CLinearOperator<complex128_t>* m_operator; 00067 00069 SGVector<float64_t> m_vector; 00070 00072 CLinearSolver<complex128_t, float64_t>* m_linear_solver; 00073 00075 complex128_t m_weight; 00076 00078 void init(); 00079 }; 00080 00081 } 00082 00083 #endif // HAVE_EIGEN3 00084 #endif // RATIONAL_APPROXIMATION_INDIVIDUAL_JOB_H_