19 using namespace Eigen;
24 CDirectLinearSolverComplex::CDirectLinearSolverComplex()
48 REQUIRE(A,
"Operator is NULL!\n");
53 REQUIRE(op,
"Operator is not CDenseMatrixOperator<complex128_t, float64_t> type!\n");
64 LLT<MatrixXcd> llt(map_A);
68 if (llt.info()==NumericalIssue)
69 SG_WARNING(
"Matrix is not Hermitian positive definite!\n");
73 map_x=map_A.householderQr().solve(map_b.cast<
complex128_t>());
76 map_x=map_A.colPivHouseholderQr().solve(map_b.cast<
complex128_t>());
79 map_x=map_A.fullPivHouseholderQr().solve(map_b.cast<
complex128_t>());
82 map_x=map_A.jacobiSvd(ComputeThinU|ComputeThinV).solve(map_b.cast<
complex128_t>());
std::complex< float64_t > complex128_t
const index_t get_dimension() const
virtual const char * get_name() const
virtual SGVector< complex128_t > solve(CLinearOperator< complex128_t > *A, SGVector< float64_t > b)
Class that represents a dense-matrix linear operator. It computes matrix-vector product in its apply...
Abstract template base class that provides an abstract solve method for linear systems, that takes a linear operator , a vector , solves the system and returns the vector .
all of classes and functions are contained in the shogun namespace
CDirectLinearSolverComplex()
virtual ~CDirectLinearSolverComplex()