iterative-solver 0.0
 
Loading...
Searching...
No Matches
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)
 
template<typename T >
void update (const CVecRef< R > &params, const CVecRef< R > &actions, const SubspaceData< T > &qq_in, const SubspaceData< T > &qx_in, const SubspaceData< T > &xq_in, const Dimensions &dims, SubspaceData< T > &old_data)
 Prepends parameters to the start of Q space.
 
void clear ()
 
void erase (size_t i)
 Erases q parameter i.
 
size_t size () const
 
VecRef< Q > params ()
 
CVecRef< Q > params () const
 
CVecRef< Q > cparams () const
 
VecRef< Q > actions ()
 
CVecRef< Q > actions () const
 
CVecRef< Q > cactions () const
 

Protected Attributes

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

Member Typedef Documentation

◆ P

◆ Q

◆ 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 >
template<typename T >
void molpro::linalg::itsolv::subspace::QSpace< Rt, Qt, Pt >::update ( const CVecRef< R > &  params,
const CVecRef< R > &  actions,
const SubspaceData< T > &  qq_in,
const SubspaceData< T > &  qx_in,
const SubspaceData< T > &  xq_in,
const Dimensions &  dims,
SubspaceData< T > &  old_data 
)
inline

Prepends parameters to the start of Q space.

New parameters that are linearly dependent among themselves are discarded, together with the corresponding rows and columns of the equation data.

Parameters
paramsnew parameters
actionsnew actions
qq_inEquation data block between new Q parameters
qx_indata block between new Q parameters and current X space
xq_indata 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