1#ifndef LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_ISUBSPACESOLVER_H
2#define LINEARALGEBRA_SRC_MOLPRO_LINALG_ITSOLV_SUBSPACE_ISUBSPACESOLVER_H
3#include <molpro/linalg/array/ArrayHandler.h>
4#include <molpro/linalg/itsolv/subspace/IXSpace.h>
14template <
class RT,
class QT,
class PT>
41 virtual void set_error(
const std::vector<int>& roots,
const std::vector<value_type_abs>&
errors) = 0;
45 virtual const std::vector<value_type>&
eigenvalues()
const = 0;
47 virtual const std::vector<value_type_abs>&
errors()
const = 0;
49 virtual size_t size()
const = 0;
decltype(value_type_L{} *value_type_R{}) value_type
Definition: ArrayHandler.h:181
decltype(check_abs< value_type >()) value_type_abs
Definition: ArrayHandler.h:182
Manages solution of the subspace problem and storage of those solutions.
Definition: ISubspaceSolver.h:15
virtual void set_error(int root, value_type_abs error)=0
Update the error associated with a given root.
typename array::ArrayHandler< R, R >::value_type value_type
Definition: ISubspaceSolver.h:19
virtual const std::vector< value_type_abs > & errors() const =0
Access errors corresponding to each solution.
typename array::ArrayHandler< R, R >::value_type_abs value_type_abs
Definition: ISubspaceSolver.h:20
virtual void solve(IXSpace< R, Q, P > &xspace, size_t nroots_max)=0
Solve the subspace problem.
PT P
Definition: ISubspaceSolver.h:18
virtual const std::vector< value_type > & eigenvalues() const =0
Access eigenvalues from the last solve() call.
QT Q
Definition: ISubspaceSolver.h:17
virtual void set_error(const std::vector< int > &roots, const std::vector< value_type_abs > &errors)=0
Update errors for a group of roots.
virtual size_t size() const =0
Number of solutions stored in this object.
RT R
Definition: ISubspaceSolver.h:16
virtual ~ISubspaceSolver()=default
virtual const Matrix< value_type > & solutions() const =0
Access solutions from the last solve() call.