8#ifndef EASYARPACKPP_HH_
9#define EASYARPACKPP_HH_
17 template<
typename F,
typename G>
51 template<
class F = Cmplx,
class G = Real,
52 class H =
typename eigensolver::OperatorType<F, G>::type>
75 for (
int i = 0; i <
dim_; ++i)
108 if ( strcmp(which,
"SM")==0 )
150 class H =
typename eigensolver::OperatorType<F, G>::type>
174 B.addInto(shifted, -shift);
207 if ( strcmp(which,
"SM")==0 )
239 std::min(std::max(kmax, 1),
dim_ - 2), which);
#define conceptsException(exc)
void addInto(Matrix< H > &dest, const I fact)
virtual const uint dimX() const
void addInto(Matrix< H > &dest, const I fact, const uint rowoffset=0, const uint coloffset=0) const
Tool to easily solve general eigenvalue problems.
virtual ~EasyArPackppGen()
Destructor that deletes the solver and the operator.
virtual ArPackppGen< H, F, concepts::Real > * getSolver()
EasyArPackppGen(concepts::SparseMatrix< F > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, G shift)
EasyArPackppGen(concepts::SparseMatrix< F > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax=1, char *which=(char *) "LM")
Tool to easily solve standard eigenvalue problems.
EasyArPackppStd(concepts::SparseMatrix< F > &A, int kmax=1, char *which=(char *) "LM")
virtual ArPackppStd< H > * getSolver()
EasyArPackppStd(concepts::SparseMatrix< F > &A, int kmax, G shift)
virtual ~EasyArPackppStd()
Destructor that deletes the solver and the operator.
Tool to easily solve general eigenvalue problems for symmetric matrices.
virtual ~EasyArPackppSymGen()
Destructor that deletes the solver and the operator.
EasyArPackppSymGen(concepts::SparseMatrix< concepts::Real > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, concepts::Real shift)
EasyArPackppSymGen(char invertType, concepts::SparseMatrix< concepts::Real > &A, concepts::SparseMatrix< concepts::Real > &B, int kmax, concepts::Real shift)
virtual ArPackppSymGen * getSolver()
Getter for the generated solver.
Purely virtual class providing methods and instances for its child classes EasyArPackppStd,...
EasyArPackpp()
Default constructor.
virtual ~EasyArPackpp()
Empty destructor.
int dim_
Dimension of the space.
virtual EigenSolver< T > * getSolver()=0
Pure virtual method for getting the generated solver.
Set< F > makeSet(uint n, const F &first,...)
std::complex< Real > Cmplx
Type for a complex number. It also depends on the setting of Real.