iterative-solver 0.0
molpro::linalg::itsolv::ArrayHandlers< R, Q, P > Class Template Reference

Class, containing a collection of array handlers used in IterativeSolver Provides a Builder sub-class, containing member functions to accumulate user-defined handlers, as well as determine and instantiate default handlers, based on container (template parameter) types. More...

#include <ArrayHandlers.h>

Detailed Description

template<typename R, typename Q = R, typename P = std::map<size_t, typename R::value_type>>
class molpro::linalg::itsolv::ArrayHandlers< R, Q, P >

Class, containing a collection of array handlers used in IterativeSolver Provides a Builder sub-class, containing member functions to accumulate user-defined handlers, as well as determine and instantiate default handlers, based on container (template parameter) types.

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

Classes

class  Builder
 

Public Member Functions

 ArrayHandlers (std::shared_ptr< array::ArrayHandler< R, R > > rr, std::shared_ptr< array::ArrayHandler< Q, Q > > qq, std::shared_ptr< array::ArrayHandler< P, P > > pp, std::shared_ptr< array::ArrayHandler< R, Q > > rq, std::shared_ptr< array::ArrayHandler< R, P > > rp, std::shared_ptr< array::ArrayHandler< Q, R > > qr, std::shared_ptr< array::ArrayHandler< Q, P > > qp)
 
 ArrayHandlers ()
 Uses default handlers. More...
 
auto & rr ()
 
auto & qq ()
 
auto & pp ()
 
auto & rq ()
 
auto & qr ()
 
auto & rp ()
 
auto & qp ()
 

Static Public Member Functions

static Builder create ()
 Utility for creating Array handlers with some user specified handlers. More...
 

Protected Attributes

std::shared_ptr< array::ArrayHandler< R, R > > m_rr
 
std::shared_ptr< array::ArrayHandler< Q, Q > > m_qq
 
std::shared_ptr< array::ArrayHandler< P, P > > m_pp
 
std::shared_ptr< array::ArrayHandler< R, Q > > m_rq
 
std::shared_ptr< array::ArrayHandler< R, P > > m_rp
 
std::shared_ptr< array::ArrayHandler< Q, R > > m_qr
 
std::shared_ptr< array::ArrayHandler< Q, P > > m_qp
 

Constructor & Destructor Documentation

◆ ArrayHandlers() [1/2]

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::ArrayHandlers ( std::shared_ptr< array::ArrayHandler< R, R > >  rr,
std::shared_ptr< array::ArrayHandler< Q, Q > >  qq,
std::shared_ptr< array::ArrayHandler< P, P > >  pp,
std::shared_ptr< array::ArrayHandler< R, Q > >  rq,
std::shared_ptr< array::ArrayHandler< R, P > >  rp,
std::shared_ptr< array::ArrayHandler< Q, R > >  qr,
std::shared_ptr< array::ArrayHandler< Q, P > >  qp 
)
inline

◆ ArrayHandlers() [2/2]

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::ArrayHandlers ( )
inline

Uses default handlers.

Member Function Documentation

◆ create()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
static Builder molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::create ( )
inlinestatic

Utility for creating Array handlers with some user specified handlers.

For example:

{c++}
// create ArrayHandlers with user defined handlers: rr_explicit, rq_explicit
auto array_handlers = ArrayHandlers<Rtype, Qtype, Ptype>::create().rr(rr_explicit).rq(rq_explicit).build();
Proxy< R, R > rr
Definition: ArrayHandlers.h:96
static Builder create()
Utility for creating Array handlers with some user specified handlers.
Definition: ArrayHandlers.h:57
Returns

◆ pp()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::pp ( )
inline

◆ qp()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::qp ( )
inline

◆ qq()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::qq ( )
inline

◆ qr()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::qr ( )
inline

◆ rp()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::rp ( )
inline

◆ rq()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::rq ( )
inline

◆ rr()

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
auto & molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::rr ( )
inline

Member Data Documentation

◆ m_pp

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<P, P> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_pp
protected

◆ m_qp

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<Q, P> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_qp
protected

◆ m_qq

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<Q, Q> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_qq
protected

◆ m_qr

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<Q, R> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_qr
protected

◆ m_rp

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<R, P> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_rp
protected

◆ m_rq

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<R, Q> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_rq
protected

◆ m_rr

template<typename R , typename Q = R, typename P = std::map<size_t, typename R::value_type>>
std::shared_ptr<array::ArrayHandler<R, R> > molpro::linalg::itsolv::ArrayHandlers< R, Q, P >::m_rr
protected