SHOGUN  v3.2.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
CGMShiftedFamilySolver.h
Go to the documentation of this file.
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 CG_M_SHIFTED_FAMILY_SOLVER_H_
00011 #define CG_M_SHIFTED_FAMILY_SOLVER_H_
00012 
00013 #include <shogun/lib/config.h>
00014 
00015 #ifdef HAVE_EIGEN3
00016 #include <shogun/mathematics/linalg/linsolver/IterativeShiftedLinearFamilySolver.h>
00017 
00018 namespace shogun
00019 {
00020 template<class T> class CLinearOperator;
00021 template<class T> class SGVector;
00022 
00032 class CCGMShiftedFamilySolver
00033  : public CIterativeShiftedLinearFamilySolver<float64_t, complex128_t>
00034 {
00035 
00036 public:
00038     CCGMShiftedFamilySolver();
00039 
00041     CCGMShiftedFamilySolver(bool store_residuals);
00042 
00044     virtual ~CCGMShiftedFamilySolver();
00045 
00053     virtual SGVector<float64_t> solve(CLinearOperator<float64_t>* A,
00054         SGVector<float64_t> b);
00055 
00067     virtual SGVector<complex128_t> solve_shifted_weighted(
00068         CLinearOperator<float64_t>* A, SGVector<float64_t> b,
00069         SGVector<complex128_t> shifts, SGVector<complex128_t> weights);
00070 
00072     virtual const char* get_name() const
00073     {
00074         return "CGMShiftedFamilySolver";
00075     }
00076 
00077 };
00078 
00079 }
00080 
00081 #endif // HAVE_EIGEN3
00082 #endif // CG_M_SHIFTED_FAMILY_SOLVER_H_
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

SHOGUN Machine Learning Toolbox - Documentation