iterative-solver 0.0
molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt > Struct Template Reference

Container storing the Q space parameters. More...

#include <QSpace.h>

Detailed Description

template<class Rt, class Qt, class Pt>
struct molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >

Container storing the Q space parameters.

Template Parameters
Rarray for R space
Qarray for Q space
Parray for P space

Public Types

using R = Rt
 
using Q = Qt
 
using P = Pt
 
using value_type = typename array::ArrayHandler< R, R >::value_type
 
using value_type_abs = typename array::ArrayHandler< R, R >::value_type_abs
 

Public Member Functions

 QSpace (std::shared_ptr< ArrayHandlers< R, Q, P > > handlers, std::shared_ptr< Logger > logger)
 
void update (const CVecRef< R > &params, const CVecRef< R > &actions, const SubspaceData &qq, const SubspaceData &qx, const SubspaceData &xq, const Dimensions &dims, SubspaceData &old_data)
 Prepends parameters to the start of Q space. More...
 
void clear ()
 
void erase (size_t i)
 Erases q parameter i. More...
 
size_t size () const
 
VecRef< Qparams ()
 
CVecRef< Qparams () const
 
CVecRef< Qcparams () const
 
VecRef< Qactions ()
 
CVecRef< Qactions () const
 
CVecRef< Qcactions () const
 

Protected Attributes

std::shared_ptr< ArrayHandlers< R, Q, P > > m_handlers
 
std::shared_ptr< Loggerm_logger
 
size_t m_unique_id {0}
 unique id for any new parameter set More...
 
std::list< qspace::QParam< Q > > m_params
 q parameter sets with new parameters first More...
 

Member Typedef Documentation

◆ P

template<class Rt , class Qt , class Pt >
using molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::P = Pt

◆ Q

template<class Rt , class Qt , class Pt >
using molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::Q = Qt

◆ R

template<class Rt , class Qt , class Pt >
using molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::R = Rt

◆ value_type

template<class Rt , class Qt , class Pt >
using molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::value_type = typename array::ArrayHandler<R, R>::value_type

◆ value_type_abs

template<class Rt , class Qt , class Pt >
using molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::value_type_abs = typename array::ArrayHandler<R, R>::value_type_abs

Constructor & Destructor Documentation

◆ QSpace()

template<class Rt , class Qt , class Pt >
molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::QSpace ( std::shared_ptr< ArrayHandlers< R, Q, P > >  handlers,
std::shared_ptr< Logger logger 
)
inlineexplicit

Member Function Documentation

◆ actions() [1/2]

template<class Rt , class Qt , class Pt >
VecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::actions ( )
inline

◆ actions() [2/2]

template<class Rt , class Qt , class Pt >
CVecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::actions ( ) const
inline

◆ cactions()

template<class Rt , class Qt , class Pt >
CVecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::cactions ( ) const
inline

◆ clear()

template<class Rt , class Qt , class Pt >
void molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::clear ( )
inline

◆ cparams()

template<class Rt , class Qt , class Pt >
CVecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::cparams ( ) const
inline

◆ erase()

template<class Rt , class Qt , class Pt >
void molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::erase ( size_t  i)
inline

Erases q parameter i.

Parameters
iindex in the current Q space

◆ params() [1/2]

template<class Rt , class Qt , class Pt >
VecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::params ( )
inline

◆ params() [2/2]

template<class Rt , class Qt , class Pt >
CVecRef< Q > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::params ( ) const
inline

◆ size()

template<class Rt , class Qt , class Pt >
size_t molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::size ( ) const
inline

◆ update()

template<class Rt , class Qt , class Pt >
void molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::update ( const CVecRef< R > &  params,
const CVecRef< R > &  actions,
const SubspaceData qq,
const SubspaceData qx,
const SubspaceData xq,
const Dimensions dims,
SubspaceData old_data 
)
inline

Prepends parameters to the start of Q space.

Parameters
paramsnew parameters
actionsnew actions
qqEquation data block between new Q parameters
qxdata block between new Q parameters and current X space
xqdata block between current X space and the new Q parameters
dimscurrent dimensions
old_datacurrent data

Member Data Documentation

◆ m_handlers

template<class Rt , class Qt , class Pt >
std::shared_ptr<ArrayHandlers<R, Q, P> > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::m_handlers
protected

◆ m_logger

template<class Rt , class Qt , class Pt >
std::shared_ptr<Logger> molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::m_logger
protected

◆ m_params

template<class Rt , class Qt , class Pt >
std::list<qspace::QParam<Q> > molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::m_params
protected

q parameter sets with new parameters first

◆ m_unique_id

template<class Rt , class Qt , class Pt >
size_t molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::m_unique_id {0}
protected

unique id for any new parameter set