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 turalPublic 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 DIRECT_LINEAR_SOLVER_COMPLEX_H_ 00011 #define DIRECT_LINEAR_SOLVER_COMPLEX_H_ 00012 00013 #include <shogun/lib/config.h> 00014 00015 #ifdef HAVE_EIGEN3 00016 #include <shogun/mathematics/linalg/linsolver/LinearSolver.h> 00017 00018 namespace shogun 00019 { 00020 00022 enum EDirectSolverType 00023 { 00024 DS_LLT=0, 00025 DS_QR_NOPERM=1, 00026 DS_QR_COLPERM=2, 00027 DS_QR_FULLPERM=3, 00028 DS_SVD=4 00029 }; 00030 00034 class CDirectLinearSolverComplex : public CLinearSolver<complex128_t, float64_t> 00035 { 00036 public: 00038 CDirectLinearSolverComplex(); 00039 00045 CDirectLinearSolverComplex(EDirectSolverType type); 00046 00048 virtual ~CDirectLinearSolverComplex(); 00049 00057 virtual SGVector<complex128_t> solve( 00058 CLinearOperator<complex128_t>* A, SGVector<float64_t> b); 00059 00061 virtual const char* get_name() const 00062 { 00063 return "DirectLinearSolverComplex"; 00064 } 00065 00066 private: 00068 const EDirectSolverType m_type; 00069 00070 }; 00071 00072 } 00073 00074 #endif // HAVE_EIGEN3 00075 #endif // DIRECT_LINEAR_SOLVER_COMPLEX_H_